Jak radzić sobie z kimś, kto nie lubi pomysłu na recenzje kodu?

26

Oczywiście, jeśli kierownictwo kupuje spędzać czas na przeglądaniu kodu, wszyscy muszą to zrobić.

Ale zawsze są tacy faceci (lub dziewczęta), którzy opierają się każdej uncji swojego istnienia.

W jaki sposób skutecznie radzisz sobie z tym scenariuszem, gdy masz do czynienia z recenzentem?

ozz
źródło
19
Prawdopodobnie w ten sam sposób postępujesz z ludźmi, którzy mają problem z innymi rzeczami, takimi jak strój, terminowość, dni chorobowe itp.
Josh K
hehe .... Próbowałem zakwalifikować to przez powiedzenie na temat zarządzania, mówiąc, że każdy musi to zrobić, to, czego szukam, to kiedy ty mało skrupulatny recenzent musi spróbować to zrobić.
ozz
3
Szczerze: Powiedz im, żeby się zamknęli i zrób to. To dla ich własnego dobra.
Steven Evers,
1
Opierając się czemu? Czy pozwalasz zobaczyć ich kod lub patrzą na twój? Mogą unikać konfliktu, czy mogą oczekiwać konfliktu? Czy wiesz, dlaczego się wahają?
Martin Maat,

Odpowiedzi:

46

Opiera się ze strachu . Ta regulacja może być wynikiem wcześniej złe doświadczenia (ów) około poddawane przeglądowi, jako dziecko, w szkole, w pracy czy nawet w swojej obecnej drużyny. W naszych współczesnych społeczeństwach bardzo często mylimy czyjąś pracę z jego wartością jako istoty ludzkiej. Dlatego recenzje w pracy nie są dobrze postrzegane. Dlatego też przemawia publicznie w jednej z najbardziej rozpowszechnionych fobii (strach przed osądem).

Aby uniknąć takiego zachowania, potrzebujesz psychologii. Musisz udowodnić swojemu jaszczurkowemu mózgowi, że tak się nie stanie (nie zostanie osądzony, upokorzony, zabity, cokolwiek ...) poprzez znieczulenie go na recenzje kodów.

Jedną z najbardziej skutecznych metod, jaką znalazłem, aby odblokować kogoś, jest poproszenie go o sprawdzenie kodu , zanim poprosi o jego sprawdzenie.

Po chwili zaproponuj mu przeczytanie kodu, aby wyciągnąć z niego naukę i dlaczego nie zaproponować ulepszeń. Gdy znajdziesz coś do zmiany, zachowaj ostrożność podczas pisania. Zrozumie, że nie ma się czego bać i weźmie tylko pozytywną część procesu recenzowania: uczenie się i poszerzanie swojej wiedzy .

Michael K.
źródło
3
Możesz dodać definicję „mózgu jaszczurki” dla osób, które jej nie znają.
Adam Lear
@ Anna: Właśnie dodałem link do definicji.
Świetna odpowiedź Pierre! Na razie głosowano zamiast ostatecznej odpowiedzi.
ozz
1
@Aaron: Miałem na myśli „kogoś” wymienionego w pytaniu. Tak, wciąż mam irracjonalne obawy związane z uwarunkowaniem zarówno mojego dziecka, jak i dorosłego, jak większość z nas. Przykłady: mam irracjonalny strach przed wzlotami. Odczulam się, kiedy mogę. W ostatni weekend odwiedziłem cytadelę (bardzo powszechną w moim kraju z powodu kolejnych wojen między Francuzami i Niemcami) i musiałem pojechać tramwajem terenowym.
1
Jak zwykle doskonała odpowiedź Pierre.
Josh K
5

