terug naar overzicht

25/07/16

Insight insight

Applicatieontwikkeling
Erwin de Rijk, VX Company

Erwin de Rijk

+31 6 46 90 95 76


25/07/16

Onderhoudbaarheid van applicaties: een onderschatte kostenpost. Zeven tips

Nog steeds worden de kosten van het onderhoud van maatwerk applicaties en het belang van onderhoudbaarheid onderschat. Uit vele onderzoeken, onder andere van Gartner, blijkt dat de onderhouds- en beheerkosten van maatwerk software de bouwkosten ruimschoots overtreffen tijdens de lifecycle van de applicatie. De onderhoudsfase is veelal de langste fase in de levensduur van een applicatie, soms zelfs langer dan de technologielevensduur. Om de Total Costs of Ownership (TCO) te verlagen, is de mate van onderhoudbaarheid zeer bepalend. In deze reeks een zevental tips die de onderhoudbaarheid verhogen.

Wat is onderhoudbaarheid en waarom is het belangrijk?

Onderhoudbaarheid van software ((ISO 25010: u003ca class=u0022clru002du002dprimu0022 href=u0022https://nl.wikipedia.org/wiki/ISO_25010u0022 target=u0022_blanku0022 rel=u0022noopener noreferreru0022u003ehttps://nl.wikipedia.org/wiki/ISO_25010u003c/au003e) wordt vaak onderverdeeld in:rn* u003cstrongu003eModulariteitu003c/strongu003e: de mate waarin een systeem of computerprogramma opgebouwd is in losstaande componenten zodat wijzigingen van een component minimale impact heeft op andere componenten.rn* u003cstrongu003eHerbruikbaarheidu003c/strongu003e: de mate waarin een bestaand onderdeel gebruikt kan worden in meer dan één systeem of bij het bouwen van een nieuw onderdeel.rn* u003cstrongu003eAnalyseerbaarheidu003c/strongu003e: de mate waarin het mogelijk is om effectief en efficiënt de impact, van een geplande verandering van één of meer onderdelen, op een product of systeem te beoordelen, om afwijkingen en/of foutoorzaken van een product vast te stellen of om onderdelen te identificeren die gewijzigd moeten worden.rn* u003cstrongu003eWijzigbaarheidu003c/strongu003e: de mate waarin een product of systeem effectief en efficiënt gewijzigd kan worden zonder fouten of kwaliteitsvermindering tot gevolg.rn* u003cstrongu003eTestbaarheidu003c/strongu003e: de mate waarin effectief en efficiënt testcriteria vastgesteld kunnen worden voor een systeem, product of component en waarin tests uitgevoerd kunnen worden om vast te stellen of aan die criteria is voldaan. Kort gezegd wordt de mate van onderhoudbaarheid van software bepaald door dernrnu003cemu003emodulariteitu003c/emu003e, u003cemu003eherbruikbaarheidu003c/emu003e, u003cemu003eanalyseerbaarheidu003c/emu003e, u003cemu003ewijzigbaarheidu003cstrongu003e en testbaarheidu003c/strongu003e u003c/emu003evan de code. Dit lijkt een open deur, en toch zien we vaak dat onderhoudbaarheid uit het oog wordt verloren bij het (door)ontwikkelen van (bestaande of nieuwe) software. Tegelijkertijd kent onderhoudbaarheid een optimum; doorslaan werkt averechts. Na de eerste gemaakte functionaliteit begint al het onderhoud. Elke functionaliteit die wordt bijgebouwd, beïnvloedt de reeds bestaande code en wordt vooral ook beïnvloed door de bestaande code. Slecht opgezette code wordt steeds meer een last en verlaagt gaandeweg de productiviteit. Naar mate de hoeveelheid code groeit en de tijd verstrijkt, kan de productiviteit (en/of de kwaliteit) enorm dalen door de last van niet goed opgezette code. Dit wordt u003cemu003etechnicalu003cstrongu003e u003c/strongu003edebtu003c/emu003e genoemd: schuld die nog uitstaat aan de techniek en die voor een goede werking en onderhoudbaarheid nog ingelost moet worden. In de volksmond spreken we dan snel over u003cemu003elegacyu003c/emu003e. u003cemu003eTechnical debt is the invisible parts of your code that adds negative value to your system.u003c/emu003ernu003cfigure class=u0022clearfixu0022u003eu003cimg class=u0022aligncenteru0022 src=u0022https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost-Zeven-tips-Techn-dept-blog-Victor.jpgu0022 srcset=u0022u0022 alt=u0022onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost-zeven-tips-techn-dept-blog-victoru0022 width=u0022300u0022 height=u0022autou0022 data-srcset=u0022https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost-Zeven-tips-Techn-dept-blog-Victor.jpg 75w, https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost-Zeven-tips-Techn-dept-blog-Victor@2x.jpg 150w, https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost-Zeven-tips-Techn-dept-blog-Victor@4x.jpg 300wu0022 /u003eu003c/figureu003e

Technical debt

Matige onderhoudbaarheid wordt dus vaak veroorzaakt door technical debt. Hoewel geen fijn woord, wordt het wel eens u003cemu003ecodeu003cstrongu003e u003c/strongu003ecanceru003c/emu003e genoemd. Technical debt ontstaat doordat tijdens het ontwikkelen u003cemu003eshort cutsu003c/emu003e worden genomen om snelheid te maken: code die werkt maar moeilijk is te onderhouden. Er wordt op voortgeborduurd en beetje bij beetje wordt de code u003cemu003ebesmetu003c/emu003e. De snelheid van veranderingen die de business najaagt, wakkert dit alleen maar aan. Vroeg of laat wordt deze code onbeheersbaar en verliest de business alle snelheid. Het inlossen van deze schuld (technical debt) wordt *refactoring** *genoemd. *Preventing technical debt is what allows development to be agile in the long run. *(u003ca class=u0022clru002du002dprimu0022 href=u0022https://www.atlassian.com/agile/technical-debtu0022 target=u0022_blanku0022 rel=u0022noopener noreferreru0022u003ehttps://www.atlassian.com/agile/technical-debtu003c/au003e) In de komende weken staan we stil bij een zevental tips om de onderhoudbaarheid, en daarmee de productiviteit en wendbaarheid, van maatwerk applicaties op het gewenste niveau te brengen en te houden.rn* Tip 1: u003ca class=u0022clru002du002dprimu0022 href=u0022https://vxcompany.com/2016/08/04/onderhoudbaarheid-tip-1-gebruik-agile-ontwikkelaanpak/u0022u003eWerk met een AGILE ontwikkelaanpaku003c/au003ern* Tip 2: u003ca class=u0022clru002du002dprimu0022 href=u0022https://vxcompany.com/2016/08/12/onderhoudbaarheid-tip-2-maak-analyseerbaarheid-en-complexiteit-zichtbaar/u0022u003eMaak analyseerbaarheid en complexiteit zichtbaaru003c/au003ern* Tip 3: u003ca class=u0022clru002du002dprimu0022 href=u0022https://vxcompany.com/2016/08/22/onderhoudbaarheid-tip-3-refactor-korte-termijn-doelen/u0022u003eRefactor met korte termijn doelenu003c/au003ern* Tip 4: u003ca class=u0022clru002du002dprimu0022 href=u0022https://vxcompany.com/2016/08/29/onderhoudbaarheid-tip-4-automatiseer-testen/u0022u003eAutomatiseer testenu003c/au003ernu003cfigure class=u0022clearfixu0022u003eu003c/figureu003ernu003cfigure class=u0022clearfixu0022u003eu003cimg class=u0022aligncenteru0022 src=u0022https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost.-Zeven-tips-blog-Victor.jpgu0022 srcset=u0022u0022 alt=u0022onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost-zeven-tips-blog-victoru0022 width=u0022562u0022 height=u0022autou0022 data-srcset=u0022https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost.-Zeven-tips-blog-Victor.jpg 141w, https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost.-Zeven-tips-blog-Victor@2x.jpg 281w, https://vxcompany.com/wp-content/uploads/Onderhoudbaarheid-van-applicaties-een-onderschatte-kostenpost.-Zeven-tips-blog-Victor@4x.jpg 562wu0022 /u003eu003c/figureu003e

Delen