Agile Scrum
We kunnen met Agile Scrum software ontwikkelen wat we willen, maar net als bij andere methodes zullen we de deliverables moeten reviewen. Iets zonder beoordeling aannemen, ontwikkelen en in productie nemen leidt altijd tot problemen.
Bij de klassieke manier van automatiseren krijgt de gebruiker aan het begin van de ontwerpfase de gelegenheid om aan te geven welke functionaliteit hij of zij wenst. Daarna trekt de ontwerper zich terug en komt na verloop van tijd met een product dat het concept-ontwerp heet. Op dit ontwerp kan de gebruiker dan commentaar leveren waarna een definitief-ontwerp het leven ziet. In de praktijk blijkt dit niet voldoende zodat er al snel een uitsplitsing naar functioneel- en technisch-ontwerp komt.
Het technische deel dient als uitgangspunt voor de programmeurs, terwijl het functionele deel dient als praatpapier met de gebruikersorganisatie. Toen het mogelijk werd om steeds complexere databases op te zetten was deze verdeling nog niet voldoende. Het maken van een ontwerp vergde namelijk een grote inspanning terwijl de gebruikers de mogelijkheid hebben om op het laatst de boel nog om te gooien of helemaal af te blazen.
Daarom is de Informatie Analyse geïntroduceerd dat een meer conceptuele kijk op het toekomstige informatiesysteem beoogd. Het ontwerp volgt na de Informatie Analyse.
De huidige ontwikkeltechnieken stellen developers instaat om snel een aantal schermen en lijsten op te zetten en deze in een soort prototype samen te laten werken. Het prototype tonen we aan enkele gebruikers waarbij we hen om een oordeel vragen. Deze techniek noemen we prototyping. Kern van deze techniek is dat we de opmerkingen direct in het prototype verwerken zodat een nieuw prototype ontstaat. Pas na deze acties weet de ontwikkelaar welke verwachting de gebruiker heeft zodat hij aan het ontwerp kan beginnen.
Nog eens stap verder gaat Rapid Application Development (RAD) waarbij we in plaats van een prototype direct een werkende applicatie bouwen. Hier ligt de basis voor de bekende Agile Scrum aanpak waarin telkens in een korte periode werkende software wordt opgeleverd. Ook bij deze ontwikkeltechniek zal er echter nog veel te reviewen zijn. Er dienen ontwerpdocumenten te zijn die iets zeggen over:
Een goede manier om ontwerpen en andere project deliverables in een Agile Scrum omgeving te toetsen is het uitvoeren van een review. Het gaat hierbij om leesbare producten, zoals rapporten, ontwerpen en handleidingen. Bij een review toetst een team uit de organisatie namelijk een project deliverable aan de normen die de organisatie zelf voor deze deliverables heeft vastgesteld. Daarbij letten we bijvoorbeeld gelet op:
Het doel van de review is zelf fouten in een zo vroeg mogelijk stadium te ontdekken omdat ze dan nog zonder al te hoge kosten zijn te herstellen. Reviews passen dus in een kwaliteitsverbetercirkel en moeten we als integraal onderdeel van de scrum-sprint zien. Dit in tegenstelling tot een audit die meestal achteraf plaatsvindt.
Het moment waarop een review plaatsvindt is afhankelijk van het sprint-verloop en bovendien het soort project deliverable dat we moeten beoordelen. Het aantal reviews dat tijdens een project plaatsvindt kan namelijk zeer groot zijn en is afhankelijk van de omvang van het project en de gekozen methodologie. Bij een project vindt een review plaats op alle plannen van aanpak, op alle eindrapporten en alle project deliverables (vaak tientallen). Het is duidelijk dat we voor het uitvoeren van reviews tijd moeten inplannen.
De checklisten van ITpedia kunnen we bij een review toepassen; zij geven een overzicht van de kwaliteitseisen die we aan het projectproduct stellen. Tevens kunnen we verschillende producten met behulp van de checklisten eenduidig beoordelen. Hoewel de checklisten door iedere reviewer tijdens de projectproduct-beoordeling worden ingevuld kan de checklist tevens als leidraad voor de review-vergadering dienen.
Niet ieder project deliverable kunnen we op dezelfde wijze reviewen. Daarom zijn Agile Scrum reviews in een aantal typen onder te verdelen.
Er zijn een aantal typen reviews te onderkennen, t.w. 1. Op de plannen; 2. Review op consistentie deliverable; 3. Op projectrisico’s en 4. Review op eindrapport.
In dit reviewtype beoordelen we of de projectleider een goed het plan van aanpak heeft gemaakt. We kijken met name of de planning haalbaar is, of de juiste technieken toegepast gaan worden en of de juiste project deliverables zijn gedefinieerd. Tevens bepalen we reeds of het project aansluit bij de Business analyse en de Business case.
Het is van belang om vast te stellen of de deliverable aansluit bij de andere deliverables en bovendien in zichzelf een consistent geheel vormt. Bij een technisch-ontwerp dienen we bijvoorbeeld te controleren of het aansluit bij de user-stories zoals die in het functionele deel zijn ontworpen; alle requirements die in de Informatie analyse gedefinieerd zijn dienen we in het Functionele ontwerp te beschrijven; alle “datastores” in een Dataflowdiagram dienen in de data-dictionary te zijn opgenomen enzovoort. Veel van deze controles zijn ondersteund door ontwikkeltools wat het reviewwerk een stuk lichter maakt.
Het type review dat we voornamelijk met de product owner uitvoeren. De product owner dient namelijk als opdrachtgever akkoord te gaan met de beslissingen die tijdens het project worden genomen. Tevens dient hij zich voortdurend voor ogen te houden wat straks de gevolgen van deze beslissingen zullen zijn, komt dat systeem waar iedereen graag mee wil werken er, of buigen we hoe langer hoe meer van dit ideaal af met het risico dat het systeem straks niet aan de verwachtingen voldoet.
Het eindrapport van een ontwikkelfase of sprint is een samenstelling van de deliverables uit die fase/sprint waarmee de fase/sprint wordt afgerond. Het eindrapport mag geen openstaande vragen meer bevatten en dient compleet te zijn. De kwaliteit van het eindrapport dient zodanig te zijn dat de Product-owner de beslissing kan nemen de volgende sprint te starten of het project geheel af te blazen, tevens moeten de medewerkers van de volgende sprint kunnen vertrouwen op het eindrapport. Met andere woorden het eindrapport mag geen aannames meer bevatten maar slechts onderbouwde definities.
Een review wordt doorgaans door een groep personen uitgevoerd die ieder een bepaalde rol tijdens de review vervullen. Deze personen dienen in ieder geval een professionele instelling t.a.v. kwaliteit te hebben en de review niet als een persoonlijke beoordeling te zien. Dit geldt voor zowel de persoon wiens product we reviewen als voor de personen die de review uitvoeren. Daarnaast dienen de reviewers een bepaalde persoonlijkheid te hebben zodat zij de juiste toon kunnen zetten en de door hun gewenste acties worden uitgevoerd.
Tijdens de review vullen de betrokkenen checklisten in waardoor een eenduidige wijze van beoordelen ontstaat.
Afhankelijk van het reviewtype, de omvang en de complexiteit van het project kunnen we de volgende rollen onderkennen:
Het houden van een review valt uiteen in een aantal activiteiten die op zich grote overeenkomsten vertonen met de opzet van een ontwikkeltraject. Naast het houden van de reviews zelf moeten we ook de wijze waarop de reviews zijn opgezet onderhouden. Bij elke review dienen we dus te evalueren hoe de review is verlopen en of de review voldoende effect heeft gehad. Tevens kunnen we een pool van vaste reviewers samenstellen van mensen die daar speciaal voor zijn opgeleid.
De review zelf kent de volgende fasen :
Het plan van de een review moet voorzien in het vaststellen van:
Discussieer mee op LinkedIn.
Mogelijk is dit een vertaling van Google Translate en kan fouten bevatten. Klik hier om mee te helpen met het verbeteren van vertalingen.