SensioLabs audit: creatief verslag

Inzichten / SensioLabs audit van Harmony / Creatief verslag

Het was pittig koud voor de tijd van het jaar.

Nochtans had Jonas niet te klagen. Het regende al even niet meer en hij had er net z’n jaarlijks verlof opzitten. Het had een rustige vrijdag moeten worden, maar zoals vaak draaide z’n planning daags voordien in de soep. Na twee coachingsessies en een helse klanten meeting, had hij wel wat zin in code. Niets speciaals, gewoon een klein experimentje, een proof of concept zeg maar.

Iets voor vieren, typte Jonas het magische commando “git add .”, gevolgd door “git commit -m 'Init project' ”. Zonder het op dat moment zelf te beseffen, schreef hij die dag - op 29 mei 2015 - Wijs-geschiedenis.

We schrijven bijna drie jaar later. Het pietluttige experiment van Jonas is uitgegroeid tot een volwaardig platform. Wat begon als “symfony-boilerplate” heet vandaag Harmony. De initiële insteek “developer-friendly startpunt om sneller, performanter en veiliger in te spelen op verscheidene vragen van klanten” bleef overeind, maar maakte gaandeweg een beetje plaats voor een sexy marketing catchphrase: “A web platform, that grows with your business”.

De voorbije jaren werden gekleurd door meer dan tienduizend code toevoegingen, de ene al kwalitatiever dan de andere. We namen complexe raadsels mee naar huis, waar dat van "de kool, de geit en de wolf” kinderspel bij lijkt. We dronken een pint na het zoveelste tactische overlegmoment. Met momenten moegestreden, maar steevast klaar om de volgende pull request te reviewen en “ons systeem” net dat tikkeltje beter te maken.

En toen kwam ze. De mottige strikvraag die bij een negatief antwoord automatisch gevolgd wordt door “wanneer dan wel?”. De “istalaf?” werd positief beantwoord. Een brutale leugen. Software is als een mooi onderhouden tuin: nooit af. Maar toch, we slaagden erin menig project succesvol op te leveren en in de lucht te houden. Klanten tevreden, Wijs tevreden, software engineers tevreden.

We werken nu bijna drie jaar dagelijks aan Harmony en net zoals in iedere puberale liefdesrelatie durft er al eens een stoute vraag de kop opsteken. “Is zij de ware?” is in ons geval "Zijn we wel goed bezig?” of "Hebben we inhoudelijk wel de juiste keuze(s) gemaakt?”. Begrijp me niet verkeerd, wij zijn enorm tevreden over wat we tot hiertoe met onze code bereikt hebben. Maar het internet verandert, de CMS-markt evolueert. Wij doen dat als engineers ook, we leren en sturen continu bij, maar de vraag is of we dit wel voldoende doen. Het is goed om na te gaan of de stellingen van twee jaar geleden nog kloppen, en om te kijken of we juist gereageerd hebben op de probleemstellingen.

Is onze code zoveel beter dan die van onze concullega’s?

Mijn coderende soortgenoten en ikzelf kunnen zonder verpinken knap lastig doen als we iets moeten uitleggen aan minder technische mensen, dus die laatste nemen ons vaak op ons woord. We verkondigen maar al te graag dat we het nieuwe wiel hebben uitgevonden, dat ons warm water warmer is dan dat van de rest. We hebben het lef om te stellen dat onze oplossing niet één maar wel duizend keer beter is dan die van de buurman.
Maar klopt dat wel?

Wat maakt ons product beter dan dat van iemand anders? Waarom zou je in godsnaam je eigen platform ontwikkelen met een dozijn engineers, terwijl er systemen bestaan zoals Wordpress en Drupal, waar duizenden mensen aan werken? En bovendien, is de kwaliteit die we leveren, wel voldoende om het verschil te proberen maken? Cruciale vragen voor ons management, waar we dringend een antwoord op nodig hadden, als we Harmony wilden verkopen en verder wilden werken aan het platform.

Het is soms beter om de vragen die je hebt, te stellen aan experts die er een sluitend antwoord op hebben, in plaats van er door middel van je eigen expertise een omslachtig half-samenhangend iets op te plakken. Niets wees in de richting dat we verblind waren door Harmony, ongevoelig voor onze fouten en onjuistheden, maar ook niets ontkrachtte die stelling. Peter, onze CTO, besloot de vragen door te spelen aan een klein Frans bedrijfje, SensioLabs.

