Hvorfor code reviews er en god ide

code reviews interaktive code reviews
En af de ting, vi altid prædiker hos vores kunder er code reviews. Fordi code reviews alene kan hæve kvaliteten af en kodebase, og samarbejdet omkring den, markant.
Fordi code reviews har flere fordele end bare fejlfinding:
  • De faciliterer videndeling
  • De gør koden nemmere at vedligeholde
Hvis du skriver kode med et langsigtet perspektiv, anbefaler vi, at code reviews bliver et nøgleelement i din udviklingsproces.
Som udviklere gør vi vores bedste for at skrive kode uden bugs. Et af de bedste værktøjer vi har mod bugs er code reviews. En simpel proces, hvor al den kode der bliver skrevet bliver kigget igennem af en anden, inden det kommer i kodebasen. På trods af det, har få udviklerteams code reviews som en prioriteret del af deres udviklingsproces.
Hvorfor?

Hvorfor undlade code reviews?

I nogen teams er det ikke et bevidst valgt ikke at lave reviews. Det er typisk ikke noget de forskellige skoler/universiteter underviser i – det er en praktisk færdighed du skal lære af erfaring. Siden der ikke er særlig mange teams, der bruger code reviews, så kan du relativt nemt bruge et par år i branchen uden at møde et code review. Det er med andre ord slet ikke utænkeligt, at et team ikke foretager code reviews simpelthen fordi ingen har tænkt over at gøre det. Næste skridt er så at de skal have erfaring nok til at forstå værdien på den lange bane.
Og så er der selvfølgelig de teams, hvor lead udvikleren kender til dem, men ikke mener at de er arbejdet værd.
Fordi selvfølgelig kræver de arbejde. Skal de være rigtig effektive, kræver de også en helhjertet indsats. Det opdager alle teams, der går i gang med reviews ret hurtigt. Derfor må investeringen også give et værdifuldt afkast, hvis ikke det skal være en dårlig tidsinvestering.

Kan vi måle fordelene? To tilgange til code reviews:

Hvis et team er meget opsatte på, at forbedre deres udviklingsproces, tester de code reviews i en defineret periode. Ved afslutningen tæller de de bugs de har fundet under reviews og ser det som udbyttet.
Et team, der ikke er ligeså opsat på at opsamle empirisk data, kan finde på at tælle alle bugs identificeret i deres software i periode (i produktion, gennem test eller andet) og bruge det som benchmark for, hvad code reviews potentielt kan bidrage med.
Sidder du på et projekt, hvor du bygger software til rumraketter, så er det ekstremt vigtigt at finde bugs, og konklusionen bliver sandsynligvis at testen var en succes. De fleste teams bygger dog noget lidt mindre avanceret, hvor lejlighedsvise bugs er en accepteret risiko. Den type teams (langt størstedelen af alle udviklerteams) vil sandsynligvis komme frem til, at code reviews koster for meget.

Code reviews handler om andet end bugs

At lave code reviews primært for at fjerne bugs er misforstået. Kun ca. 15% af alle review kommentarer er knyttet til potentielle bugs. Resten af kommentarerne går på muligheder for at forbedre klarhed og læsbarhed for at sikre mere langtidsholdbar kode.
Værdien af læsbarhed alene er enorm. Før vi kan arbejde med og ændre i eksisterende kode, er vi nødt til at kunne læse den. Det er uanset om det gælder justeringer, bug fixes eller nye features. Langsigtet maintainability er bare ikke fagligt tilfredsstillende, det er også det bedste værn mod dyre omskrivninger i koden.
Sidst, men ikke mindst, er det et fantastisk forum for videndeling. Det er en oplagt platform for at skabe og vedligeholde institutionel viden og konventioner og for at dele tips og tricks. Vi har stor succes med at sætte juniorudviklere ind på erfarne teams – det er forbavsende så hurtigt de kan levere på samme niveau som udviklere med både 5 og 10 års erfaring. En stor del af hemmeligheden skal findes i vores effektive processer omkring code reviews.

Konklusion

Vi har forhåbentlig slået fast, at code reviews ikke kun handler om bugs. Husk det, når du overvejer om code reviews skal være en del af din udviklingsproces. Det er især en god ide, hvis du:
  • Har brug for at dit team kan levere kvalitetskode, med relativt få bugs, der kan vedligeholdes i mange år.
  • Har en rimelig høj grad af udskiftning på dit team
  • Ofte ansætter folk med begrænset erfaring

En søgbar linksamling til code reviews

Vores seniorarkitekt og partner, Rune, har enorm erfaring med at lave code reviews. Det er som regel ham, der driver vores code review workshops. På et tidspunkt blev han træt af altid at skulle lede efter kilder og informationer om design patterns, principper, praksisser m.m. og byggede derfor en søgbar linksamling, som du kan finde her.
Har du links, du synes hører hjemme i samlingen, hører vi meget gerne fra dig.