Jeszcze parę lat temu code review było bardziej postrzegane jako pewnego rodzaju ciekawostka czy idealistyczny praktyka programistyczna niż element wnoszący widoczną wartość projektów komercyjnych. Choć termin ten od dawana jest jasny

zarówno dla deweloperów, jak i kadr zarządzających, a większość z nich chwali ideę wzajemnej analizy kodu przez programistów, to praca ta wciąż bywa traktowana jako strata czasu, którą można by poświęcić na realizację kolejnych wymagań.

 

Wzrost biznesów w branży IT postawił jednak kolejne wyzwania przed projektami. Jak poprawić jakość produktów, redukować ryzyko i koszty projektów, czy też jak skutecznie budować doświadczenie w zespołach. Nie ma oczywiście jednego rozwiązania na postawione problemy, ale istotnym elementem, który może pomóc, jest zbudowanie kultury code review.

Czym jest kultura code review?

Analiza kodu przynosi wymierne efekty tylko wtedy, gdy zespół rozumie jej założenia i korzysta z wypracowanych zasad. Jej nieumiejętne wykorzystanie może przynieś przeciwne skutki do oczekiwanych. Spróbujmy, więc odpowiedzieć na pytanie, czym się kierować i czego unikać, by czerpać korzyści z tego procesu.

 

Jednym z często powielanych błędów jest powierzenie analizy kodu wyłącznie najbardziej doświadczonemu programiście lub architektowi. Technologie IT rozwijają się w niesamowicie szybkim tempie, a znajomość wszystkich mechanizmów, bibliotek i nowość, nie jest możliwa. W teorii możemy przyjąć, że nawet mniej doświadczony członek zespołu będący na bieżąco z najnowszymi trendami branży, może zaproponować rozwiązanie godne eksperta. Druga sprawa to zdobywanie doświadczenia. Jeśli chcesz robić coś dobrze, to potrzebujesz praktyki. Im szybciej wszyscy członkowie zespołu zaczną brać udział w code review, tym szybciej osiągną oni wysoki poziom oraz będą w stanie przeprowadzić dokładną analizę błędów kodu.

 

Kolejnym istotnym elementem jest łatwość przeprowadzania analizy kodu. W każdej korporacji dąży się do uproszczania wszelkich procesów. Podobną zasadą należy się kierować w tym przypadku. Nadmiar formalności nie tylko może zniechęcić, ale i wydłużyć czas wdrożenia projektu. W zależności od użytych technologii jest wiele możliwości implementacji procesu code review. Najbardziej powszechnymi metodami jest używanie „pull/merge request”, korzystanie ze wbudowanych mechanizmów środowisk deweloperskich czy też z dedykowanych narzędzia typu Crucible.

 

Jednym z najtrudniejszych elementów jest wypracowanie i pilnowanie przez zespół jakości komentarzy. Każdy deweloper ma swoje ulubione mechanizmy, sposoby rozwiązywania pewnych problemów, a nawet wielkości odstępów we wcięciach kodu. Dawanie konstruktywnych uwag wymaga korzystania z pewnych zasad stylu kodowania, które są udostępnione przez wielu dostawców środowisk programistycznych, np. Microsoft. Zespół sam też może wypracować takie zasady. Pomoże to ograniczyć sugestie związane z osobistymi preferencjami i skupić się na poprawie czytelności, jakości i wydajności rozwiązania.

 

Powyższe zasady pomogą wam wdrażać code review lub poprawić jego jakość.

 

Code Review jakie daje korzyści

 

Jakie to wszystko może przynieść korzyści?

Ta prosta czynność, może mieć większe znaczenie, niż na pierwszy rzut oka może się wydawać. Jednym ze znaczących elementów jest wczesne wykrywanie błędów. Statyczna analiza kodu może pokazać potencjalne problemy zarówno czysto techniczne, jak i te w logice biznesowej. Koszt naprawy błędu wykrytego na tym etapie jest najmniej inwazyjny dla procesu dostarczania oprogramowania. Całość dzieje się jeszcze przed wykonaniem budowania paczek, dostarczania ich do testerów, użytkowników i wdrożeń produkcyjnych. Pozwoli to nie tylko zaoszczędzić czas, ale również wzmocnić zaufanie do zespołu. Błędy zostają naprawione jeszcze na etapie programowania i nie wychodzą poza zespół.

 

Innym znaczącym elementem jest transfer wiedzy pomiędzy członkami zespołu. Code review pozwala bez przechodzenia przez niejednokrotnie długi proces implementacji dowiedzieć się o napotkanych problemach i sposobach ich rozwiązania. Skraca to też czas wdrażania nowych członków do zespołu, gdyż pokazuje sposób rozwiązywania problemów, implementacji nowych wymagań czy stylu kodowania zespołu.

Code review tylko dla programistów od TT PSC

 

Ostatnim elementem wartym wspomnienia jest czystość kodu i łatwość jego utrzymania. Często programiści specjalizują się w pewnej domenie aplikacji i skupiają się na wybranych elementach projektu. Code review pomaga cały czas widzieć jego całokształt oraz być na bieżąco ze wszystkimi jego modułami i niuansami. W ten sposób w przypadku zmian w zespole, czy też nieoczekiwanych braków kadrowych, cały zespół ma świadomość, w jaki sposób działa produkt. Przez to jesteśmy w stanie zastąpić jednego dewelopera innym i dostarczyć wymagania na czas oraz wysokiej jakości.

 