Spróbowałbym pracować w parach - połączyć kogoś, kto nienawidzi tego pomysłu, z kimś, kto mu się podoba, i poprosić, aby sprawdzili sobie nawzajem kod przez kilka tygodni. Oczywiście może to pomóc, ale nie musi, ale znajdowanie się na obu końcach przeglądu da przynajmniej bardziej zaokrąglony obraz procesu. Wspólna praca pary pozwoli im zapoznać się ze stylem i typowymi błędami, a także da im czas, aby rzeczywiście mogli się poprawić, a nie pieczątkę. Może to również pomóc w promowaniu programowania par w środowisku pracy, ponieważ myślę, że możesz zauważyć rosnącą tendencję do nie tylko sprawdzania, ale także przekodowywania, a nawet planowania i kodowania od zera.

Tak długo, jak bezinteresowne strony będą chciały spróbować, może to pomóc. Jeśli odmówią wzięcia tego pod uwagę, niewiele można z tym zrobić, dopóki są w zespole.

Michael K.
źródło
Programowanie par to zupełnie inny temat, ale świetna sugestia!
ozz
Twój komentarz sprawił, że zastanowiłem się trochę nad PP, więc zacząłem kolejne Q - programmers.stackexchange.com/questions/39878/… Dzięki!
ozz
4

Odpowiedź @ Pierre jest na dobrej drodze dla kogoś, kto obawia się przeglądu kodu. Mogę sobie wyobrazić inną sytuację. Gwiezdny programista, który uważa przegląd kodu, to strata czasu, ponieważ kod osiąga akceptowalny standard jakości i poprawności. W tym przypadku mogą czuć, że przegląd kodu jest marnowaniem czasu i polowaniem na czarownice. (Jest to poszukiwanie problemu, gdy nie istnieje).

W takim przypadku zmienię cel przeglądu. Zamiast przeglądu kodu polegającego na znajdowaniu „problemów” w kodzie, należy traktować go jako poszukiwanie celów ponownego faktorowania lub potencjalnych przyszłych ulepszeń lub dodatkowych funkcji projektowych. W ten sposób zarówno koder, jak i recenzent biorą udział w tym procesie i mam nadzieję, że ten sprawny programista poczuje się, jakby dobrze wykorzystano czas.

Hogan
źródło
5
W przypadku tego typu osób możesz spróbować poinformować ich, że jesteś podekscytowany przeglądaniem ich kodu, ponieważ uważasz, że wiele się od nich nauczysz. Przegląd kodu polega nie tylko na ulepszaniu kodu, ale także na narażaniu innych członków zespołu na lepszy kod, który pomoże im w przyszłym rozwoju.
HLGEM
2

Szczerze mówiąc, to pytanie nie ma sensu, jeśli masz dobrze zarządzany sklep:

1) Jeśli jest to część pracy, musisz to zrobić lub jesteś niesubordynowany. Ktoś, kto stanowczo odmawia wykonania części pracy, którą są zobowiązani, powinien otrzymać puszkę. Programowanie to rzemiosło i zawód - recenzenci i menedżerowie są po to, aby pomóc w wykonaniu pracy, a nie zajmować się rozpieszczonymi dziećmi (w każdym wieku).

2) Jeśli masz dobrze zarządzany system kontroli źródła (który jest koniecznością w każdym profesjonalnym sklepie z oprogramowaniem), to możesz sprawdzić jego kod, czy mu się to podoba, czy nie. Przejrzyj ich kod:

  • Jeśli to dobrze, powiadom ich i poklep ich po plecach - to zachęci do uczestnictwa.

  • Jeśli to nie jest dobre, daj im znać. Powinno to skutkować motywowaniem ich do uczestnictwa w celu obrony. Jeśli tak się nie stanie, możesz zastosować środki karne: kary finansowe, obniżenie statusu itp. Jeśli pomimo twoich wysiłków pracownik ten się nie pojawi, IMO ma złego pracownika i należy mu pokazać drzwi.

