Definitie: Technische schuld, in het Engels technical debt, is het extra werk dat later nodig is omdat bij het bouwen van software is gekozen voor een snelle of tijdelijke oplossing in plaats van een betere aanpak. Zoals bij een lening betaal je rente: elke nieuwe aanpassing kost meer tijd zolang de schuld niet is afgelost.
In het kort
- De term werd in 1992 geïntroduceerd door softwareontwikkelaar Ward Cunningham.
- Technische schuld ontstaat door haast, ontbrekende tests, verouderde techniek, kopiëren van code en een groeiend systeem zonder herstructurering.
- Niet alle technische schuld is slecht: een bewuste, tijdelijke keuze om sneller te leren kan verstandig zijn, mits je hem later aflost.
- Signalen zijn trage doorontwikkeling, terugkerende fouten en ontwikkelaars die bepaalde onderdelen liever niet aanraken.
Wat is technische schuld?
Bij het bouwen van software maak je voortdurend keuzes. Soms kies je voor de snelste route om een deadline te halen of een idee te toetsen. Die keuze werkt, maar is niet de beste basis om op verder te bouwen. Het verschil tussen wat er nu staat en wat er had moeten staan, is technische schuld.
De metafoor komt van Ward Cunningham, die hem in 1992 gebruikte om aan niet-technische collega’s uit te leggen waarom het herschrijven van code nodig was. Net als bij een financiële lening krijg je iets nu, maar betaal je later met rente. Die rente is de extra tijd die elke volgende aanpassing kost, omdat ontwikkelaars om de snelle oplossing heen moeten werken.
Hoe ontstaat technische schuld?
- Tijdsdruk. Een functie moet snel live, dus de code wordt niet netjes opgezet of getest.
- Onduidelijke eisen. Halverwege verandert de richting, en oude code blijft staan naast nieuwe.
- Geen tests. Zonder automatische tests durft niemand iets te veranderen, uit angst iets anders te breken.
- Kopiëren en plakken. Dezelfde logica staat op meerdere plekken, waardoor een wijziging overal moet worden doorgevoerd.
- Verouderde techniek. Frameworks en bibliotheken worden niet bijgewerkt en raken uit ondersteuning.
- Groei zonder herstructurering. Een systeem dat voor één doel is gebouwd, krijgt er steeds functies bij zonder dat de opbouw wordt aangepast.
- Wisseling van ontwikkelaars zonder documentatie of overdracht.
- Snel gegenereerde code. Ook code uit AI-tools kan werken en toch lastig te onderhouden zijn.
Soorten technische schuld
| Soort | Wat het is | Voorbeeld |
|---|---|---|
| Bewust en verstandig | Een tijdelijke keuze om sneller te leren, met een plan om af te lossen | Een eerste versie zonder uitgebreide rechtenstructuur om te toetsen of klanten het gebruiken |
| Bewust en onverstandig | Weten dat het beter kan, maar het bewust laten liggen zonder plan | “We hebben geen tijd voor tests” |
| Onbewust | Ontstaan door gebrek aan kennis of ervaring | Een databaseopzet die bij groei vastloopt |
| Door veroudering | Code die ooit goed was, maar door nieuwe eisen of techniek achterhaald is | Een framework dat geen updates meer krijgt |
Wat kost technische schuld?
De kosten zijn lastig precies te meten, maar onderzoeken geven een indicatie. ABN AMRO verwijst naar onderzoek van McKinsey waaruit blijkt dat tussen 20 en 40 procent van de ontwikkelkosten opgaat aan het aflossen van technische schuld, en naar onderzoek van Stripe waaruit blijkt dat ongeveer een derde van de werkweek van een ontwikkelaar daaraan wordt besteed.
Voor een opdrachtgever merk je technische schuld vooral zo:
- Aanpassingen duren steeds langer en worden duurder.
- Er ontstaan nieuwe fouten op plekken die niets met de wijziging te maken lijken te hebben.
- Offertes voor kleine wijzigingen zijn verrassend hoog.
- Beveiligingsupdates zijn moeilijk door te voeren.
- Een nieuwe ontwikkelaar heeft lang nodig om het systeem te begrijpen.
Hoe los je technische schuld af?
- Maak het zichtbaar. Houd een lijst bij van bekende schuld, met de plek, de impact en een inschatting van het werk.
- Prioriteer op impact. Los eerst op wat de meeste rente kost: onderdelen die vaak worden aangepast of vaak fouten geven.
- Reserveer vaste tijd. Veel teams besteden een vast deel van elke periode aan verbeteren in plaats van alleen nieuwe functies.
- Voeg tests toe rond onderdelen die je gaat aanpassen, zodat je met vertrouwen kunt herstructureren.
- Werk in kleine stappen. Grote herschrijvingen zijn riskant; kleine verbeteringen bij elke wijziging zijn veiliger.
- Houd afhankelijkheden bij. Werk frameworks en bibliotheken regelmatig bij, voordat de achterstand te groot wordt.
Wat betekent dit voor jouw project?
Ik vind een kleine eerste versie verstandig, juist omdat je daarmee leert wat er echt nodig is. Dat betekent soms een bewuste keuze om iets eenvoudig te houden. Belangrijk is dat die keuze wordt vastgelegd, zodat duidelijk is wat er later moet worden verbeterd als de toepassing groeit.
Bij een bestaand systeem dat steeds moeilijker aan te passen is, begin ik bij de vraag wat er nu het meeste tijd kost en wie daar last van heeft. Vandaar kun je kiezen: gericht verbeteren, delen vervangen of een nieuwe opzet.
Wordt elke aanpassing aan je software duurder dan je verwacht? Stuur me wat het systeem doet, wie ermee werkt en waar het vastloopt. Dan bepalen we samen de logische eerste stap.
Veelgestelde vragen over technische schuld
Wat is technische schuld?
Technische schuld is het extra werk dat later nodig is omdat bij het bouwen van software is gekozen voor een snelle of tijdelijke oplossing. Elke nieuwe aanpassing kost meer tijd zolang de schuld niet is afgelost.
Wie heeft de term technical debt bedacht?
De term technical debt is in 1992 geïntroduceerd door softwareontwikkelaar Ward Cunningham. Hij gebruikte de metafoor van een lening om uit te leggen waarom het verbeteren van code nodig was.
Is technische schuld altijd slecht?
Nee. Een bewuste, tijdelijke keuze om sneller te leren of een deadline te halen kan verstandig zijn, zolang je hem vastlegt en later aflost. Problematisch wordt het als de schuld ongemerkt blijft groeien.
Verwante termen
Doorontwikkeling en onderhoud · Broncode · Maatwerk software · Vibe coding · AI-codeassistent · Datamigratie
← Terug naar de kennisbank