piątek, 6 sierpnia 2010

Przemyślenia praktykanta #4

Witam!

Czasu ostatnio bardzo mało, ale jedna rzecz wymaga szczególnej uwagi i nie daje mi ostatnio spokoju. Jakiś czas temu głośno było o Code Review, jakie to one dobre, że każdy powinien w nich uczestniczyć etc. Można o tym poczytać np. w rewelacyjnym wpisie o Open Code Review na blogu Jakuba Nabrdalika. Niestety "nie wszyscy mają na to czas i mozliwości". Całe szczęście istnieje rozwiązanie:

15) Mini Code Review - czy żeby uczestniczyć w Code Review trzeba na to przeznaczać specjalnie czas? Czy trzeba koniecznie odciągać wszystkich od ich pracy i kazać przestawić się myślami na tą jedną godzinę, by potem wrócić rozkojarzonym do pracy? A może zamiast tego (chociażby na początek) wprowadzić to jako stałą czynność przy wytwarzaniu oprogramowania? Jakiś czas temu, gdy przesiadałem się z jednego projektu na drugi, jeden z członków zespołu developerskiego, nim zrobiłem pierwszy commit do repozytorium, poświęcił mi chwilę czasu i wyjaśnił jak mam pracować. Idea jest bardzo prosta: po każdym ważniejszym commicie (w moim przypadku po prawie każdym commicie z uwagi na małe doświadczenie :)) tworzy się wirtualny review (co zajmuje dosłownie kilkadziesiąt sekund dzięki połączeniu Atlassian FishEye + Crucible) i opisujemy w nim wykonane przez nas modyfikacje (jeżeli w opisie commitu tego nie zrobiliśmy) po czym zabieramy się za kolejne zadanie. W tym czasie osoby z naszego zespołu przeglądają nasze zmiany i oceniają lub w przypadku wątpliwości zadają pytania. Dana rewizja jest uznawana w momencie, gdy każdy z członków pomyślnie zakończy review. Ja sam działam w tym systemie zaledwie kilka dni, ale już wyniosłem z tego ogromną ilość nowej wiedzy! Co najlepsze - nie muszę odrywać nikogo od swoich zajęć jeśli chce jakąś drobną rzecz omówić - zostawiam komentarz i czekam na odpowiedź zwrotną.

Oczywiście nie mówię, że Open Code Review jest czymś złym, albo nadmiarowym - co to to nie! Po prostu widzę ile zajmuje czasu kolegom z zespołu uczenie mnie, instruowanie i tłumaczenie specyficznych zagadnień i zdaje sobie sprawę, że nie zawsze jest czas i możliwości, by usiąść i wspólnie przedyskutować dany fragment kodu na zasadzie burzy mózgów. Dzięki stałym review małych porcji kodu jestem w stanie lepiej zrozumieć system z którym pracuje i szybko wyłapywać złe praktyki lub błędy dzięki nieocenionej wiedzy bardziej doświadczonych członków zespołu :)

To tyle, czas wracać do pracy :)
Pozdrawiam i do następnego razu!

1 komentarz:

  1. Open Code Review sprawdza się chyba tylko w NASA :P Ciężko mi wyobrazić sobie, żeby cały zespół angażował się aż tak bardzo w każdy większy commit.

    Wiem, że programistom nie wypada tak mówić, ale wg mnie w 99% firm ROI z takich review jest niewystarczający. W końcu ktoś płaci za te nasze pogaduchy nad kodem. :)

    OdpowiedzUsuń