De recente systeemstoring bij de luchtverkeersleiding in Londen toont opnieuw aan hoe belangrijk kwaliteitszorg is bij de ontwikkeling en het onderhoud van software. Risk based testing biedt kansen om de kwaliteit en de effectiviteit van softwareontwikkeling en integratie te verbeteren. Omdat er in Europa (dus ook in Nederland) in tegenstelling tot de Verenigde Staten 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. Vaak ontbreekt een systematische en gestructureerde methodologie. Bedrijfskritische toepassingen worden in Nederland vaak in gebruik genomen zonder dat men rekening houdt met het noodzakelijke, toekomstige onderhoud. Dit in tegenstelling tot andere branches, zoals de auto-industrie, waar er bij het ontwerp van nieuwe producten al rekening mee wordt gehouden dat onderhoud zo efficiënt mogelijk moet worden uitgevoerd.
Kwaliteitsbewaking verre van optimaal
Het ontwikkelen, testen en in productie nemen van software gebeurt binnen organisaties veelal op eilandjes. Het is dan ook niet vreemd dat zestig tot zeventig procent van de automatiseringsprojecten in Nederland mislukt, of niet aan de eerder geformuleerde doelstellingen voldoet. Dit wordt bevestigd door onderzoek van Forrester Research, in opdracht van Compuware, naar de ervaringen van it-kaderleden en kaderleden van bedrijven belast met de levering van bedrijfstoepassingen.
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. 64 procent leed direct materieel inkomensverlies door de falende toepassing. 75 procent stelt weliswaar dat hun organisatie processen heeft ingevoerd om de kwaliteit van de toepassing te verzekeren, maar 69 procent gaf aan dat sommige delen of het grootste deel van de organisatie er niet in slagen deze processen consequent op te volgen. Het onderzoek toonde bovendien aan dat de meeste bedrijven die te maken kregen met een falende toepassing en kwaliteitsprocessen ingevoerd hebben, deze processen niet consequent opvolgen.
Een verklaring kan zijn 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 foutenherstel tijdens de ontwikkeling van een toepassing. Organisaties die hiermee rekening houden, kunnen dus grote besparingen realiseren.
Risk based testing
Honderd 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 het begin van een ontwikkeltraject gedwongen om te werken volgens een vastgestelde methodologie. Met Risk based testing bepaalt een organisatie op systematische wijze waar de meeste risico’s liggen. Hulpmiddelen voor risk based testing, zoals CARS (Compuware Application Reliability Solution), zorgen ervoor dat software automatisch van een risicoprofiel wordt voorzien, waarmee onafhankelijke partijen bij een controle van de software kunnen bepalen of de ingebruikname van een toepassing risico’s met zich meebrengt en welke effecten die risico’s 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.
Deze hulpmiddelen ondersteunen ook de ontwikkeling en invoering van een doordacht model voor it-governance, waarmee een organisatie een automatische workflow 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 op testen. Het gevolg hiervan laat zich raden: pas aan het eind van een ontwikkeltraject wordt getest of een toepassing voldoet aan de doelstellingen. Door kwaliteitszorg – van ontwikkelen en testen tot ingebruikname – samen te brengen in een geïntegreerde omgeving op basis van risk based testing kan de kwaliteit van software(ontwikkeling) drastisch worden verhoogd.
De tendens in Europa om meer open source software te gebruiken en om uit te besteden naar lage-lonenlanden leidt ertoe dat kwaliteitszorg nog belangrijker wordt. Het voordeel van open-source-toepassingen – standaardisering op basis van goedkope bouwstenen – kan teniet worden gedaan als organisaties vooraf geen rekening houden met toekomstig onderhoud aan de toepassing. Doordat open-source-toepassingen 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 men bij een ‘grote beurt’ simpel kan 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 mooi voorbeeld kunnen nemen aan de auto-industrie.< BR>
Maurice Groeneveld, vice president Compuware Noord-Europa