Pracuję dla dużej organizacji humanitarnej nad oprogramowaniem do tworzenia projektów, które może pomóc ratować życie w nagłych wypadkach, przyspieszając dystrybucję żywności. Wiele organizacji pozarządowych rozpaczliwie potrzebuje naszego oprogramowania, a my jesteśmy opóźnieni o kilka tygodni.
Jedną z rzeczy, która mnie martwi w tym projekcie, jest nadmierne skupienie się na standardach kodowania. Piszemy w python / django i używamy wersji PEP0008, z różnymi modyfikacjami, np. Długości linii mogą wzrosnąć do 160 znaków, a wszystkie linie powinny iść tak długo, jeśli to możliwe, bez pustych linii między importami, reguły zawijania linii, które dotyczą tylko niektórych rodzajów klas, wiele szablonów, których musimy użyć, nawet jeśli nie są najlepszym sposobem rozwiązania problemu itp. itp.
Jeden główny programista spędził tydzień przepisując większą część systemu, aby spełnić ówczesne nowe standardy kodowania, wyrzucając kilka pakietów testów w tym procesie, ponieważ przepisywanie oznaczało, że były one „nieprawidłowe”. Spędziliśmy dwa tygodnie przepisując wszystkie utracone funkcje i naprawiając błędy. Jest głównym twórcą, a jego słowo ma znaczenie, więc przekonał kierownika projektu, że te standardy są konieczne. Młodsi deweloperzy robią, co im powiedziano. Wyczuwam, że kierownik projektu ma silne poczucie dysonansu poznawczego w związku z tym wszystkim, ale mimo to zgadza się z nim gwałtownie, ponieważ nie ma pewności, co zrobić dalej.
Dzisiaj miałem poważne kłopoty, ponieważ zapomniałem wstawić spacje po przecinkach w argumencie słowa kluczowego. Podczas rozmowy przez Skype dosłownie krzyknęło na mnie dwóch innych deweloperów i kierownik projektu. Osobiście uważam, że standardy kodowania są ważne, ale myślę też, że marnujemy dużo czasu na ich obsesję, a kiedy to zwerbalizowałem, wywołało to wściekłość. Jestem postrzegany jako osoba sprawiająca problemy w zespole, który szuka kozłów ofiarnych za swoje wady. Od czasu wprowadzenia standardów kodowania produktywność zespołu znacznie spadła, ale to tylko wzmacnia obsesję, tj. Główny programista po prostu obwinia nasze nieprzestrzeganie standardów za brak postępu. Uważa, że nie możemy czytać sobie nawzajem kodu, jeśli nie będziemy przestrzegać konwencji.
To zaczyna się kleić. Teraz próbuję zmodyfikować różne skrypty, autopep8, pep8ify i PythonTidy, aby spróbować dopasować się do konwencji. Obsługujemy również pep8 w stosunku do kodu źródłowego, ale jest tak wiele domyślnych poprawek do naszego standardu, że trudno jest je wszystkie wyśledzić. Lead dev simple wybiera błędy, których skrypt pep8 nie odbiera i krzyczy na nas podczas następnego spotkania stand-up. Co tydzień pojawiają się nowe dodatki do standardów kodowania, które zmuszają nas do przepisywania istniejącego, działającego, przetestowanego kodu. Dzięki niebiosom wciąż mamy testy (cofnąłem niektóre zatwierdzenia i naprawiłem kilka z tych, które usunął).
Cały czas narasta presja dotrzymania terminu.
Uważam, że podstawową kwestią jest to, że główny programista i inny główny programista odmawiają zaufania innym programistom do wykonania swojej pracy. Ale jak sobie z tym poradzić? Nie możemy wykonywać naszej pracy, ponieważ jesteśmy zbyt zajęci przepisywaniem wszystkiego.
Nigdy nie spotkałem się z tą dynamiką w zespole inżynierii oprogramowania. Czy błędnie kwestionuję ich przestrzeganie standardów kodowania? Czy ktoś jeszcze doświadczył podobnej sytuacji i jak sobie z nią poradził? (Nie szukam dyskusji, tylko rzeczywiste rozwiązania, które ludzie znaleźli)