bugs

Voorkomen vs. genezen

Ze zeggen: voorkomen is beter dan genezen. Maar is dat wel zo? – In mijn vorige team besteedden we veel tijd aan het voorkomen van bugs. Ontwikkelaars rolden hun werk uit op de testomgeving en testers liepen de functionaliteit na op zoek naar bugs. Zodra de tester akkoord was, werd het werk op de acceptatieomgeving uitgerold en liepen acceptanten uit de business de functionaliteit na op bugs. Zodra de acceptanten akkoord waren, werd het op naar de productieomgeving uitgerold – en klaagden de gebruikers steen en been over alle bugs.

Uitrollen, vlak voor de demo

“Ik vind dat we niet meer uit moeten rollen vlak voor een demo,” zei een collega, “dat vond ik nogal spannend.” Liever had hij zichzelf nog wat extra tijd gegeven om zekerheid te krijgen dat de wijziging niet onbedoeld dingen stuk had gemaakt. Ik begrijp het sentiment van waaruit deze opmerking ontspringt. Maar het is in mijn beleving de verkeerde diagnose van de situatie.

Waar zit de fout?

Mijn collega bracht een argument in dat vaak wordt genoemd als ik mensen vertel over testen via de voordeur: maar door de code direct aan te roepen, geven mijn tests onmiddellijk feedback over waar de fout zit. Als deze tests beginnen te falen, dan weet ik zeker dat daar de fout zit. En dat scheelt tijd in het debuggen van de code. – Maar dat laat de volgende vraag onverlet: is een unittest (waarbij “unit” wordt opgevat als “eenheid van code”) het beste middel om erachter te komen waar de fout zit?

Bugs zijn defecten

Een softwareontwikkelaar is: iemand die defecten fixt die hij zelf heeft geïntroduceerd.

Semantische bugs

Voor een presentatie klooide ik wat variaties op het FizzBuzz-algoritme in elkaar. En ergens in de loop van die codeeroefening stuitte ik op een interessante bug – hoewel, ik weet niet eens zeker of het wel een bug was. Dus: wat is een bug eigenlijk?

De verplichte ChatGPT-blog

Met hulp van ChatGPT wist ik in een uurtje het functionele equivalent te leveren van code waar ik eerder dagen op heb zitten zwoegen. De tijdwinst is onomstotelijk. En op het vlak van informatieoverdracht is ChatGPT een ons “echte” ontwikkelaars mijlenver vooruit.