Verslag code inspectie met IfSQ

13-05-2010

Dit verslag is geschreven door Rick van der Arend(@rvdarend) . Bedankt Rick!

Nog even hard aan het werk om zover mogelijk te komen voor een presentatie van de rapportage-faciliteiten komende maandag en vervolgens de boel afsluiten om alles netjes achter te laten voor het lange Hemelvaartweekend. En dan uiteindelijk tegen vijf uur toch echt in de auto duiken in Amersfoort om de A1 en A9 te pakken richting het Microsoft kantoor bij Schiphol. Zo begon mijn woensdagavond.

Aangekomen bij het goed bereikbare kantoor bleek alles piekfijn geregeld. De receptie wist van de komst van de Devnology leden af en gaf zonder gemor een in- en uitrij kaart aan me uit. Binnengekomen werd ik door een vriendelijke dame begeleid naar het restaurant. Ondertussen gaf ik natuurlijk mijn ogen goed de kost, ik was nog niet in dit vrij nieuwe kantoor geweest en wist dat ze er werkend volgens "Het Nieuwe Werken". Dat betekent grote tafels en open ruimte en dus veel ruimte voor flexwerkers. En daarnaast kleine afgezonderde ruimtes voor teams of een-op-een gesprekken. Al met al zag het er mooi uit, wel een beetje massaal. Maar de inrichting gaf het toch wel een 'warm' gevoel, met afwisselende details en het gebruik van stoffen bekleding op een behoorlijk aantal muren. Uiteraard ook nuttig om geluidsoverlast te voorkomen, aangezien deze muren behoorlijk wat geluid opnemen. Aangekomen bij het restaurant was daar de keuze tussen een lasagne en een tagliatelle. Met een flink bord lasagne voor mijn neus raakte ik al snel in gesprek met de andere ontwikkelaars die er vanavond bij gingen zijn. De lasagne was heerlijk en ik heb me laten vertellen dat de tagliatelle ook prima was. De avond eindigde overigens ook met een borrel met een aantal lekkere hapjes en drankjes, dus we zijn goed verzorgd door Microsoft.

De Devnology bijeenkomst van vanavond draaide deze keer om code reviews volgens het format van IFSQ. Frank Oppedijk en Ronald Harmsen gingen ons daarin wegwijs maken en uiteraard uitleggen waarom ze deze techniek zelf ook gebruiken. Ten eerste een korte impressie van de theorie:

  • De IFSQ code review techniek kent meerdere, zo expliciet en objectief mogelijk beschreven niveaus.
  • Niveau 1 is echt heel expliciet beschreven en bestaat uit het tellen van beschreven defects in code-regels. 
  • Denk hierbij o.a. aan todo's die nog in de code staan en het gebruik van magic numbers.
  • Het totale aantal defects per soort en in totaal wordt uitgerekend en gedeeld op het aantal regels code komt daar een rapportcijfer uit.
  • Elk volgend niveau voegt een aantal defects toe waarop gecontroleerd dient te worden.
  • Niveau 2 is ook nog vrij expliciet, maar heeft wel drie subjectieve regels erbij vermeld al.
  • Niveau 3 voegt een aantal vrij subjectieve regels toe.
  • Een en ander is allemaal goed terug te vinden op http://www.ifsq.org

Om er een beetje gevoel voor te krijgen, hebben we gezamenlijk een IFSQ check level 1 uitgevoerd op door Frank en Ronald meegebrachte code. Dat bleek nog niet eenvoudig, je moet even wat handigheid krijgen in het 'zien' van de defects en deze handig optellen. Detecteren per type over de hele lengte en vervolgens optellen per type en per pagina bleek handig te werken. Vervolgens gingen we aan de slag met onze eigen code of een tweede set meegebrachte code voor een ronde op level 2. Ik ben begonnen met mijn eigen code, maar het bleek handig te zijn om regelnummers mee te printen en niet twee pagina's per A4 uit te printen, zodat ik daar vrij snel vanaf stapte (vond trouwens ook veel te weinig :-)). Vervolgens heb ik nog even gebruik gemaakt van de voor iedereen meegebrachte code.

Eerlijk gezegd kreeg ik al snel het idee dat deze checks toch te automatiseren moeten zijn, zeker die op niveau 1. En er zijn uiteraard vrij veel static code checking tools die precies dat doen. De vraag werd dan ook aan onze presentatoren voorgelegd of dit niet beter ge-automatiseerd gedaan kan worden. Ronald en Frank gaven aan deze vorm van code reviewing volgens de IFSQ methode te doen om de volgende redenen:

  • De regels zijn door een onafhankelijk orgaan opgesteld. Dit maakt het eenvoudiger te verdedigen in lastige situaties waar er een (al dan niet terechte) schijn van belangenverstrengeling is.
  • Niet alle regels zijn voldoende expliciet te maken. Wat is er allemaal een todo die nog in de code staat? Dat staat vaak free-format in commentaar..
  • Het uitvoeren van de code-checks heeft ook een leereffect. Doe je het met het team, dan zwengelt het ook de discussie aan.
  • De regels zijn bewust taal-onafhankelijk opgesteld
  • Zeker de hogere niveaus zijn moeilijk expliciet genoeg te maken om ge-automatiseerd te kunnen checken.

Mogelijk heb ik er nog een paar gemist, maar ik geloof dat dit ze toch wel waren. Of dit voldoende redenen zijn om gebruik te maken van deze methode, laat ik uiteraard aan de lezer. Zelf vond ik het in ieder geval interessant om een afwijkend geluid te horen wat dit betreft en mocht ik hem nodig hebben, dan weet ik waar ik moet zoeken. Hierbij wil ik dus in ieder geval Ronald en Frank bedanken voor de goede voorbereiding en organisatie. Naast de inhoud was de avond in ieder geval ook een mooie gelegenheid om een aantal mensen weer eens te spreken. En nu op naar de Open Space in juni!

[

 

   ](http://www.flickr.com/photos/devnology/sets/72157623924870545/show/)

News @devnologynl

@michielovereem @JoyOfCoding OOOOPS! It is June 30th!

21-03-2017 at 09:20

RT @JoyOfCoding: Very early bird tickets available for the fifth anniversary conference! Check out our new web site and order yours https:/…

09-03-2017 at 08:47

@JeroenSoeters The jury’s still out on that one. Come and talk to us in April :)

06-03-2017 at 15:27

Qwan 5dff39510bacfcefb54e89f953eddfc1a7a21185b7128d96ff6b466f56acb6d9
Macaw 06e9331a5321067b592bf45ea39db7df6792dc976000d24d3ee4043d99203514
Finalist e304343cdbeb0996cc1e7a26527993a5fa2db87ca53a81fb15dca22a35d7f28c

Devnology is a non-profit organisation and thus depends on sponsors. Thanks to our wonderful sponsors all Devnology events are free!