Technical debt. Als je werkzaam bent in een IT bedrijf, is de kans groot dat je deze term maar al te goed kent. Maar wat is technical debt precies, en is het altijd iets negatiefs? In dit artikel duiken we in de wereld van technical debt en bespreken we hoe je het effectief kunt managen om je bedrijf te laten groeien zonder onnodige risico’s.

Wat is Technical Debt?

Technical debt, of technische schuld, is een metafoor die wordt gebruikt om de impliciete kosten van rework te beschrijven die voortkomen uit het kiezen van een snellere, minder optimale oplossing in plaats van een betere aanpak die langer zou duren. Net zoals financiële schuld, kan technical debt een strategische keuze zijn die je helpt sneller te innoveren, mits je het bewust en gecontroleerd aangaat.

Elke organisatie staat voor de uitdaging om een balans te vinden tussen innovatie en onderhoud. De vraag is niet of je technical debt hebt, maar hoe je ermee omgaat. 

Voorzien of niet?

Technical debt is niet in alle gevallen een bewuste keuze. We maken dan ook onderscheid tussen vrijwillige en onvrijwillige technical debt.

Bij vrijwillige technical debt is het een bewuste keuze om technische shortcuts te nemen om sneller te kunnen leveren. Denk aan het uitstellen van refactoren van code om een productlancering niet te vertragen. De voordelen zijn een snellere time-to-market en dus de mogelijkheid om snel in te spelen op marktveranderingen. De nadelen zijn echter dat je, om in de metafoor van financiële schulden te blijven, de schuld uiteindelijk moet afbetalen, vaak met rente. Bij technical debt komt dit tot uiting in extra werk voor de toekomst en potentiële risico’s op de lange termijn.

Onvrijwillige technical debt ontstaan voornamelijk door het voortschrijden van de tijd, zonder dat er bewust iets aan wordt gedaan. Dit kan gebeuren wanneer frameworks uitkomen met nieuwe versies, of wanneer de requirements worden uitgebreid zonder dat de oorspronkelijke oplossing hierop voorbereid is. Ook een toename van het aantal gebruikers kan leiden tot performance-bottlenecks, en afhankelijkheden kunnen security-problemen hebben die bijgewerkt moeten worden. De risico’s van onvrijwillige technical debt zijn vaak groter, omdat het onvoorziene problemen kan veroorzaken die moeilijker en kostbaarder zijn om op te lossen. Zo kan onbeheerste technical debt leiden tot complexe en moeilijk te onderhouden codebases.

Het managen van Technical Debt in de praktijk

Vrijwillig of niet, het managen van technical debt is een must. Om technical debt beheersbaar te houden kun je verschillende maatregelen nemen. Om te beginnen helpt het om een goede en robuuste infrastructuur te hebben. Dit kan je aanvullen met beleid en richtlijnen, zoals goede ‘housekeeping’, het beschrijven van je Software Development Life Cycle en het gebruik van architectuurprincipes. Dit alles leidt tot betere onderhoudbaarheid en dus minder kans op onvrijwillige technical debt. Ook kan het helpen om de kwaliteit van je code tussentijds te toetsen. Maatregelen zoals geautomatiseerde testen, paired programming en codereviews helpen fouten vroegtijdig uit de code te halen waarmee je voorkomt dat minimale oneffenheden op termijn uitgroeien tot grote technical debt. 

Omarm technical debt in je cultuur

Het effectief managen van technical debt gaat verder dan alleen technische oplossingen en het beschrijven van richtlijnen. Je cultuur is misschien wel de belangrijkste aanjager van het beheersbaar maken van technical debt. Hoe?

Ten eerste, erken de aanwezigheid van technical debt, begrijp de impact op de lange termijn en draag dit uit binnen je organisatie. Door het bewustzijn van technical debt op alle lagen van de organisatie te vergroten, creëer je begrip. Dit leidt tot betere besluitvorming, planning en prioritering. 

Koester daarnaast een cultuur van incrementele verbetering en eigenaarschap. Moedig het team aan voortdurend kleine verbeteringen aan te brengen. Laat hierbij ruimte voor ‘eigen initiatief’. Developers kennen immers de codebase en dus verbeterpotentie het beste. Zo kun je je team bijvoorbeeld een vast percentage geven om te besteden aan technical debt. Ook kun je teams stimuleren met de introductie van metrieken en rapportages. 

Tot slot, laat zien dat je het belangrijk vindt door te investeren in kennis en vaardigheden van je team. Door training en ontwikkeling op het gebied van best practices, nieuwe technologieën en tooling, helpt je team toekomstbestendige keuzes te maken en technical debt te beheersen. In aanvulling hierop kan het helpen een mentorship programma in te richten, waarbij ervaren en minder ervaren ontwikkelaars aan elkaar gekoppeld worden. Naast dat dit bijdraagt aan consistentie in je aanpak, zorgt dit ook dat je ‘technical debt cultuur’ in de toekomst behouden blijft.

_______

Cloud++ is een software development partner die organisaties helpt innoveren en groeien. Wil je meer weten over het effectief managen van technical debt of heb je een andere uitdaging als het gaat om software development? Bij Cloud++ begrijpen we je uitdagingen als geen ander. Stuur me een bericht of plan een afspraak om te ontdekken hoe we jou kunnen ondersteunen.

Naud van Onna
Business Development Manager
T: 0619034748