KWALITEITSCONTROLE VAN SOFTWARE
I
n dit artikel wordt nader ingegaan op de plaats en de te volgen werkwijze van de Fagan Inspection Methode bij het ontwikkelen van informatiesystemen.
Communicatie is zo dicht mogelijk langs elkaar heen praten. Dit zouden we kunnen uitbreiden met langs elkaar heen denken en schrijven. Met dit laatste komen we vanzelf op het stiefkindje van vele automatiseringsprojecten en -afdelingen: de documentatie. Niet zelden wordt besloten bestaande informatiesystemen opnieuw te ontwikkelen omdat men er niet meer uitkomt. Zo 'n situatie ontstaat al snel wanneer een project opgeleverd wordt, enige jaren naar tevredenheid functioneert, enkele forse wijzigingen ondergaat en last but not least, de sleutelposities overgenomen worden door medewerkers die niet betrokken zijn geweest bij de realisatie. Na nog een periode van aanpassingen, wordt de geldigheid van de bewering "De beste documentatie is de sourcelisting" steeds groter. Maar het valt niet mee om vanaf detailinformatie inzicht over het informatiesysteem te verkrijgen, zeker wanneer de doelgroep welke deze informatie zoekt niet deskundig genoeg is om de sourcelistings te doorgronden, zoals informatieanalisten en systeemontwerpers. Er is geen organisatie die dit probleem niet kent. Een ding hebben die organisatie echter goed begrepen: het achteraf opwaarderen van documentatie van een informatiesysteem is peperduur en loont in de meeste gevallen nauwelijks. Met andere woorden, documentatie moet opgebouwd en onderhouden worden tijdens de realisatie van het informatiesysteem. In de meeste gevallen wordt deze documentatie ook gemaakt. Maar wat is de kwaliteit van deze documentatie? Wat is kwaliteit eigenlijk en wie bepaalt deze en hoe wordt deze kwaliteit gecontroleerd? Quality managers hebben op deze vragen uiteraard een antwoord geformuleerd. In vele gevallen komen in het antwoord de woorden "normen" en "controle" voor. Eerst duidelijke normen stellen en de naleving van deze normen afdwingen. De naleving van de normen wordt gecontroleerd door het houden van audits, reviews en inspecties. De naleving van de normen wordt bereikt door het in vooruitzicht stellen van disciplinaire maatregelen. In de praktijk worden disciplinaire maatregelen tegen overtreders van de normen niet opgelegd. Men komt niet veel verder dan: "Gaat heen en zondig niet weer". De zondaars hebben overigens veel terechte argumenten voor hun afwijkend gedrag. Zo beroept de een zich op de ontoereikendheid en het achterhaald zijn van de normen, de ander noemt het feit dat zijn documentatie zonder problemen door de navolgende fase in het realisatietraject geaccepteerd is ("Geen enkele klacht ontvangen. Ze waren zelfs blij nu eindelijk iets op papier te hebben"). Weer een ander wijst op het omslachtige, bureaucratische en niet bij zijn functie passende karakter van de papierwinkel. Veelal hebben de zondaars genoeg krediet opgebouwd bij hun managers door zich met veel toewijding en volharding in te zetten voor de realisatie van het informatiesysteem. En in hoeverre is het fout om op de korte termijn resultaat te behalen door het niet zo nauw te nemen met allerlei formele procedures. De kans dat een medewerker op een sleutelpositie in de realisatie, naar elders vertrekt is niet denkbeeldig wanneer hij lastig gevallen wordt door deze zogenaamde "randverschijnselen". En zo langzamerhand neemt iedereen in het project een sleutelpositie in; niemand kan gemist worden. Het gevolg is dat er per saldo niets verandert aan het nivo van de documentatie. Gespecialiseerde adviesbureaus op het gebied van de kwaliteitszorg van automatiseringsprojecten zijn zich door schade en schande bewust geworden dat hun methoden in de praktijk weinig effect hebben. "Uiteraard kun je je klant zeggen dat kwaliteitszorg een moeilijk proces is en van onderop en bovenaf volledig ondersteund moet worden. En natuurlijk valt in de praktijk hierop altijd iets aan te merken, is het niet de basis dan is het wel het management dat niet "echt" wil. Die redenering wordt snel door de onwetende klant overgenomen. Impliciet verwijt je de klant daarmee laksheid. Het is allemaal aan hem te wijten dat de kwaliteitsverbeteringen niet van de grond komen" zo verzucht een quality consultant van zo'n gespecialiseerd bureau. Langzamerhand begint echter het besef door te dringen dat het de methode is die verbetering behoeft. Het dwingend opleggen van normen, het controleren en sanctioneren van overtredingen werkt niet. Ook het uitvoeren van audits leidt vaak niet tot verbeteringen. Audits worden uitgevoerd in opdracht van het hoger management, leiden tot een rapportage aan het hoger management en gaan in feite over het gevoerde management door onderliggende niveaus. Het aantal aanbevelingen dat zo'n audit oplevert is
aanzienlijk maar in de praktijk worden deze aanbevelingen matig opgevolgd. Vooral wanneer de audit wordt uitgevoerd door de eigen quality manager zullen maar enkele aanbevelingen ter hand genomen worden. Quality managers noemen zelf een percentage van 5 tot 10 procent van hun aanbevelingen waar geld en middelen voor worden vrijgemaakt op een zodanige reële basis dat enig effect verwacht mag worden. In principe speelt hetzelfde probleem een nivo hoger. Het hogere management hoort dezelfde soort argumenten als het lagere management hoort van haar ondergeschikten waarvan hierboven al enkele karakteristieken zijn gegeven. Het belangrijkste probleem blijft het functioneren van de mens in de organisatie. Waar is hij gevoelig voor, wat wordt van hem verwacht en waar kan hij redelijkerwijze aan voldoen. Het sleutelwoord is: professionaliteit. Iedereen wil het goed doen, doen wat van hem gevraagd wordt en als het kan iedere dag iets bijleren. Iedereen wordt "hels" wanneer achteraf eisen geformuleerd worden waar hij geen zeggenschap in heeft gehad of wanneer achteraf interpretaties van eisen gegeven worden welke op willekeur lijken. Neem de werkende mens serieus, lijkt het devies.
Een methode die in de praktijk al jaren (Amerikaanse) vruchten afwerpt is de inspectiemethode van Fagan. Deze methode ontwijkt bovenstaande klippen door een combinatie van confrontatie, directe feed back en een flink portie psychologie. In Nederland vindt de methode sinds kort aanhang en wordt alleen nog door gespecialiseerde bureaus gepraktiseerd. "In feite geheel ten onrechte. Wanneer er een methode is die snel door iedereen te leren is en direct resultaat oplevert is het de Fagan Inspection Methode wel" meldt de heer C.M. Dekker, werkzaam bij een quality consultancy bureau.
Fagan's Inspection Method
M
ichael E. Fagan (spreek uit: Feeken) was quality control engineer bij IBM en leidde zijn methode af uit de basisideeën van Dr. W. Edwards Deming en Dr. Juran. De methode bestaat al sinds 1970 en wordt met veel succes toegepast. Een van de meest tot de verbeelding sprekende successen is het behaalde resultaat in het Amerikaanse Space Shuttle project. De Space Shuttle software vertoonde gedurende zes vluchten in 1985 geen enkele fout. De software beslaat bij benadering 500.000 coderegels en wordt tussen de vluchten in aangepast om tegemoet te komen aan (ook daar!) aanvullende wensen (Quality Progress, sept. '86; ACM Software Engineering Notes, 1988; IEEE software, 1988). Het eerste gebruik van de methode bij IBM in een project voor het schrijven van software voor een operating systeem (500.000 coderegels) reduceerde het aantal bugs met een factor honderd. Uit ervaring met projecten van deze omvang verwachte IBM minimaal 800 bugs; er werden er maar 8 gevonden. Tom Gilb heeft enkele bevindingen over de Fagan Inspection Methode verzameld welke wij u gaarne voorhouden. de Fagan Inspection Methode: • vermindert het aantal fouten met een factor 10 tot 100, • vermindert de onderhoudskosten met een factor 10 tot 30, • geeft een betrouwbare schatting van het aantal fouten dat tijdens het testen gevonden wordt, • onderkent problemen in een zo vroeg mogelijk stadium. Tot problemen kunnen ook gerekend worden, onrealistische budgetten en oplevertermijnen. • "kost" 15% van het automatiseringsbudget. "Nee, in Nederland hebben we nog geen gegevens kunnen verzamelen. Daarvoor wordt de methode nog te kort gebruikt. Wel zijn de eerste resultaten bemoedigend. Opvallend is dat standaards die jaren ongewijzigd in de kast lagen met versienummer 1.0 na de start van de Fagan Inspection Methode binnen de kortste keren versienummer 18.0 dragen en veel gedetailleerder geworden zijn", aldus de heer Dekker. Dit wijst erop dat de standaards het door de quality managers zo vurig verlangde predicaat "best working
practice" hebben gekregen. Met andere woorden, de standaards worden zo nauwgezet toegepast dat zij een bron van kennis en beschreven ervaringen worden, waar iedereen zijn voordeel meedoet. Een sleutel tot het succes van de Fagan Inspection Methode is dat het quality control principe "meten is weten" toegepast wordt op het quality control proces zelf. Wat zijn de resultaten van de inspectie nu. Wat zijn ze wanneer het inspectieproces iets wordt aangepast, bijvoorbeeld, de inspectie wordt uitgevoerd met 8 man in plaats van de gebruikelijke 3. Wanneer het resultaat per geïnvesteerd uur groter is dan moeten de inspecties in het vervolg worden uitgevoerd met 8 man. Wat gebeurt er wanneer de inspectietijd vergroot wordt, wat als het aantal te inspecteren pagina's of coderegels wordt teruggebracht. Juist dit spelen met parameters maakt de Fagan Inspection Methode krachtig, situationeel bepaald en dus praktisch. Dekker: "Uiteraard zijn er een aantal defaultwaarden waarmee je het inspectieproces kunt ingaan. Dan scoor je altijd goed. Door de parameters te veranderen kan je echter beduidend hoger uitkomen". Ook lager dus, mogen we concluderen. Sinds kort propageert Tom Gilb een extra fase in het inspectieproces waarin de deelnemers aan het inspectieproces gevraagd wordt tekortkomingen te relateren aan het kwaliteitssysteem van de afdeling. Na een paar keer proberen vond hij een optimale modus welke het gehele inspectieproces ten goede kwam. Bij de Fagan Inspection Methode is de rol van de moderator, in het nederlands het beste te vertalen met inspectieleider, werkelijk van belang. De andere participanten in het inspectieproces kunnen de uitvoering van het inspectieproces niet beïnvloeden. Bij de navolgende beschrijving van de Fagan Inspection Methode zal de rol van de moderator nader worden aangegeven. Entry In de entry fase bepaalt de moderator welk document geïnspecteerd moet worden, hoe het geïnspecteerd moet worden, welke parameters gelden voor de inspectie en welke speciale opdrachten verstrekt kunnen worden. Criteria voor de selectie van het document zijn: de beschikbaarheid van de auteur en inspectieleden, de kwaliteit van het document, de beschikbaarheid van standaards, checklisten en "higher level" documenten. De higher level documenten zijn die documenten die de grenzen van het te inspecteren document hebben bepaald. Zo zal de definitiestudie de contouren van het basisontwerp bepalen en bepaalt de programmaspecificatie de broncode. "Lower level" documenten zijn uiteraard de documenten die in het navolgende realisatietraject gemaakt moeten worden. Het komt nogal eens voor dat er geen standaards zijn. In dat geval dient de moderator enkele conceptstandaards te maken. Tom Gilb gaat er van uit dat de moderator binnen enkele uren een conceptstandaard kan (laten) schrijven. Zo'n conceptstandaard zal circa 70 tot 80 procent van de uiteindelijke standaard dekken. Zo'n standaard zal in veel gevallen een algemeen karakter dragen en na afloop van de inspectie een bron van kritiek zijn. Maar dat is niet erg en heeft zelfs voordelen. Zo levert deze vorm van werken direct beproefde en geteste standaards op, iets waar de meeste quality managers alleen maar van kunnen dromen. Wanneer de moderator oordeelt dat de inputkwaliteit van het te inspecteren document goed is en aan alle andere door hem gesteld criteria is voldaan, selecteert hij de inspectieleden. Voorwaarde is dat de auteur van een document altijd meedoet in het inspectieproces en dus zelf zijn eigen document inspecteert. Hierna kan begonnen worden met de kick off. Kick off De kick off is een korte vergadering van 5 tot 10 minuten waarin het materiaal overgedragen wordt aan de inspectieleden. Dit materiaal is geheel voorbereid door de moderator waarbij deze geprobeerd heeft de omvang van het materiaal zo beperkt mogelijk te houden. Dus niet: "Hier is het Definitiestudierapport, het Functioneel Ontwerp Rapport ons (dikke) Handboek Systeemontwikkeling en zoek nu maar de fouten". De moderator heeft de standaards en ieder deeltje uit het Definitiestudierapport welke van toepassing zijn op het te inspecteren document gekopieerd. Ieder inspectielid kan zich ten volle inzetten voor de inspectie zelf en verliest geen tijd door het zoeken en grasduinen in dikke stapels rapporten en handboeken. Het is de ervaring van de moderator die aangeeft wat de omvang van al het materiaal moet zijn. In de meeste gevallen zal die omvang beperkt blijven tot een tiental pagina's of een enkel hoofdstuk of een enkel onderwerp uit het totale document wat de auteur ter beschikking heeft gesteld. Met andere woorden, een
geconcentreerde inspectie op een deel levert meer gevonden fouten op dan een globale inspectie van het geheel. De oorspronkelijke Amerikaanse versie van de kick off wordt gekenmerkt door het formuleren van doelstellingen welke een bepaald competitie-element in zich hebben. Zo in de trant van: "Het vorige inspectieteam vond maar 10 fouten, met dit geweldige team moet het lukken om 12 fouten te vinden". De Nederlandse cultuur past niet zo in die Amerikaanse traditie.
Preparation In deze fase is ieder inspectielid bezig met de inspectie. Op welke wijze de inspectie gedaan wordt is afhankelijk van de persoon. De meeste beginnen met het lezen van het document zonder nog kanttekeningen en/of opmerkingen te plaatsen. Er zijn ook personen die direct iedere zin van het document inspecteren. Gewoonlijk blijkt dat na ongeveer een half uur de eerste fouten worden gevonden. De maximale tijd dat een persoon bezig kan zijn met een inspectie is 2 uur. Belangrijke vraag bij het inspecteren is, wat is nu eigenlijk fout. Het antwoord is simpel, iets is fout wanneer het inspectielid iets als zodanig kwalificeert. Dit is subjectief. Voor een deel kan dekking gevonden worden voor het aanmerken van een fout als een bepaling in het document in strijd is met de standaards of de grenzen van de "higher level" documents te buiten gaat. Het primaat ligt bij de lezer van het document. Wanneer deze iets onduidelijk, strijdig, onbegrijpelijk of zinloos vindt, zijn dit fouten. De Fagan Inspection Methode stelt terecht dat het document zelf zo goed moet zijn dat niemand in de navolgende ontwikkelingsfase op het verkeerde been wordt gezet. Geen enkele organisatie kent de luxe dat de auteur van het document continue beschikbaar is om tekst en uitleg te verschaffen over wat er feitelijk staat in het document en hoe het document gelezen moet worden of bedoeld is. Derhalve is dit uitgangspunt een zeer pragmatische. Bevindingen worden met pen op het document geschreven zodanig dat het inspectielid zich kan herinneren wat zijn opmerking inhield. Defect logging meeting In de defect logging meeting komen alle deelnemers van de inspectie bij elkaar en formuleren hun bevindingen. Deze bevindingen worden door de moderator opgeschreven. Van eminent belang is dat het formuleren van de bevindingen één richting opgaat. Wanneer dit eenrichtingsverkeer niet gewaarborgd wordt ontstaat snel een ruzieachtige sfeer waarin de een de geldigheid van een bevinding van een ander bestrijdt. Gegeven het uitgangspunt dat de lezer, in casu de uitvoerder van de volgende fase, als de klant beschouwd moet worden, moet iedere opmerking als een tekortkoming beoordeeld worden. Er is een uitzondering op de gouden regel van het eenrichtingsverkeer, en dat is wanneer de auteur van het document een bevinding niet helemaal begrijpt. In dit geval mag hij enige verduidelijking vragen. Het verrassende van deze meeting is dat de inspectieleden door het aanhoren van de bevindingen van hun collegainspectieleden op nieuwe bevindingen opmerkzaam worden gemaakt, die zij ter plekke op hun geïnspecteerde document kunnen aantekenen. In de meeste gevallen wordt het totaal aantal gevonden tekortkomingen vergroot door de meeting. Was dit niet het geval dan kon ieder inspectielid zijn lijstje bevindingen simpelweg inleveren. Met dit laatste gaat overigens wel de directe leerervaring van de auteur verloren. Het blijkt namelijk dat de auteur door de directe terugkoppeling buitengewoon veel leert. Niet zelden zal blijken dat de auteur door het aanhoren van
alle bevindingen functionele fouten ontdekt. Iedere bevinding wordt door de moderator geclassificeerd volgens: • D = defect, • M = major defect, • S = super major defect, • ? = vraagt om uitleg. De eerste drie classificaties worden bepaald door de gevolgen welke de fout heeft in het navolgende realisatietraject. Een bevinding met een classificatie S laat het gehele project mislukken: bijvoorbeeld de machinecapaciteit is door een specificatiefout een factor 100 te klein bemeten. Theoretisch kan over de classificatie heel moeilijk worden gedaan, in de praktijk valt er echter goed mee te werken. De uitvoeringskosten van de Fagan Inspection Methode bedragen voor ieder inspectielid zo'n 3 uur. Dat wil zeggen dat ieder inspectielid elders voor meer dan 3 uur besparing moet realiseren wil zijn inzet, afgezien van allerhande secundaire doelstellingen, verantwoord zijn. De classificatie van de gevonden fouten is hiervoor een maat. Wanneer een fout al ontdekt wordt in het navolgende realisatietraject zullen de besparingen uiteraard kleiner zijn. Het ontdekken van één functionele fout tijdens de implementatiefase verdient tientallen inspecties terug. Causal analysis meeting Na afloop van de defect logging meeting begint de causal analysis meeting. Hierin krijgt ieder inspectielid de kans om met de schoenen op tafel de resultaten van de inspectie en de bevindingen te relateren naar problemen in het kwaliteitssysteem; met andere woorden, welke bron genereert de meeste fouten. In principe mag alles ter sprake komen, zoals: de gebrekkige opleiding ten aanzien van data modellering, onnauwkeurig werkende typistes, storende interupts van collega's, noisy rooms, slordige standaards. Deze signalen worden doorgegeven aan de quality manager van de afdeling. Van hem wordt verwacht dat hij de geldigheid van die signalen natrekt. De Causal Analysis Meeting duurt niet langer dan 15 minuten. Duurt het langer dan vervalt het team al snel in het bespreken van oplossingen, en dat is iets wat overgelaten moet worden aan de quality manager. Rework en exit De auteur van het geïnspecteerde document dient de bevindingen te verwerken. De moderator gaat na of dit correct gebeurt. Eventueel kan het herstelde document wederom ter inspectie aangeboden worden. De moderator geeft uiteindelijk aan dat het document als voldoende gekwalificeerd kan worden. Pas dan is de inspectie afgelopen. Voor de moderator rest dan nog een belangrijke taak: het verwerken van de invloed van de parameters. Is de instelling van de parameters beter geweest dan de vorige inspectie? Waar lag dat aan? Wat is een betere instelling van parameters? Veel organisaties maken de fout de gegevens van de moderator te gebruiken voor het beoordelen van de auteur. Wanneer dit gebeurt, zal geen enkele inspectiemethode vruchten dragen. Amerikaanse bedrijven in het algemeen maar IBM en Bell in het bijzonder zijn sterk gericht op cijfers: omzet per land, omzet per product, kwaliteit per medewerker, etcetera. Wanneer medewerkers in de gaten krijgen dat het management door middel van de Fagan Inspection Methode minder leuke aspecten over hun gedrag te weten probeert te komen, dan zal dit leiden tot vluchtgedrag en minimale medewerking. Tot slot De snel opkomende Fagan Inspection Method heeft de volgende voordelen: • er is een korte inleertijd voor inspecteurs nodig. Met andere woorden iedereen binnen een projectteam kan deze inspecties uitvoeren. • het leereffect naar de auteur van een document is doordat deze zelf deelneemt aan de inspectie maximaal. Bij het uitvoeren van een audit is dit leereffect veel kleiner omdat de auteur pas na verloop van enige tijd achteraf geconfronteerd wordt met de kwaliteit van zijn ontwikkelde producten. • de standaards en conventies worden continue beproefd aan hun geschiktheid in de dagelijkse praktijk. Daarbij worden als vanzelf de standaards up to date gehouden, duidelijker, en voor iedereen
aanwijsbaar. De Fagan Inspection Methode heeft uiteraard ook zijn nadelen. Het is een blijft een methode voor de inspectie van het werk van mensen met hun o zo bekende gebreken en tekortkomingen. Daarbij is voor het juist toepassen van de methode een flinke dosis mensenkennis en -ervaring vereist. Ook het bijhouden van allerlei meetgegevens over de uitvoering van het inspectieproces is niet van gevaar ontbloot. Maar al te snel gaan deze gegevens, ondersteund door spectaculaire, uit hun verband gerukte wapenfeiten, een eigen leven leiden. Dit eigen leven is zeker niet bevorderlijk voor de acceptatie van de Fagan Inspection Methode welke mits goed toegepast een uitstekend middel kan zijn om de communicatie door middel van het geschreven woord te verbeteren.