Przy wielu benefitach płynących z code review należy jednak pamiętać, że nie jest to panaceum na wszystkie problemy związane z jakością produktu i kodu. Aby zmaksymalizować szanse powodzenia projektu, zredukować jego ryzyko, należy połączyć przeprowadzanie analizy kodu z innymi procesami deweloperskimi, jak i biznesowymi. Przed jego rozpoczęciem należy upewnić się, że nie występują tak proste błędy, jak choćby problem kompilacji projektu lub wykonania testów jednostkowych, a po jej zakończeniu nadal należy przeprowadzić szereg testów manualnych, czy też automatycznych w celu wykrycia nieprawidłowości względem wymagań. Kierując się tymi zasadami, code review będzie nie tylko proste do wdrożenia, ale też pomoże zbudować doświadczone zespoły projektowe i niskim kosztem poprawić jakość produktu.

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 29

No votes so far! Be the first to rate this post.

W przypadku naruszenia Regulaminu Twój wpis zostanie usunięty.

    _Wszystkie wpisy z tej kategorii

    Third Party QA Testing z Xray

    Zatrudnianie zewnętrznych zespołów QA do weryfikacji produktu stało się powszechną praktyką – dowiedz się czym jest usługa Third Party QA Testing i jak…
    Czytaj dalej

    Od Javy do Go – skalowanie kompetencji w zespole Software Development Center

    Eksperci Transition Technologies PSC opowiadają o inicjatywie "Akademia Go" i korzyściach z nauki języka programowania Go w dostarczaniu wydajnych rozwiązań klientom. Dowiedz się,…
    Czytaj dalej

    Outsourcing programistów – elastyczny sposób skalowania zespołu IT

    Outsourcing zewnętrznego programisty zwiększa możliwości Twojego zespołu. Dodatkowy specjalista jest wsparciem w realizacji codzienny zadań i dotrzymywaniu deadline’ów. Jego obecność pozwala zwiększyć produktywność…
    Czytaj dalej

    Jak uchronić się przed phishingiem, wykorzystując autentyfikację?

    Żyjemy w epoce danych, co oznacza, że w świecie, w którym funkcjonujemy, są one cenniejsze niż pieniądze. Kradzież tożsamości i utrata istotnych danych…
    Czytaj dalej

    Co musisz wiedzieć o serverless computing?

    Serverless cmputing nadal budzi sporo wątpliwości, szczególnie wśród tych środowisk, które właśnie zaczynają korzystanie z usług chmurowych lub dopiero planują migrację do chmury…
    Czytaj dalej

    6 błędnych przekonań na temat metodologii Scrum

    6 najczęstszych mitów i błędnych przekonań dotyczących scruma. Liczymy, że ich poznanie sprawi, że skutecznie ich unikniesz.
    Czytaj dalej

    Scrum Guide 2020. 5 TOP zmian i ich wpływ na pracę zespołu

    Najnowsza aktualizacja wytycznych najpopularniejszego frameworka agile czyli Scrum Guide. Najważniejsze zmiany wprowadzone przez aktualizację Scrum Guide 2020 oraz ocena ich wpływu na codzienną…
    Czytaj dalej

    Agile. Wszystko co musisz wiedzieć o metodyce zwinnej

    Czym właściwie jest agile? Jak to się wszystko zaczęło? Jakie zasady charakteryzują tę metodykę działania, czym różni się ona od podejścia tradycyjnego i…
    Czytaj dalej

    WCAG 2.1 – na co powinieneś zwrócić uwagę?

    Wyobraź sobie, że jesteś osobą niewidomą lub słabowidzącą i chciałbyś/chciałabyś zalogować się do własnego konta bankowego poprzez stronę internetową lub aplikacje mobilną. Wpisujesz…
    Czytaj dalej

    Dostępność w sieci zgodna z WCAG i jej wpływ na wizerunek firmy

    Coraz więcej aktywności z zakresu PR i marketingu przenosi sie obecnie do internetu. To zatem dobry moment na dokładną analizę działań prowadzonych w…
    Czytaj dalej

    WCAG, czyli dlaczego warto mieć dostępną stronę internetową i aplikację mobilną

    Zastanawiałeś się kiedyś, jak korzystają ze stron internetowych osoby niewidome i niepełnosprawne? Standardowe czynności, które wykonujemy na co dzień w Internecie, są dla…
    Czytaj dalej

    Dostępność w sieci, czyli co to jest WCAG?

    Dzisiejsze społeczeństwo jest mocno zinformatyzowane. Chcemy mieć dostęp do muzyki, książek, czy filmów gdziekolwiek jesteśmy, niezależnie od tego czy czekamy w poczekalni u…
    Czytaj dalej

    Nowości w Javie

    W javie sporo się zmieniło. Od wydania najpopularniejszej jej wersji, czyli ósemki minęło już kilka dobrych lat. Cały czas wersja 8 jest tą,…
    Czytaj dalej

    Nearshoring – więcej możliwości dla Twojego biznesu

    Branża IT to jedna z najszybciej ewoluujących gałęzi biznesu. Nie tylko dzięki technologii, którą oferuje, ale też dzięki szerokiemu obszarowi usług, które jest…
    Czytaj dalej

    Jak szybko i skutecznie zbudować profesjonalny zespół programistyczny w kilku krokach – studium przypadku

    Obecne trendy w tworzeniu i dostarczaniu dedykowanego oprogramowania dla firm mocno poszły w kierunku modelu opartego o outsourcing. Jest to bardzo wygodne rozwiązanie,…
    Czytaj dalej

    FIDO – bezpieczniej czy wygodniej?

    Od dawna intensywnie pracujemy nad stworzeniem skuteczniejszych oraz bezpieczniejszych sposobów identyfikacji użytkownika niż login i hasło. Wraz z rozwojem takich technologii jak czytniki…
    Czytaj dalej

    _Zostańmy w kontakcie

    Skontaktuj się