Zavádění code review 1/5: Náš začátek

O code review se učí ve školách, mluví na konferencích a dělá se ve firmách zvučných jmen. Co přesně to ale je? Jak jsme to zaváděli u nás v Trigamě? A jak to celé dopadlo? Na to by vám měla odpovědět tato série článků.

Tento článek vznikl pro firemní blog Trigama International s.r.o., originál najdete zde.

V prvním článku si povíme něco o situaci a problémech, které nás dovedly k zavedení code review. Druhý článek bude trochu rešeršního charakteru, protože se v něm pokusím nastínit, co to code review je a co může přinést. Ve třetím pokračování si povíme něco málo o našem konkrétním provedení, což jistě alespoň částečně uspokojí vaši zvědavost. Ve čtvrtém článku poodstoupíme od samotného procesu code review a podíváme se na proces jeho zavádění. V posledním článku se pak podělíme o naše zhodnocení a ukážeme i nějaká ta data spolu s tipy a postřehy, které nám zavedení code review přineslo.

Jak už je v našem IT odvětví zvykem, nové věci se začínají dít živelněji, než bychom my zúčastnění chtěli. A tak i webový tým (respektive PHP tým) vznikal v Trigamě narychlo, a to v souvislosti s novou velkou zakázkou. Zadání bylo rozsáhlé a času kvapně ubývalo, takže tým hrnul nové funkce závratným tempem a všichni jsme se nemohli dočkat konce.

V té době měl náš tým přibližně 5 vývojářů, z nichž část pracovala na projektu na částečný úvazek, mimo vývojářský tým pak stálo pár dalších lidí, především analytici, testeři, UXák a designér.

Před koncem projektu ale začínalo být všem vývojářům jasné, že postup „dostanu zadání, nakóduji a odevzdám“ (~ zamerguji) nebude nejvhodnější, zejména pak kvůli nespokojenosti prakticky všech vývojářů pracujících na tomto projektu, a to i přes existující společný standard, podle kterého by kód měl být psán (od code style po architekturu).

Dali jsme tedy hlavy dohromady a řekli si, co konkrétně nás v daném projektu trápilo či trápí. Vznikl tak následující seznam:

  • Nedodržování domluveného code style. Když pak každý soubor, či dokonce různé jeho části vypadají jinak, způsobuje to kromě jisté nejistoty a estetického zhnusení vývojářů častěji přehlédnutí, a to má jen kousek k defektům a z nich plynoucím chybám.
  • Ohýbání existujícího kódu. Namísto správné implementace buď novým kódem, nebo refaktoringem stávajícího docházelo ke zneužití stávajícího kódu drobným zapodmínkováním, zkopírováním kódu, přidáním nesouvisejícího parametru či prostě jen znovupoužitím funkce s označením, které v daném kontextu vlastně nedávalo smysl, jen kvůli tomu, že náhodou dělala to, co daný vývojář potřeboval.
  • Nekontrolovaná architektonická rozhodnutí, při kterých se vývojář rozhodl, že nějakou požadovanou funkčnost naimplementuje jedním konkrétním způsobem, a neporadil se s týmem o vhodnosti řešení. Později se u řady takových zásahů ukázalo, že extrémně zvyšují komplexitu aplikace a je obtížné se jich zbavit, protože další vývojáři na nich naimplementovali další a další funkcionality.
  • Rozbité buildy, takže po odevzdání práce a předání na testera nebyla aplikace ani schopná zobrazit úvodní stránku, natož požadovanou funkcionalitu (za současné obhajoby vývojáře, že jemu to na jeho počítači samozřejmě funguje).
  • Velké množství nedodělků a chyb v odevzdané práci, což vede ke znovuotevírání úkolů, pinkání úkolů mezi vývojáři a testery a v konečném důsledku ke všeobecné nespokojenosti.
  • Obtížné porozumění cizímu kódu, což vedlo v týmu k rozdělení „já dělám jen toto a tam tomu nerozumím“.
  • Používání zastaralých a potenciálně chybových konstrukcí jednotlivých programovacích jazyků.

Objevila se i řada konkrétních odkazů, tyto obecné ale shrnovaly většinu z nich. S code review se velká část týmu už někdy setkala, ať už teoreticky ve škole, nebo v praxi, takže bylo vcelku očekávané, když pojem code review nakonec zazněl jako nápad, jak vyřešit tyto problémy.

Jenže co přesně to code review je? A je to vhodné řešení pro naše problémy? O tom bude navazující článek.

 
4. 4. 2019 19:11 programming


Tagy

informace (20), návod (2), mysql (1), užitečné (7), internet (1), komix (99), ironie (1), humor (99), Bůh (2), škola (38), plánování (1), Čas (2), hříchy (1), otroctví (1), esej (4), Erasmus (24), project management (2), programming (17), teamwork (1), bad code (1), práce (2), clean code (1), good architecture (1), společnost (3), rodičovství (2)

Hledání

Odběr zpráv

RSS feed Blog (RSS)