Czy właściwe jest umieszczanie pozytywnych komentarzy w recenzjach kodu, czy wyłącznie w celu konstruktywnej krytyki?

36

Ostatnio robię dużo recenzji kodu i nie jestem pewien pozytywnych i negatywnych efektów oraz profesjonalizmu umieszczania pozytywnych i / lub śmiesznych komentarzy w recenzjach kodu.

Używamy Github jako naszej platformy do sprawdzania kodu w moim zespole, więc komentarze są widoczne dla każdego. Ogólnie staram się korzystać z tej platformy, aby cały proces od początku do końca był widoczny i historyczny.

Codeman
źródło
Tak, zdaję sobie sprawę, że w dużej mierze ma to związek z kulturą, ale szukam ogólnej odpowiedzi.
Codeman
22
Ważne jest, aby wzmocnić to, co chcesz zobaczyć, pozytywnymi komentarzami.
2
Nie wiem, czy jest to właściwe, ale czasami publikuję haikus w recenzjach: młodszy programista - twój nieskomentowany kod jest - jak drzazgi bólu.
yannis
W rzeczywistości jestem młodszym programistą przeglądającym kod seniora - mamy tutaj dość rygorystyczny proces, cały kod należy przejrzeć :)
Codeman

Odpowiedzi:

53

Ważne jest, aby wyróżniać zarówno pozytywne, jak i negatywne. Wiem, że gdybym przeglądał refaktor konkretnego piekielnego podsystemu w coś schludnego i czystego, prawdopodobnie kupiłbym programistom pizzę za jego wysiłki.

Jeśli używasz recenzji jako szkolenia, jest to podwójnie ważne - podkreślenie dobrego fragmentu kodu będzie pomocne dla młodszych programistów, którzy również przeglądają ten kod. Będą mieli okazję zadać pytania, dlaczego dane podejście lub technika jest lepsza od innej.

Jonathan Rich
źródło
Czy możesz dodać notatkę „dlaczego jest to ważne”?
Oznaczę
3
Informuje ludzi, że doceniają to, co robią (pisząc dobry kod), i koncentrują się na rozwoju, czyli na tym właśnie polegają recenzje kodu.
Jonathan Rich
1
Czy możesz to dodać do swojej odpowiedzi?
Codeman
2
+1 zasługujesz na niezłą plakietkę z odpowiedzią na ten temat. Liczba miejsc, które nie cenią wystarczająco konstruktywnej krytyki, zawsze mnie zaskakuje. Mówienie ludziom, że wykonują dobrą pracę, kiedy wykonują dobrą pracę, może być zaskakująco skutecznym czynnikiem motywującym.
Benjamin Gruenbaum
@Benjamin: zbyt wiele organizacji traktuje przegląd kodu jako proces „stempla gumowego”, a nie jako „pozwala zbudować zespół o wysokiej wydajności”. Z mojego doświadczenia wynika, że ​​przeglądy kodu są najszybszym i najlepszym sposobem na przełamanie barier, które uniemożliwiają zespołom oprogramowania naprawdę skuteczne działanie. Mamy standard notacji, w którym komentarze poprzedzamy -2 (trzeba to naprawić) na +2 (świetna robota).
mattnz
8

Zabawne: zachowaj to na chłodnicę wody, z wyjątkiem minimalnych dawek - posiadanie śliwek nie jest wymagane do przeglądu kodu.

Pozytywne: na pewno. Przegląd obejmuje z definicji zarówno pozytywne, jak i negatywne / konstruktywne.

Pozytywne opinie pomagają wszystkim:

Dla tego, kto otrzymuje kciuki w górę, wzmacniasz ich pewność siebie i inspirujesz ich do robienia tego samego poprzez pozytywne opinie.

Co do reszty, jak wspomnieli inni, nauczą się, co robić , a czego nie . Będą również zachęcani do osiągania sukcesów, aby i oni mogli pewnego dnia być w centrum uwagi.

Kiedyś pracowałem dla szefa, który był bardzo liberalny w swoich pozytywnych opiniach - zespół odniósł duży sukces i był produktywny. Ruszył dalej, a inni przejęli władzę, której brakowało zdolności do chwalenia dobrze wykonanej pracy. Wydajność i morale spadły, a wielu lepszych członków zespołu opuściło firmę.

Wektor
źródło
3

Powiedziałbym, żeby komentarze były czyste i na temat, dokładnie ze względu na kulturę.

Nie można uniknąć sytuacji, w której niektórzy ludzie podejmą niewłaściwe działania.
Aby to złagodzić, osobista rozmowa wygładzi sprawy, jeśli nie będzie to możliwe osobiście, czat, e-mail lub skype.

