Ten tijde van selectie en implementatie van software is vaak nog wel enigszins te overzien wat de software kan en welke behoeften er zijn. De kunst is echter om op voorhand al vooruit te kijken. In vergelijking met de op het oog belangrijke(re) zaken als de kosten en de aansprakelijkheid, zien wij in de praktijk dat het onderhoud en beheer van software minder prioriteit krijgt. Software is tegenwoordig echter niet langer statisch, maar is te beschouwen als een levend product. Software heeft daarom beheer en onderhoud nodig. Het is dan ook onterecht dat deze onderwerpen in de regel weinig tot geen prioriteit krijgen, nu juist het adequaat regelen van deze zaken van groot belang is voor de continuïteit en tevredenheid op de langere termijn. In dit blog ga ik in op het beheer en onderhoud van software.
Beheer en onderhoud
Op het moment dat software in gebruik wordt genomen is het in de praktijk helaas meer regel dan uitzondering dat dit niet geheel zonder gebreken gaat. Gebruikers constateren bugs en onvolkomenheden en het voortschrijdend inzicht van de opdrachtgever vraagt om aanpassingen en verbeteringen. Om te garanderen dat software correct blijft functioneren is een mix van services noodzakelijk: beheer en onderhoud.
Wat is beheer?
Het beheren van software omvat allerhande werkzaamheden teneinde de ontwikkelde software in gebruik te nemen en in stand te houden. Van oudsher wordt het beheer van software onderverdeeld in een driedeling. In essentie zijn de navolgende drie deelgebieden te onderscheiden: functioneel beheer, applicatiebeheer en technisch beheer. Hieronder worden de typen beheer schematisch weergegeven.
Beheersvorm | Inhoud |
Functioneel beheer | Omvat alle taken die nodig zijn in het kader van het gebruik van de software en de informatievoorziening daaromtrent. |
Applicatiebeheer | Omvat het in stand houden, onderhouden en vernieuwen van de softwareapplicatie. Dit leidt vaak tot onderhoud. |
Technisch beheer | Omvat alle taken die nodig zijn voor het installeren, accepteren, operationeel maken en houden van de software en aanliggende IT-infrastructuur. |
Deze driedeling legt eveneens de basis voor een verdeling van de functies tussen de leverancier en afnemer. De rol van het functioneel beheer wordt in de regel bij de afnemer neergelegd, terwijl het applicatie- en technisch beheer vaak tot het takenpakket van de leverancier behoort.
Het maken van de juiste afspraken over het beheer van de software is noodzakelijk op zowel de korte als de lange termijn.
- Op de korte termijn is die noodzakelijkheid gelegen in een soepele implementatie en ingebruikname, waarbij (gebruikers)problemen vroegtijdig getackeld kunnen worden en bugs tijdig worden voorkomen of verholpen.
- Op de lange termijn zorgt adequaat beheer van de software ervoor prestaties en beschikbaarheid van de geboden functionaliteiten op peil te houden, het gebruik van de applicatie te monitoren en daarop actie te ondernemen, en voor het lanceren van nieuwe versies en updates.
Wat is onderhoud?
Onderhoud is kortgezegd het wijzigen of aanvullen van de bestaande software. Onderhoud vindt zowel ad-hoc als planmatig plaats. Onder ad-hoc-onderhoud wordt het op zo kort mogelijke termijn oplossen van fouten verstaan, bijvoorbeeld omwille van (dreigend) continuïteitsverlies. Onder het planmatig onderhoud vallen alle overige soorten van onderhoud die releasematig worden uitgevoerd. Onderhoud is in feite een onderdeel van applicatiebeheer. In de (contracts)praktijk wordt veelal aangesloten bij een traditionele vierdeling in onderhoudsvormen: correctief onderhoud, preventief onderhoud, adaptief en perfectief onderhoud. In onderstaand schema worden de onderhoudssoorten weergegeven.
Onderhoudsvorm | Inhoud |
Correctief onderhoud | Het herstellen van geconstateerde fouten in de software. |
Preventief onderhoud | Het tijdig nemen van maatregelen om daadwerkelijke verstoringen te voorkomen. |
Adaptief onderhoud | Het ontwikkelen van nieuwe functionaliteiten of nieuwe versies. |
Perfectief onderhoud | Het bijwerken van bestaande functionaliteiten om de prestaties te verbeteren. |
Het verdient echter het aanbeveling de term ‘onderhoud’ helder in de (onderhouds)overeenkomst te definiëren. Zonder duiding aan dit begrip te geven ontstaat vaak discussie welk type onderhoud bedoeld wordt en waar het ‘onderhouden’ van de software ophoudt en overgaat in ‘ontwikkeling’.
Let wel, enkel dergelijke contractuele onderhoudsafspraken bieden voor een afnemer weinig waarborgen. Indien de continuïteit van de software voor de afnemer cruciaal is, dan doet hij er goed aan om duidelijke service levels met de leverancier overeen te komen. Deze service levels geven een nadere invulling aan de (kwaliteit van de) te leveren diensten. Het verdient aanbeveling ook te definiëren waar dat onderhoud dan aan moet voldoen. Een enkele afspraak dat de software wordt doorontwikkeld zegt immers niet zo veel. Iedere nieuwe versie die wordt opgeleverd voldoet reeds aan die abstracte afspraak. Wat je als afnemer wilt is dat bepaalde wetgeving of koppelingen blijvend ondersteund worden. Dergelijke concrete (onderhouds)afspraken worden vastgelegd in een zogenoemde Service Level Agreement (SLA).
Maar de software werkt nu toch goed?
Een gevleugelde uitspraak van afnemers. Echter, behaalde resultaten in het verleden bieden nu eenmaal geen garanties voor de toekomst. Net als een auto heeft ook software onderhoud nodig om soepel te blijven werken. En ja, onderhoud kost geld. Echter, op de lange termijn is onderhoud veelal voordeliger en verlaagt het daarnaast een risico op continuïteitsverlies of andersoortige problemen aanzienlijk. Ook ten aanzien van software is het devies: beter voorkomen dan genezen.
Tot slot
De levensduur van (maatwerk)software is in de regel kort. Bovendien gaat de technologische ontwikkeling in een hoger tempo dan ooit tevoren. Onder die omstandigheden is slechts investeren in de ontwikkeling van software niet langer voldoende. Om te zorgen dat software op de juiste manier blijft werken en ‘meegroeit’ met de stand van de techniek is adequaat beheer en onderhoud vereist. Het verdient dan ook aanbeveling om altijd een onderhoudsbudget op te nemen voor de technische levensduur van de software. In combinatie met de juiste afspraken omtrent beheer en onderhoud worden de bruikbaarheid, betrouwbaarheid en continuïteit van de software geborgd.
Leest u vooral ook de andere onderwerpen uit onze serie IT-contracten en blijf het geheel in samenhang bekijken.