Wat is een Code Review?
Bij een Code Review wordt code bekeken door een programmeur die de code niet zelf heeft geschreven. Dit gaat meestal niet om een klein deel, maar om het hele project. Vergelijk het met een bouwkundig rapport van een koopwoning: na een Code Review heb je een overzicht van de staat van jouw software en infrastructuur.
De beoordelaars van de code werken vaak zelf niet mee aan het project, waardoor ze de code objectief te kunnen analyseren. Die frisse blik is ook meteen een goede test of de code wel begrijpelijk is geschreven. Het ontwikkelen van software is een continu proces en eindigt nooit met de livegang: het onderhouden van software is essentieel om de software veilig en stabiel te houden. Slecht leesbare code is duur in onderhoud en dat wil wel eens leiden tot veiligheidsrisico’s. Er is ook altijd kans dat het project wordt overgedragen aan andere developers. Ook dan is leesbare code erg belangrijk, zodat iedereen de code kan begrijpen en erop kan verder werken wanneer het nodig is.
We kunnen in een Code Review altijd inzoomen op specifieke aandachtspunten, maar meestal starten we met een checklist van veelvoorkomende problemen. Dat is vaak al een goede graadmeter voor de kwaliteit van de code. Naast de code kijken we vaak ook naar de infrastructuur waarop de code draait. Uiteindelijk verwerken we onze bevindingen in een advies: bijvoorbeeld om de infrastructuur te herzien, bepaalde componenten te upgraden of het herbouwen van (een deel van) het project om de toekomst- en groei bestendig te maken.
Wanneer is een Code Review handig?
Een Code Review is vooral nodig als je wil weten wat voor vlees je in de kuip hebt. Dat is eigenlijk altijd een goed idee als de code wordt overgenomen door een ander development team. Zo weet je vooraf of er eventuele verborgen gebreken zijn en wat aanbevelingen zouden zijn bij de doorontwikkeling. Het is voor een nieuw development team vaak ook onmogelijk om in te schatten hoe lang ze bezig zullen zijn aan nieuwe features als de code niet eerst geanalyseerd is.
Ook zien krijgen we wel eens aanvragen voor projecten waarbij er twijfels zijn of het ontwikkelteam wel de beloofde kwaliteit heeft geleverd. Zeker voor partijen die zelf geen expertise op het gebied van softwareontwikkeling in huis hebben kan dit helpen bij onzekerheid of conflict.
Gelukkig kan een Code Review ook een heel positieve stap zijn. Als een bedrijf of startup een nieuw digitaal product op de markt zet, wordt vaak gestart met een MVP (Minimum Viable Product) waarbij er eigenlijk snel en goedkoop wordt ontwikkeld om zo snel mogelijk het product op de markt te hebben. Niets mis mee, maar meestal ontstaat er dan technical debt: er worden shortcuts genomen bij de ontwikkeling waarbij er niet voor de kwalitatiefste, maar voor de snelste oplossing wordt gekozen. Als het product dan aanslaat, en het gebruik begint te groeien, kan het handig zijn om te analyseren waar de code verbeterd moet worden om te kunnen schalen. Zo voorkom je dat je product bezwijkt onder z’n eigen succes.
Is het de moeite wel waard?
Natuurlijk kost een Code Review extra tijd (en dus geld). In sommige gevallen verdient een Code Review zichzelf echter snel terug, zoals bij grotere projecten of als een project heel hard groeit. In andere gevallen kom je er niet omheen, zoals bij een conflict met het ontwikkelteam of als je code laat overnemen door een nieuw team.
Op de lange termijn is een Code Review vooral een tool voor risicobeheersing. Je weet wat de zwakke punten van je codebase zijn en kan daar dus op tijd actie op ondernemen: door de analyse weet je waar je preventief onderhoud moet uitvoeren, en waar het nog wel even uitgesteld kan worden.
Net als een bouwkundig rapport van je woning, lijkt een code review in eerste instantie misschien niet veel waarde toe te voegen. Als je er echter een lekkage of houtrot mee kan voorkomen, ben je blij dat je er toch even naar hebt laten kijken. Met de analyse van je codebase kun je, op basis van de pro’s en cons, voor jezelf een een gegronde beslissing nemen over je volgende ontwikkelstappen.
Sta jij op het punt een grote beslissing te maken? Wil je bijvoorbeeld gaan starten met een nieuwe software ontwikkelingspartner? Of wil je besluiten om jullie propositie om te gooien op een manier dat het invloed heeft op je software? Kijk dan even hier hoe wij je kunnen helpen met een code review!