Die naam zegt je waarschijnlijk niets en dat is niet eens erg. Het bedrijf is verantwoordelijk voor de ontwikkeling van Symfony. Symfony is een PHP framework en een verzameling van verschillende componenten die in heel wat systemen gebruikt worden. Denk aan Drupal, dat componenten van Symfony gebruikt of de website van Spotify die gebouwd is op het volledige framework. Naast de ontwikkeling van het populairste framework ter wereld, doet SensioLabs ook audits of kwaliteitscontroles. En dat is nu net waar wij hen voor nodig hadden. Niet dat we bang waren om onze codebase door te spelen aan de mensen van SensioLabs hoor. Maar wat als die jongens ons nu eens vierkant gingen uitlachen? Hoe hard zouden we met ons pretentieus bakkes tegen de vlakte gaan? We waren bang dat de voorbije twee jaar voor niets geweest zouden zijn.

Eigen lof stinkt, dus de experts aan het woord

Na een periode van een aantal weken, openden we met knikkende knieën dan ook het PDF-bestandje waarin de feedback van SensioLabs over Harmony verzameld was. Het voelde een beetje aan als je rapport krijgen, je weet zelf dat het met ups en downs was geweest en dat je voor esthetica maar half zoveel je best had gedaan als voor wiskunde, maar een eindresultaat voorspellen was verdomd lastig.

Een globaal eindcijfer bleef uit. Na het doorspitten van een lijvig document, vol mysterieuze verwijzingen naar The Consultants, kunnen we onze initiële vraag positief beantwoorden. Zijn we als engineering team (nog steeds) goed bezig? Het antwoord is: reken maar van yes!

Nog steeds in het ongewisse over wie The Consultants nu juist zijn, verdeelden we het document onder in zaken die we “beter zouden gaan doen” en “echt onmiddellijk moeten opnemen”. Eigen lof stinkt, maar de waarheid moet ook verteld worden. In die laatste lijst stond geen enkel punt. Volgens The Consultants - en ik citeer: “despite the improvements mentioned in this audit, the whole code quality is exceptionally good”.

Natuurlijk zijn er ook echte verbeterpunten. Het zou spijtig zijn dat we een kwaliteitscontrole laten uitvoeren en geen enkele opmerking ontvangen. We wilden niet alleen feedback, maar ook advies. Bijgevolg kan onze documentatie wat beter, de code hangt te veel aan elkaar, met het oog op loskoppelen van functionaliteiten en hier en daar zijn restanten te vinden van oude code, die nu niet meer gebruikt wordt maar nog in het systeem zitten. Deze feedback werd voorafgegaan door de woorden “For the sake of perfection, the consultants advise…”

Het duurde niet lang voordat ons team aan de slag ging met het verwerken van deze feedback. De voorgestelde optimalisaties werden structureel doorgevoerd en de scherpe kantjes werden er afgevijld. We doen al sinds de oer-commit ons best om de Symfony-manier-van-werken te respecteren. Iets wat we volgens The Consultants reeds voldoende doen: “good signs that the code follows the development best practices.”

Dat we “goed zijn met computers”, weten we wel. Menig spoedinterventie bij grootvader, om het probleem met die verdomde printer en Windows Vista op te lossen, liggen in een niet zo ver verleden. SensioLabs bevestigde dat we ook echt goed zijn met code, althans dat onze code goed is: “The objective of the audit was to validate a quality code, sufficient enough to allow maximum productivity for development teams. From our point of view, auditing does not involve major problems, quite the contrary.”

We werken verder

Met andere woorden, de code die onder de motorkap van Harmony ligt is door “de keuring” geraakt. En dat met schitterende punten. SensioLabs nam onze code onder de loep en gaf ons een paar feedbackpunten, die ondertussen reeds allemaal verwerkt zijn. Ons engineering team is zeker tevreden, het harde werk heeft geloond, maar of we nu met het hele team een weekje Ibiza inplannen? Neen, dat niet. We werken verder.

Toen ik een klein ventje was, had ik een encyclopedie met allerlei gevechtsvliegtuigen. Ik droomde ervan om zelf ooit met die prachtige toestellen te vliegen, in het bijzonder met zo’n Eurofighter Typhoon. Ik hang de poster meteen opnieuw op, mocht ik die nog hebben. De kans dat ik ooit zelf de knuppels van zo’n fighter jet in mijn handen klem, is erg klein - zo niet onbestaande. En hoewel de rest van de wereldbevolking het wellicht beter vindt zo, droomde ik daarvan. Net zoals ik vandaag droom van foutloze, hyperperfomante en uiterst veilige code, die bovendien nog eens perfect aansluit bij de wensen van onze klanten.

Het is een illusie dat wij geen fouten maken én toch is het net dàt dat we iedere dag proberen te bereiken met Harmony. Iedere dag, al sedert de eerste commit van Jonas, werkt ons engineering team eraan. Om het platform beter te maken, om problemen op te lossen, om het uit te breiden met nieuwe functionaliteiten en om het nog meer af te stemmen op de exacte vraag van onze klanten.

Benieuwd naar hoe we zo’n succesvol verhaal naar jouw bedrijf kunnen vertalen? Contacteer ons, dan bekijken we het samen.

Genoten van het creatief verslag?

Lees hier de technische versie