Code reviews komen nooit gelegen. Er heeft maar zelden iemand zin in, en toch zijn er zeker vijf hele goede redenen te noemen om ze te houden.
Iedereen weet dat een code review duur is. Het kost tijd, en dat komt vooral slecht uit als iedereen over elkaar heen buitelt om het software-project af te ronden en over de schutting te gooien naar de testafdeling. Een review vereist dat mensen die op dat moment niet tot hun nek in een bepaalde code zitten alles uit hun handen laten vallen om hun aandacht op de noden van anderen te richten (Nee hè? Niet weer een vergadering!). En voor sommige ontwikkelaars lijkt het vooral een gelegenheid om wat messen in ruggen te steken en andere vormen van kantoorpolitiek te bedrijven.
Volgens de mensen die meteen klaar staan om de code review vergadering ‘uit te stellen’, leidt een code review hooguit tot marginale verbeteringen van de code. En tjonge, daar hebben we het echt te druk voor. En wat we hebben is goed genoeg.
Echt? Als je denkt dat een effectieve code review op zijn best iets betere software oplevert, dan is het hoog tijd eens opnieuw na te denken. Hier zijn vijf minder voor de hand liggende redenen om toch code reviews te houden.
1. Ontwikkelaars die weten dat hun code wordt geëvalueerd, doen beter hun best.
“Het meest productieve effect van een code review is het feit dat de programmeur weet dat iemand zijn code zal reviewen,” zegt Oliver Cole van OC Systems en het open source Eclipse Test and Performance Tools Platform project.
Volgens Cole is het net als met een wiskunde-examen. Het examen zelf doet er niet toe: je leert er geen nieuwe wiskunde van, terwijl het doel van het hele vak toch is dat je wiskunde leert. “Het doel van het examen is ervoor te zorgen dat je studeert,” zegt Cole.
Hetzelfde principe geldt voor code reviews, legt Cole uit, en misschien zelfs nog wel meer. “Computerprogrammeurs hebben grote ego’s als het gaat om de code die ze produceren,” zegt Cole. Van cafeïne doortrokken programmeurs werken tot diep in de nacht door omdat ze nu eenmaal gek zijn op hun werk – niet omdat ze er extra voor betaald krijgen of iets dergelijks. Daardoor raakt een code review een ontwikkelaar precies daar waar hij gevoelig is: in zijn trots.
“Het mooiste van code reviews is dat de programmeur geen kritiek op zijn code wil horen,” zegt Cole. De wetenschap dat de code door anderen onderzocht gaat worden, motiveert een ontwikkelaar nog een tandje bij te zetten en goed werk af te leveren. “Bij ervaren programmeurs komen tijdens een code review zelden onregelmatigheden aan het licht. Maar er wordt ook betere code geproduceerd doordat de programmeurs weten dat iemand hun werk zal beoordelen.”
Cole kan rekenen op de volledige instemming van Alex Russell, de man achter de open source Ajax Dojo toolkit, die nu bij Google aan de Chrome webbrowser werkt. Iedereen moet rekenen op een code review, zegt hij. “Iedereen moet weten dat iemand anders hun code zal lezen, en moet realistische verwachtingen hebben over wat dat betekent,” zegt Russell.
Terzijde: bedenk vooral ook dat dit ‘anderen-lezen-mijn-code-concept’ een van de belangrijkste redenen is voor de hoge kwaliteit van open source code.