ton.yeung
źródło
1
Słuszna uwaga. Bycie „zabawnym” w komentowaniu może łatwo odeprzeć atak, szczególnie w środowiskach wielojęzycznych i wielokulturowych.
David Navarre
2

Komentowanie w przeglądzie kodu jest zarządzanie

Traktuj komentarze jako narzędzie zarządzania

Wstawianie komentarzy do recenzji kodu jest formą zarządzania. Jako takie należy traktować je jako narzędzie zarządzania.

Komentując, stosuj praktyki zarządcze

Istnieje struktura zarządzania ludźmi, w której celem jest osiągnięcie pożądanego rezultatu. Niektóre z głównych podejść do zarządzania nie będą miały zastosowania w komentarzach, ale większość tak. Odpowiednie tematy obejmują środowisko, przywództwo, organizowanie i kontrolowanie.

Środowisko

Kultura

Środowisko dyktuje styl zarządzania. Korzystając z jakichkolwiek narzędzi zarządzania, należy pamiętać o kulturze i środowisku pracy. Zwykle wpływa na to przemysł i wielkość zarządzanej firmy lub podmiotu.

Styl

Jeśli istnieje kultura o lekkim sercu, może to wynikać ze stosowanego stylu zarządzania. Jeśli istnieją bardzo surowe wytyczne, zasady i konsekwencje, należy to odzwierciedlić w zastosowanym stylu. Więc jeśli wszyscy są na pokładzie, aby żartować o gwiezdnych wojnach odnoszących się do droidów i słabo nastawionego szturmowca, może mieć zastosowanie komediowa interwencja. Jeśli jednak istnieją poważne konsekwencje nietraktowania wyniku końcowego poważnie, może być konieczne jego uniknięcie.

Przywództwo

Podstawy

Komentując, należy wziąć pod uwagę trzy główne filary przywództwa. Mianowicie są one wizją, komunikacją i osądem.

Vision

Ważne jest, aby pamiętać o wielkiej wizji podczas wyjaśniania lub udzielania instrukcji. W komentarzach może to oznaczać wskazanie, jak niewielkie zmiany wpływają na projekt jako całość, jakie są implikacje przyjęcia różnych podejść lub wskazówka dotycząca oddzielenia problemów.

Communication

Bycie dobrym komunikatorem jest ważne w wielu aspektach życia. Nie inaczej jest w komentarzach. Ważne jest stosowanie rozsądnego poziomu zwięzłości - zwłaszcza, że ​​komentarze nie powinny zajmować dużo miejsca. Przejdź do rzeczy wcześnie, a następnie w razie potrzeby wykonaj kopię zapasową przykładu. W większej organizacji może to również obejmować konieczność wysłania komunikatu lub notatki, jeśli problem nie zostanie zlokalizowany na jednej sesji recenzji.

Judgement

Ważne jest, aby strategia była używana przy ocenie, czy należy wprowadzić komentarze, i jakie zmiany należy wprowadzić. Twój osąd nie zawsze musi być poprawny, ale musi być konsekwentnie poprawny, szczególnie w przypadku dokonywania dużych osądów.

Organizowanie

Z punktu widzenia zarządzania organizacja będzie polegała na pamiętaniu o celu końcowym i zapewnieniu, że procesy są dostosowane do zestawu reguł. Komentarze powinny również mieć to na uwadze, ponieważ w miarę możliwości komentarze powinny się wzajemnie opierać, aby mieć pewność, że przebieg projektu jest przestrzegany. Ważne będzie również, aby pamiętać o zakresie poddawanego przeglądowi kodu, aby zmniejszyć sprzężenie i postępować zgodnie z ogólnym projektem.

Kontrolowanie

Kontrolowanie działań zarządzanych osób to delikatny proces. Będąc stanowczym, należy również pamiętać, że ludzie są ważni. Istnieje kilka umiejętności kierowniczych do wykorzystania podczas kontrolowania innych. Te umiejętności są polityczne, koncepcyjne, interpersonalne, diagnostyczne i techniczne.

Polityczny

Politykę można znaleźć za każdym razem, gdy dochodzi do interakcji między ludźmi. To ogromny temat, ale ogólnie rzecz biorąc, polityka obraca się wokół wpływów. Podczas komentowania ważne jest, aby pamiętać o polityce osobistej i zawodowej w pracy. Może to być związane z instrukcją, żartem, a nawet pytaniem.

Konceptualistyczny

Zarządzanie poprzez konceptualizację jest ważnym narzędziem. Wymaga kompleksowej analizy aktualnej sytuacji. Komentując, może być korzystne uwzględnienie niektórych analiz wykorzystanych do sformułowania wniosków lub zmian wskazanych w przeglądzie.

