Wat is tech debt en hoe beheers je het?
In de wereld van website-ontwikkeling wordt het begrip "tech debt", ook wel technische schuld genoemd, steeds relevanter. Het verwijst naar cumulatieve kosten die ontstaan wanneer een ontwikkelingsteam kiest voor een snelle, maar minder optimale oplossing in plaats van de best mogelijke technische implementatie.
Deze compromissen worden vaak gemaakt om deadlines te halen of om snel nieuwe functies te leveren. Op de lange termijn kunnen ze aanzienlijke gevolgen hebben voor de onderhoudskosten, prestaties en toekomstige ontwikkeling van een website.
De vormen en gevolgen van tech debt
Er bestaan diverse vormen van tech debt. Deze kunnen op verschillende niveaus in een website project voorkomen. Laten we de belangrijkste categorieën verkennen:
Bewuste tech debt
Bewuste tech debt ontstaat wanneer ontwikkelaars opzettelijk beslissingen nemen (of opgedragen krijgen) om kortetermijnvoordelen te behalen, zelfs als ze weten dat dit in de toekomst problemen kan veroorzaken. Een situatie waarin dit voor kan komen is bijvoorbeeld om een website snel online te krijgen. Voorbeelden van bewuste tech debt zijn:
Het overslaan van gedegen beveiligingstests om de ontwikkeltijd te verkorten, wetende dat dit later beveiligingsproblemen kan veroorzaken.
Het gebruiken van verouderde technologieën of code die niet meer ondersteund worden omdat ze snel beschikbaar waren.
Onbewuste tech debt
Onbewuste tech debt ontstaat wanneer ontwikkelaars beslissingen nemen zonder zich volledig bewust te zijn van de mogelijke tech debt die ze creëren. Dit kan gebeuren door gebrek aan ervaring, onvoldoende documentatie of slecht begrepen vereisten. Voorbeelden zijn onder andere:
Het schrijven van complexe, ongedocumenteerde code. De code is hierdoor moeilijk te begrijpen voor andere ontwikkelaars en kan in de toekomst niet goed worden onderhouden.
Het negeren of niet op de hoogte zijn van best practices bij het ontwerpen van de database. Dit kan later leiden tot trage query prestaties en moeilijkheden bij het schalen van de website.
Onderhouds-/update-tech debt
Onderhouds- of update-tech debt ontstaat naarmate een website ouder wordt en regelmatige onderhouds- of updateschema's worden overgeslagen. Dit kan het gevolg zijn van veranderingen in technologie, beveiligingsrisico's of wijzigingen in zakelijke vereisten. Voorbeelden zijn onder andere:
Het niet bijwerken van verouderde bibliotheken of frameworks, waardoor de website kwetsbaar wordt voor beveiligingslekken.
Het niet testen van nieuwe functies of wijzigingen op oudere browsers of mobiele apparaten, wat resulteert in slechte gebruikerservaringen op sommige platformen.
Over de hele linie leidt tech debt tot toenemende onderhoudskosten. Dit komt doordat developers meer tijd kwijt zijn aan het ontwikkelen van nieuwe functionaliteiten en/of het onderhouden van het platform. Daarnaast wordt de doorontwikkeling vertraagd door de steeds complexer en inefficiënter wordende codebase die voor onvoorziene reacties zorgt. Dit heeft vaak ook directe gevolgen voor de gebruikers van het platform. De inefficiënte codebase kan zorgen voor vertraging of functionaliteiten die niet goed werken, met als resultaat een slechte gebruikerservaring.
Het beheersen van tech debt
Website-ontwikkeling en tech debt zijn onlosmakelijk met elkaar verbonden. Toch kun je het op een gestructureerde manier (proberen te) beheersen. Dit zijn enkele voorbeelden hoe we dit bij MaxServ aanpakken:
- Erkenning: Het begint met het erkennen dat tech debt bestaat. Dit vereist open communicatie binnen het ontwikkelingsteam, de klant en eventuele stakeholders.
- Voorbereiding: Een onderdeel van onze werkwijze is het aantal werkuren van een ticket inschatten. Een goede inschatting is essentieel en zorgt ervoor dat er minder onvoorziene zaken boven water komen tijdens het ontwikkelen. Ook zorgt een goede inschatting ervoor dat er voldoende tijd wordt gereserveerd. Zo voorkomen we dat er spoedklussen ontstaan waarbij de kantjes eraf worden gelopen.
- Planning: Tech debt moet worden meegenomen in de planning van sprints. Het is essentieel om tijd te reserveren voor het aanpakken van tech debt of er in ieder geval voor zorgen dat het creëren van nieuwe tech debt wordt geminimaliseerd.
- Regelmatige code reviews: Bij MaxServ reviewen developers elkaars code alvorens het kan worden doorgezet naar de volgende stap in het ontwikkelproces. Pas bij voldoende bevestigingen van collega’s kan het ticket worden doorgeschoven.
- Automatisering en tests: Met geautomatiseerde tests die we zelf hebben geschreven zorgen we voor een goede testdekking van alle code. Dit zorgt voor een robuustere codebase en voorkomt niet-functionerende functionaliteiten en websites.
- Innoveren: Wij zijn continu aan het onderzoeken hoe we onze platformen kunnen verbeteren en hoe we de versies en het onderhoud van onze platformen gelijk kunnen trekken. Hoewel innoveren ook tech debt creëert omdat je niet alles gelijktijdig kan overzetten, biedt het in veel gevallen wel verbeteringslagen voor de toekomst.
- Continue educatie: Zorg ervoor dat het team op de hoogte blijft van best practices en nieuwe technologieën om tech debt te verminderen. Wij doen dit door frontend- en backend developers elke week afwisselend te trainen onder begeleiding van een externe partij. Ook educatie zorgt in eerste instantie voor tech debt. Je leert namelijk hoe dingen beter kunnen, maar deze kennis is dan niet direct geïmplementeerd bij alle bestaande platformen. Door hier echter op door te pakken biedt het wel verbetering in het beheersen van vooral onbewuste tech debt.
Conclusie
Het beheersen van tech debt is van belang voor het behoud van een gezond en efficiënt website ontwikkelingsproces. Het vermijden van korte termijn oplossingen ten koste van de lange termijn kwaliteit is volgens ons van groot belang voor het bouwen van duurzame, schaalbare en innovatieve platformen. Door tech debt te erkennen, te prioriteren en structureel te beheersen kunnen onze teams de kosten op de lange termijn verlagen en de wendbaarheid van de platformen vergroten.
Neem vrijblijvend contact met ons op
Nieuwsgierig geworden naar wat we voor jou kunnen betekenen? We leren je graag kennen! Neem vrijblijvend contact op of laat een bericht achter.