terug naar overzicht
Erwin de Rijk, VX Company

Erwin de Rijk

+31 6 46 90 95 76


24/09/16

Onderhoudbaarheid tip 6: Overdraagbaarheid

De afgelopen weken heb ik stil gestaan bij het belang van onderhoudbaarheid van maatwerk applicaties, hoe een Agile ontwikkelaanpak hieraan bijdraagt, hoe de mate van onderhoudbaarheid kan worden gemeten en hoe deze opgebouwde technical debt met refactoring kan worden aangepakt. Vorige week stond ik stil bij de rol van testen en geautomatiseerd testen in het bijzonder en het automatiseren van de infrastructuur. In dit afsluitende stuk aandacht voor overdraagbaarheid.

Overdraagbaarheid zorgt voor onderhoudbaarheid

Tijdens het ontwikkelen en onderhouden van software is ook nadruk op overdraagbaarheid van belang voor de onderhoudbaarheid. Het is moeilijk te voorspellen waar techniek en tooling zich op termijn naar toe ontwikkeld, waardoor er rekening gehouden moet worden met overdraagbaarheid. Applicatieservers, tooling, frameworks en programmeertalen zijn aan corrosie onderhevig, wat onderhoudbaarheid op termijn in gevaar brengt. Waar Delphi en Visual Basic ooit solide keuzes leken, is de doorontwikkeling en hoeveelheid ontwikkelaars op een laag punt aanbeland.rnrnAan een u003ca class=u0022clru002du002dprimu0022 href=u0022https://en.wikipedia.org/wiki/Solution_stacku0022u003eu003cemu003esoftware stacku003c/emu003eu003c/au003e worden steeds zwaardere eisen gesteld rondom o.a. productiviteit, schaalbaarheid, performance. Hierdoor ontstaan nieuwe combinaties en wijzigt de populariteit van stacks (en daarmee programmeertalen). Het is moeilijk te voorspellen of de gangbare enterprise platformen .NET en Java over 10 jaar nog relevant zijn. Wat betekent dat voor al die enterprise maatwerk applicaties die op deze platformen zijn en worden ontwikkeld? De overdraagbaarheid komt in het geding. Waak tegelijkertijd voor de inzet van u003ca class=u0022clru002du002dprimu0022 href=u0022https://en.wikipedia.org/wiki/Bleeding_edge_technologyu0022 target=u0022_blanku0022 rel=u0022noopener noreferreru0022u003ebleeding edgeu003c/au003e en cutting edge technologie. Deze technologie is vaak nog ‘onvolwassen’ en heeft zich maar ten dele bewezen. En het is maar de vraag of het ‘blijvertjes’ zijn. Grote kans dat dit op termijn moeilijk onderhoudbare componenten worden.  Maak tenminste inzichtelijk wat de risico’s van het inzetten van deze technologie zijn. Kortom, aandacht voor overdraagbaarheid tijdens ontwikkeling en in de onderhoudsfase, maakt onderhoudbaarheid op lange termijn mogelijk. Bijvoorbeeld door jaarlijks een inventarisatie te maken van de gebruikte stack, frameworks en tooling. De ThoughtWorks u003ca class=u0022clru002du002dprimu0022 href=u0022https://www.thoughtworks.com/radaru0022 target=u0022_blanku0022 rel=u0022noopener noreferreru0022u003eTechnology Radaru003c/au003e kan daarbij helpen.

Doe een APK op een bestaande applicatie

Wanneer er sprake is van een applicatie in productie met weinig functioneel onderhoud en beperkt zicht op de onderhoudbaarheid, is het zinvol de onderhoudbaarheid in kaart te brengen. Hiermee wordt dernrn*technicalu003cstrongu003e u003c/strongu003edebt** *ingeschat en een advies gegeven welke stappen er gezet dienen te worden. We noemen dit een APK, zoals we dit gewend zijn in de autowereld. Alleen dan niet pas na 3 jaar. Daarvoor verandert de omgeving te snel. In dit soort applicaties zien we vaak dat de gebruikte frameworks, platformen en infrastructuur niet bijlopen met de laatste versies. Met vooral risico’s op het gebied van security. Ook laat de analyseerbaarheid en testbaarheid vaak te wensen over. Door de lage mate van functioneel onderhoud, is de achtergrond van de gemaakte keuzes tijdens bouw vaak verdwenen waardoor de onderhoudbaarheid bepaald wordt door de kwaliteit van de code (en documentatie). En daarmee is de cirkel rond.

Conclusie

Aandacht voor onderhoudbaarheid verlaagt de Total Costs of Ownership van elke maatwerk applicatie, doordat betere kwaliteit, wijzigbaarheid en testbaarheid zorgt voor een productiever development team. Hanteer een Agile aanpak, maak technical debt continu zichtbaar en refactor waar zinvol. Automatiseer testen en de infrastructuur en besteed aandacht aan de overdraagbaarheid!

Delen