Software roest niet

onderhoud is altijd nodig

Geschreven door: op
Afgelopen week had ik een discussie over houdbaarheid van software. "Software roest niet", zei hij vol overtuiging. De logische conclusie die hieruit volgt is dat als het eenmaal werkt het altijd zou moeten blijven werken. Is dat waar?

De discussie over roest is iets wat waarschijnlijk aan mijzelf ligt, aangezien ik software vaak met een auto vergelijk. Wanneer je een auto koopt en hierin gaat rijden, krijg je slijtage. De auto moet regelmatig naar de garage en naarmate de auto ouder is wordt het onderhoud ook duurder. Blijf je in hetzelfde model rijden dan komt er een moment dat de auto 'outdated' eruit ziet en ook zo aanvoelt.

Deze vergelijking ging volgens de ander echter niet op; je koopt een product en dat moet het ook over een jaar nog steeds werken. Er is namelijk niets aan de software veranderd!

In beweging

Zonder dat je dit merkt is ook software echter constant in beweging. Het Operating System zoals Windows Server krijgt iedere week wel weer een update. De database software zoals SQL Server krijgt ook regelmatig updates. Dit betekent dat het platform waar de software op draait constant in beweging is. Dan zijn er nog de externe systemen, die net als je eigen systeem regelmatig nieuwe releases heeft. Certificaten voor licenties en beveiliging zoals SSL kunnen verlopen. Al deze updates, upgrades en wijzigingen kunnen van invloed zijn op je systeem, zelfs als je zelf geen wijzigingen doorvoert.

Naast het platform wat in beweging is wordt er gebruik gemaakt van het product. Gebruikers voeren hun informatie in wat vervolgens in de database terecht komt. Deze staat weer met externe systemen gekoppeld waardoor er dus constant informatie door het systeem vloeit, zoals bloed door het lichaam. Door alle wijzigingen binnen de verschillende systemen kan het dan voorkomen dat er informatie het systeem binnenkomt in een verkeerd formaat. Al deze invloeden kunnen de software van slag brengen.

Garantie

Last but not least zijn er ook nog de eigen wijzigingen. Wanneer je binnen de software wijzigingen maakt bestaat er de kans dat het invloed kan hebben op andere onderdelen binnen de software. Soms is het iets kleins waarvan je dit niet verwacht had, aan de andere kant kun je niet voor iedere kleine wijziging een volledige impact analyse maken. Om deze reden is goede testing van belang en een gedegen garantieperiode na acceptatie van de software. Een normale termijn voor software is drie maanden, waarbij de klant genoeg tijd heeft om fouten te kunnen ontdekken.

Is de garantie verlopen, dan is ook de oorzaak van het niet functioneren van de software lastig te achterhalen. Voor de klant is dit vaak een simpel feit; dit had moeten werken! In werkelijkheid ligt het dus een stuk genuanceerder en kun je na een bepaalde periode niet met zekerheid meer zeggen wat de oorzaak is. Eerst moet je deze oorzaak achterhalen om het probleem te vinden, daarna moet je de issue nog oplossen. Achteraf oplossen kost dus altijd meer tijd dan tijdens de testperiode.

Organisch

Hoe gek het ook klinkt, software voldoet aan dezelfde wetten als de organische wereld. Je hebt een sterke stam nodig. Hoe groter de stam, hoe meer takken eraan zitten en hoe meer water er nodig is. Hoe meer bladeren des te groter de kans dat er af en toe eentje vanaf valt. Geef je de plant zelf geen water, dan blijft deze nog wel even staan maar kun je deze uiteindelijk weggooien. Zo snel als de plant zal het bij software niet gaan, maar de principes zijn gelijk.

Wanneer je software aanschaft en gebruikt is het je eigen verantwoordelijkheid om deze goed te onderhouden. Uiteraard doe je dit in overleg met je leverancier die je hier van goede hulp kan voorzien. Bottom line blijft echter dat je zelf de eigenaar van de software bent. Na de overdracht van je huis of auto is het jouw verantwoordelijkheid. Werkt iets niet, heb je daar een garantieperiode voor. Wordt er een fout geconstateerd binnen de garantieperiode dan is het de verantwoordelijkheid van de leverancier. Is dit buiten de garantieperiode dan is het voor eigen kosten.

Gezamenlijk belang

Een groot verschil van software ontwikkeling t.o.v. een huis en auto is echter de constante doorontwikkeling en nauwe samenwerking met de leverancier. Bij de bouwer en de dealer wordt het klantcontact minder naarmate de tijd verstrijkt. De software ontwikkelaar blijft echter regelmatig in contact met de klant waardoor er een andere relatie ontstaat. Er is in grote mate een gezamenlijk belang, waarbij een partnership wordt verwacht.

Het mooie van het gezamenlijk belang is dat er vanuit de samenwerking een kruisbestuiving ontstaat m.b.t. de doorontwikkeling van het product. Er wordt constant meegedacht over verbeteringen en nieuwe technieken, waardoor er een nog beter product kan worden neergezet. Dit betekent echter nog steeds niet dat ook de onderhoudskosten van het product gezamenlijk verdeeld kunnen worden. Bij grote partijen kun je dit bijvoorbeeld per jaar afkopen voor 20% van de totale ontwikkelsom. Hoe dan ook zal het onderhoud ergens betaald moeten worden, net als bij andere producten.

Conclusie

Software ontwikkeling is een geweldig vak om mee bezig te zijn. We zijn trots op de producten die we bouwen en voorzien onze klanten van de nieuwste technologie. Hoewel software uit enen en nullen bestaat, is dit nog één van de weinige ambachten die wordt uitgevoerd; het is mensenwerk. Zorg daarom voor goede afspraken over garantie, regelmatig onderhoud en accepteer dat de software constant in beweging is. Als je dit doet lijkt het net alsof de software niet roest...

Software roest niet Aantal keer bekeken: 2.242