Po co komu Code Review młodszego programisty?

Pomysł na ten wpis powstał na kanwie wydarzeń jakie miały miejsce kilka miesięcy temu, w spółce, w której pracuję. W trakcie spotkania zespołu, najbardziej doświadczony programista zwrócił uwagę, że nie wszyscy członkowie zespołu robią mu code review (CR). W związku z czym prosił, żebyśmy wszyscy zaangażowali się w ten proces. Jako wciąż najmłodszy stażem programista, wyraziłem pewne zdziwienie - po co mu moje CR? Z jakiego powodu potrzebuje moich uwag? Przecież z pewnością wszystko jest w stanie napisać lepiej niż ja. On jednak przystawał przy swoim. Nie pozostało mi więc nic innego, jak wyrobienie sobie nawyku codziennego angażowania się w CR starszych programistów 😄

Do tamtej pory wydawało mi się, że typowa dynamika CR w pracy polega na przeglądaniu prac młodszych programistów przez starszych stażem kolegów, którzy weryfikowali, czy dany kod spełnia standardy jakości i jest zgodny ze stosowanymi praktykami. Tym większe było moje zdziwienie, kiedy okazało się, że moje CR może wnieść do działania zespołu tyle pozytywnych aspektów, którymi chciałbym się z wami podzielić.

  1. Uczysz się dwa razy szybciej

Tutaj będę brutalny. Jako młodszy programista, nie umiesz jeszcze bardzo dużo i jeszcze długo umieć nie będziesz. Jak pewnie już dobrze wiesz, na pewnym poziomie, samo pisanie kodu nie rozwija Cię już za bardzo (a czasami wręcz może zaszkodzić). Dlaczego? Bo brak Ci potwierdzenia, czy podążasz w dobrym kierunku. Stąd też z oczywistych względów CR seniorów jest tak cenne. Utwierdza Cię w Twoim rozwiązaniu albo no cóż, sugeruje, że trzeba to wszystko zaorać i napisać od nowa. 

Okazuje się jednak, że nie mniej cenne jest przeglądanie na bieżąco kodu doświadczonych programistów. Masz wtedy możliwość, żeby zwrócić uwagę na to, jak podeszli do problemu, jakich patternów użyli, jakie decyzje architektoniczne podjęli. Pozwala Ci to zobaczyć, jak starsi programiści radzą sobie ze złożonymi problemami. Jeżeli jesteś na tym dobrze skupiony, możesz rozwijać własne umiejętności kodowania. Dzięki temu, masz bezpośrednią styczność z kodem seniora, czyli uczysz się dwa razy szybciej!

  1. Poprawa jakości kodu

Jakież było moje zdziwienie, kiedy podczas robienia CR (nie byle komu, bo właśnie seniorowi) zwróciłem uwagę, że pewien fragment kodu powinien zostać przepisany, dzięki czemu unikniemy potencjalnego ryzyka. Senior przyznał mi rację i zabrał się do poprawienia kodu. Oczywiście finalna wersja rozwiązania wyglądała zdecydowanie inaczej, niż ją sobie wyobrażałem (w czym nie ma nic złego!), ale jawnie przyczyniłem się do jej powstania. 

Chcę przez to zaznaczyć, że młodsi programiści, mimo, że jeszcze niedoświadczeni, wnoszą świeże spojrzenie do procesu przeglądu kodu. Analizując kod starszych programistów mogą dostrzec potencjalne problemy, upewnić się, że kod jest zgodny ze standardami kodowania zespołu, a nawet czasami zasugerować alternatywne rozwiązania. Ten wspólny wysiłek ostatecznie prowadzi do wyższej jakości kodu.

  1. Miejsce na pytania

To, co początkowo najtrudniej było mi zrozumieć, to fakt, że kod napisany przez seniorów, też powinien podlegać ocenie pod kątem przejrzystości i zbędnego skomplikowania. Jeżeli jesteś juniorem, to twoim bezwzględnym obowiązkiem jest zadawanie pytań, dlaczego tak, a nie inaczej? Dlaczego w tym miejscu użyliśmy takiego patternu, a gdzie indziej innego? Twoim obowiązkiem jest też czasami przyznanie, że nie rozumiesz pewnych fragmentów oraz poproszenie o wyjaśnienie. To właśnie w tak kluczowych momentach, będziesz dostawał odpowiedzi na nurtujące Cię pytania programistyczne, a także będziesz poznawał biznesową warstwę tworzonej aplikacji.

  1. Zdobycie pewności siebie i poprawa umiejętności komunikacyjnych

Przeglądanie kodu stworzonego przez seniorów może być dla ciebie początkowo bardzo onieśmielające. Jednak aktywne uczestniczenie w procesie CR da Ci możliwość większego zaufania do swoich umiejętności i pomysłów. Dodatkowo, podniesiesz swoje umiejętności komunikacyjne, ponieważ będziesz musiał jasno i konkretnie wyrażać swoje wątpliwości, czy opinie.

  1. Wspieranie kultury współpracy i ownershipu:

Z perspektywy czasu widzę zjawiska, które, moim zdaniem, mają znaczenie dla całego zespołu. Mimo tego, że już od dawna czuję się częścią zespołu, robienie CR pozwoliło mi przełamać ostatnią barierę hierarchiczną i pozytywnie wpłynęło na moje poczucie przynależności i równości w zespole. Zrozumiałem, że mój wkład jest ceniony, niezależnie od poziomu mojego doświadczenia. 

Z całą pewnością, powtórzysz moje doświadczenie jeśli tylko uczciwie zaangażujesz się w robienie CR, włożysz wysiłek w zrozumienie i poprawę recenzowanego kodu. Zobaczysz wtedy również, jak gwałtownie wzrośnie Twoje poczucie odpowiedzialności za “nasz” kod.

Podsumowując, cele sprawdzania przez młodszych programistów kodu Seniorów daleko wykraczają poza zwykłą ocenę poprawności napisanego kodu. Wspominany CR, przede wszystkim,  stwarza junior ogromną przestrzeń do nauki, w której posiada bezpośredni wgląd w kod seniora, jego “tok myślenia” i proces, w jakim rozwiązał dany problem.

Na poziomie zespołu pomaga w stworzeniu środowiska opartego na współpracy, w którym możliwe jest wymienianie między sobą (starszymi i młodszymi stażem programistami) unikalnych perspektyw, spostrzeżeń i pomysłów, prowadzących do poprawy jakości kodu. Zachęca do otwartej komunikacji, poczucia odpowiedzialności za kod, co w efekcie podnosi ogólną wydajność i przyczynia się do rozwoju danego projektu.

Dlatego drogi juniorze, jeżeli jeszcze nie robisz Code Review swojemu seniorowi, to czas najwyższy zacząć!

A jeśli nie czujesz się jeszcze na siłach, by sprawdzać kod bardziej doświadczonych osób i sam potrzebujesz takiego wsparcia, to skontaktuj się z nami, wypełniając poniższą ankietę.