Wektor
źródło
To całkowicie beznadziejna rada, przewiduję „sklep” z naprawdę kiepskim środowiskiem pracy. Urgghh!
cognacc
@cognacc - Nie musisz niczego „widzieć”. Pracuję w grupach od 25 lat, w których mamy bardzo dobre środowisko pracy: wszyscy jesteśmy dorośli i rozumiemy, co wymaga bycia profesjonalistą i odpowiedzialności za naszą pracę.
Wektor
1
Muszę się zgodzić z Vector. Jeśli jest to część procesu, wszyscy to robią i jestem pewien, że szybko zauważają, że „nie gryzie”. Oczywiście zawsze istnieje ryzyko, że niektórzy ludzie będą „nieuprzejmi” w swoich komentarzach podczas przeglądu kodu, ale wtedy są to ludzie, z którymi trzeba sobie poradzić - tak jak byliby, gdyby byli niegrzeczni wobec swoich współpracowników osobiście.
MetalMikester,
Zgadzam się z cognacc, jest to bezużyteczne doradztwo, ponieważ nie sugeruje strategii ani rozwiązania. Mówi tylko „muszą, bo muszą”. Duh. Pytanie brzmi, jak sobie z nimi poradzić, jak je odwrócić. Samo zmuszanie ludzi do robienia czegoś wbrew ich woli (lub inaczej) nie rozwiązuje problemu, prawdopodobnie tworzy nowe. Musisz najpierw zrozumieć źródło oporu.
Martin Maat,
Przegapiłeś moją uwagę dobrze zarządzany sklep i wszystko, co z tego wynika: Oznacza to, że masz do czynienia z dorosłymi: ludźmi, którzy wiedzą, co oznacza ich praca. Nie zrozumiałeś mojej całkowicie jasnej odpowiedzi.
Wektor
1

Czy mają jakieś negatywne doświadczenia w miejscach, w których recenzje kodu nie zostały wykonane prawidłowo? Mogą mieć uzasadnione obawy.

Jeśli absolutnie nie widzą żadnej wartości z tego ćwiczenia, poproś ich o cierpliwość i zobacz, co stanie się z ich kodem, a zwłaszcza z kodem innych (jeśli uważają, że są idealne).

Przegląd kodu „powinien” usprawnić rozwój, ale dopóki nie masz systemu, który faktycznie działa, dlaczego ktoś miałby to robić?

JeffO
źródło
Dzięki Jeff, zgadzaj się, jeśli proces nie będzie dobry, będzie trudny, a obejście irracjonalnych obaw może być trudne - niektórzy ludzie po prostu się nie zmienią!
ozz
1
ale dopóki nie masz systemu, który faktycznie działa, dlaczego ktoś miałby to zrobić? Pozwól, że zrobię to w dzikim pchnięciu: zrób to, aby dowiedzieć się, dlaczego twój system nie działa ?
Wektor
1
@Vector - jeśli jesteś programistą, nie wiesz, jak to zrobić, mogą mieć większe problemy. Myślę również, że kierownictwo musi wziąć na siebie odpowiedzialność i jasno zdefiniować kod jakości. Jeśli wydany kod nie zawiera zbyt wielu błędów, mogą mieć dobry powód, aby nie dołączać recenzji kodu. W przypadku projektu o dowolnym stopniu złożoności wątpię, aby działo się to bez recenzji kodu jakości lub możliwie nieproporcjonalnej ilości czasu i kosztów programowania.
JeffO,
@JeffO - OK, rozumiem, o co ci chodzi: jeśli system naprawdę nie działa, to nie jest to kwestia „przeglądu kodu”, to kwestia kompetencji programistów, a więc proste „sprawdzenie kodu” nie jest rozwiązaniem. Zgadzam się z tym.
Wektor
1

Osobiście uważam, że są walki, których nie da się wygrać ze 100% populacji.

Widzę wystarczająco dużo powodów, dla których programowanie w parach nie działałoby, gdy ktoś był zmuszony to zrobić.

Ale recenzje kodu są różne - zmieniają produktywność, niekoniecznie twoje nawyki pracy.