Interpersonalne

Umiejętności interpersonalne są bardzo ważne podczas zarządzania. To także duży temat. Niektóre ważne rzeczy, które należy wziąć pod uwagę przy umiejętnościach interpersonalnych, to mentoring, konstruktywna krytyka i „harpooning”.

Mentoring

Ważne jest, aby zarządzanie było postrzegane bardziej jako mentor niż jako antagonista. W przeglądzie kodu oznacza to, że czasami korzystne będzie włączenie ukłonu do wzorca projektowego lub podejścia, które można zastosować do poprawy sytuacji.

Constructive Criticism

Krytyka jest ważna, ponieważ wywołuje refleksję. Jednak krytyka powinna być możliwie jak najbardziej pozytywna. Oznacza to przedstawienie wiarygodnych dowodów na poparcie krytyki, a także upewnienie się, że użyty ton nie jest negatywny. Podczas przeglądania kodu może to obejmować pokazanie wyjątku lub możliwego scenariusza, który wygenerowałby błąd, sugerując rozwiązanie, zamiast pokazywania każdego miejsca, które było niepoprawne, gdy cały fragment kodu i tak musiałby zostać wymieniony.

"Harpooning"

„Harpooning” ma miejsce, gdy w przenośni harpuje się kogoś na ziemię. Odbywa się to poprzez dzielenie ich krok po kroku, bez żadnej ulgi, aż do momentu, w którym nie będą mogli wstać. Jeśli harpunujesz osobę podczas przeglądu kodu lub w innym miejscu, stracisz współpracę. Ważne jest, aby unikać nadmiernego niszczenia kogoś.


Streszczenie

Traktuj komentarze w przeglądzie kodu jako narzędzie zarządzania. Pamiętaj, że komentarze powinny być krótkie, rzeczowe i konstruktywne. Upewnij się także, że podczas komentowania brana jest pod uwagę osoba recenzowana.

Travis J
źródło
Przegląd kodu nie powinien być zarządczy. Jego druga nazwa to „przegląd PEER” nie bez powodu. Inną kwestią, którą mam z odpowiedzią, jest to, że powinien to być sprawdzany kod, a nie osoba. Jeśli przegląd kodu jest traktowany jako przegląd osoby, staje się (lub wkrótce stanie się) narzędziem zarządzania do „pobijania ludzi”. Zobacz, jak staje się wkładem w wskaźniki KPI, i zobacz gry, w które grają rówieśnicy - „Ten kod może być lepszy, pozwolę mu się przesuwać, jeśli obiecujesz, że pójdzie mi łatwo przy następnym upuszczeniu kodu”
Mattnz
@mattnz - rówieśnicy często zarządzają sobą. Co więcej, nie wszystkie organizacje działają w ścisłej hierarchii, w której przypadku kluczowymi czynnikami zarządzającymi są rówieśnicy. Nie zgadzam się jednak z twoim twierdzeniem, że weryfikacja kodu nie dotyczy osoby. Korekta złych nawyków kodowania wymaga rzeczywistych wskazówek, a wydawanie tych wskazówek w sposób pełen wdzięku i szacunku jest bardzo ważne, aby odniosło sukces.
Travis J,
@mattnz - Pamiętaj też, że nigdy nie sugeruję, że recenzja kodu jest recenzją osoby. Zauważam, że poparłeś tutaj zaakceptowaną odpowiedź, z którą również się zgadzam. Dziwne jest jednak to, że odpowiedź wyraźnie koncentruje się na osobach, kupując im pizzę i osobiście oferując im pochwały. Nie mam z tym problemu, ale jak można powiedzieć, że nie jest to również „przegląd osoby”. Szczerze mówiąc, wygląda na to, że czytasz tylko pierwsze i ostatnie zdanie tej odpowiedzi.
Travis J,
0

Przeglądy kodu są narzędziem służącym do poprawy jakości kodu, częściowo poprzez odkrywanie defektów. Co ważniejsze, chcesz zaszczepić dobre praktyki kodowania.

Z tej perspektywy ważne jest komentowanie rzeczy dobrze wykonanych. W kontekście szkolenia należy również komentować ulepszenia. Jeśli twoja kultura wymaga ciągłego doskonalenia, zawsze powinieneś komentować ulepszenia.

Zdarzają się błędy, błędy i złe kodowanie. Wskaż je w sposób nieosobowy i traktuj je zgodnie z oczekiwaniami.

Z punktu widzenia modyfikacji behawioralnej nagroda jest znacznie lepsza przy wprowadzaniu zmian niż kara. Rozważę dobrą nagrodę za dobrą pracę.

BillThor
źródło