“De recente systeemstoring bij de luchtverkeersleiding in Londen toont opnieuw aan hoe belangrijk kwaliteitszorg is bij de ontwikkeling en het onderhoud van software”, schrijft Maurice Groeneveld. “Risico-gebaseerd testen biedt kansen om de kwaliteit en de effectiviteit van softwareontwikkeling en -integratie te verbeteren. Omdat er in Europa, in tegenstelling tot de VS, geen afrekencultuur is, verlopen de ontwikkelprocessen hier helaas nog verre van optimaal.”
Software is van cruciaal belang voor het functioneren van vrijwel alle sectoren in de huidige maatschappij. Ondanks het grote economische belang wordt veel software nog steeds ontwikkeld zonder rekening te houden met kwaliteitszorg en toekomstig onderhoud. Een systematische en gestructureerde methodologie ontbreekt veelal. Bedrijfskritische applicaties worden in Nederland vaak gewoon in gebruik genomen zonder rekening te houden met het noodzakelijke toekomstige onderhoud. Dit in tegenstelling tot andere branches, zoals de auto-industrie, die er bij het ontwerp van nieuwe producten al rekening mee houden dat onderhoud zo efficiënt mogelijk moet worden uitgevoerd.
Falend
Ontwikkelen, testen en in productie nemen van software gebeurt veelal op eilandjes binnen organisaties. Het is dan ook niet vreemd dat 60 tot 70 procent van de automatiseringsprojecten in Nederland mislukt of niet aan de doelstellingen voldoet. Onderzoek van Forrester Research in opdracht van Compuware naar de ervaringen van it-kaderleden en kaderleden van bedrijven belast met de levering van bedrijfstoepassingen bevestigt dat.
Uit dit onderzoek onder 125 it-managers van grote bedrijven in de VS en Europa blijkt dat 44 procent in de laatste drie jaar te maken had met een falende toepassing. Daardoor leed 64 procent direct materieel inkomensverlies. 75 procent stelt dat de organisatie formele processen heeft ingevoerd om de kwaliteit van de toepassing te verzekeren, maar 69 procent geeft aan dat delen van de organisatie er niet in slagen deze processen consequent te volgen. Het onderzoek toont bovendien aan dat de meeste firma’s die te maken krijgen met een falende toepassing en die kwaliteitsprocessen ingevoerd hebben, deze processen niet consequent volgen.
De verklaring kan liggen in het feit dat automatiseerders iedere keer op zoek gaan naar nieuw maatwerk en tijdens de ontwerpfase vergeten de kwaliteit veilig te stellen. Processen voor de ontwikkeling van nieuwe software worden nauwelijks geautomatiseerd en gestandaardiseerd. Tussentijdse controles ontbreken en fouten stapelen zich op. Het herstellen van fouten in een productieomgeving kan vijf tot honderd keer zo duur worden als tijdens de ontwikkeling van een applicatie. Organisaties die hiermee rekening houden, kunnen dus grote besparingen realiseren.
Grote beurt
100 procent foutvrije software is onmogelijk, maar er zijn voldoende middelen om fatale fouten te voorkomen en een kwaliteitsniveau te garanderen dat de meeste risico’s wegneemt. In een goede testomgeving worden ontwikkelaars vanaf de start van een ontwikkeltraject gedwongen om te werken volgens een vastgestelde methodologie. Met risico-gebaseerd testen (risk based testing) bepaalt een organisatie op systematische wijze waar de meeste risico’s liggen. Hulpmiddelen zorgen ervoor dat software automatisch van een risicoprofiel wordt voorzien. Daarmee kunnen onafhankelijke partijen bij een audit van de software bepalen of de ingebruikname van een applicatie risico’s met zich meebrengt en welke effecten die in een productieomgeving kunnen hebben. Dergelijke risicoprofielen vereenvoudigen het maken van een kosten-batenafweging, zodat iedere organisatie op basis van zakelijke afwegingen kan bepalen aan welk kwaliteitsniveau haar software moet voldoen.
Dergelijke hulpmiddelen ondersteunen ook de ontwikkeling en invoering van een doordacht model voor it-beleid, waarmee een organisatie een automatische werkstroom kan afdwingen, zodat een geïntegreerd ontwikkel- en testproces ontstaat. Er zijn veel tools op de markt die ondersteuning bieden aan ontwikkelaars, maar vaak richten deze tools zich eenzijdig op ontwikkelen of testen. Wat hiervan het gevolg is laat zich raden: pas aan het eind van een ontwikkeltraject wordt getest of een applicatie voldoet aan de doelstellingen. Door kwaliteitszorg – van ontwikkelen via testen tot ingebruikname – samen te brengen in een geïntegreerde omgeving op basis van risico-gebaseerd testen is de kwaliteit van software(ontwikkeling) drastisch te verhogen.
De tendens in Europa om meer open broncode-software te gebruiken en om uit te besteden naar lagelonenlanden leidt ertoe dat kwaliteitszorg nog belangrijker wordt. Het voordeel van open broncode-toepassingen – standaardisatie op basis van goedkope bouwstenen – kan teniet worden gedaan als organisaties niet vooraf rekening houden met toekomstig onderhoud. Doordat open broncode-applicaties vaak worden samengesteld uit componenten van diverse leveranciers, wordt het moeilijk om in de toekomst één partij aansprakelijk te stellen voor gebreken. Onderhoud en eventuele herstelwerkzaamheden zullen met de huidige ongestructureerde werkwijze grote investeringen vergen.
Software vraagt voortdurend om onderhoud en reparatie. Hulpprogramma’s voor de ontwikkeling van software zouden gebruik moeten maken van een systematische methodologie, zodat je bij een ‘grote beurt’ simpel kunt uitlezen wat er aan de hand is en wat er gedaan moet worden om problemen op te lossen. Wat dat betreft zou de software-industrie een voorbeeld kunnen nemen aan de auto-industrie.< BR>
Maurice Groeneveld, vice president Compuware Noord Europa