Kierownictwo może zrobić kilka rzeczy, aby zmniejszyć odporność ze względu na produktywność: 1) Zaakceptuj zmniejszenie prędkości dla wszystkich programistów. 2) Zapewnij odpowiednie narzędzia do zarządzania i łączenia wielu wersji z powodu cykli recenzji (np. Umożliwiając programistom posiadanie lokalnego repozytorium git) 3) Wymuszaj jakąś presję społeczną lub inną, aby zapewnić rozkład obciążenia, jakość i terminowość recenzji.

Jeśli to zrobią, uzasadnione jest wymaganie od wszystkich uczestnictwa, IMHO. Firma, dla której teraz pracuję, zmusza to globalnie - po prostu nie możesz się poddać bez zgody właściciela. I choć spowalnia to wszystko, zapobiega wielu wypadkom.

Uri
źródło
całkowicie się zgadzam, Uri ... są tylko ludzie, których nie można wygrać. Być może są na swój sposób leniwi, myślą, że ich droga jest poprawna, lub po prostu nie obchodzi mnie to !!
ozz
0

Zastosowaliśmy środki techniczne, aby przegląd kodu był obowiązkowy.

W sposobie, w jaki wprowadziliśmy przegląd kodu, w naszej kontroli źródła niemożliwe jest scalenie kodu, który nie został podpisany przez kogoś innego niż ten, który go wypchnął.

Pieter B.
źródło
-1

Zwolnij ich

To takie proste - albo dostają projekt samotnego człowieka, albo muszą iść. Odsuń je od swojego zespołu. Nie tylko nie wywiązują się ze swojej roli, niszczą morale i praktyki zespołu.

Teraz, jeśli wydaje się, że musisz zwolnić 50% swojego zespołu, to ...

Rozumiesz

Dlaczego niektórzy odmawiają? Czy nie mają czasu? Czy są wypaleni? Czy recenzje dotyczą czegoś, z czym nie mają doświadczenia? Czy uważają, że to strata czasu, jeśli tak, to dlaczego?

Pomoże w tym metodyka zwinna - zakładam, że stale pracujesz przeciwko silosom (tj. W celu zmniejszenia współczynnika autobusu), a osoby w twoim zespole są zaangażowane w to, co robią inni.

Pracuj nad tym, aby indywidualne żądania scalania były dość małe. Jeśli jest to więcej niż jeden ekran zmian, potrzebuje rozmowy w trybie stand-up lub błyskawicy, aby wyjaśnić, co się dzieje. Jeśli ma 10 stron, potrzebuje prezentacji ze slajdami i schematami architektury.

Czy wszyscy, o których mowa, pracują nad tym samym projektem?

Czy projekt jest już pochowany pod górą długu technicznego?

Czy wierzą w projekt i ciągłe doskonalenie?

Dima Tisnek
źródło
1
Hmmmm .... więc brak przekonania, że ​​recenzje kodu zapewniają więcej korzyści niż kosztów automatycznie, oznacza, że ​​dana osoba nie robi swojej części i obniża morale zespołu, tak bardzo, że należy go zwolnić? To dość odważne stanowisko oparte na braku dowodów, które ostatecznie potwierdzałyby roszczenie.
Dunk
@Dunk, czy jesteś przeciwnikiem? Więc nie będziesz w moim zespole. Czy jesteś pro-recenzentem? W takim razie znasz już poparcie mojego roszczenia. Czy jesteś niezdecydowany? Zdecyduj się ;-)
Dima Tisnek
Nie jestem przeciwnikiem recenzentów, ale zdaję sobie również sprawę, kiedy coś nie zapewnia rozsądnych korzyści w stosunku do kosztów. Niektóre projekty / zespoły absolutnie potrzebują oficjalnych przeglądów kodu, podczas gdy inne projekty / zespoły robią je tylko wtedy, gdy jest to uważane za korzystne. Twoje założenie, że recenzje kodu są zawsze wymagane, mówi mi, że nie znasz nawet prawdziwych korzyści i ograniczeń. Masz rację. Nie będę w twoim zespole, a to byłaby dla ciebie duża strata.
Dunk