Agile Scrum vraagt om een ver nieuwing van de

advertisement
Spotlight | Interne beheersing en IT
Agile Scrum vraagt om een
ver­­nieuwing van de controleaanpak
Martijn van Zomeren - Risk Assurance, Assurance
Steeds meer organisaties zetten de Agile
Scrum-methodiek in op veranderende
marktbewegingen. Agile Scrum vraagt om
een vernieuwing van de controleaanpak.
Hiervoor zijn nog geen referentiekaders
beschikbaar. In dit artikel worden enkele
handvatten voor de controle gegeven.
Samenvatting
De markt beweegt door de digitalisering steeds
sneller. Projecten en programma’s zijn een veelvuldig
gebruikt middel voor organisaties om effectief in te
spelen op deze ontwikkelingen. De Agile Scrumprojectmethodologie heeft als uitgangspunt dat
specificaties kunnen veranderen gedurende het project
en leidt tot verkorting van de time to market van nieuwe
IT-functionaliteit. Het uitvoeren van een controle is bij
uitstek een effectief middel om inzicht in de risico’s en
de interne beheersing van een project te krijgen. Het
accent van de controle van Agile Scrum ligt niet zozeer
op de output van elke individuele ontwikkelstap, maar
meer op de beoordeling van het ontwikkelproces, de
organisatorische inrichting, het team, en op de ‘softe’ in
plaats van de ‘harde’ interne-beheersingsmaatregelen.
1. De digitale revolutie als basis voor adoptie
van Agile Scrum als projectmethodologie
Mede door de toenemende digitalisering worden
organisaties gedwongen om hun businessmodellen
en bedrijfsprocessen steeds vaker en sneller te veranderen of te verbeteren. De Agile Scrum-methode is hier
uitermate geschikt voor. Agile Scrum heeft namelijk als
uitgangspunt dat specificaties gedurende het ontwikkelproces moeten kunnen veranderen en dat in zeer korte
doorlooptijd nieuwe kwalitatief hoogstaande functionaliteiten in productie genomen moeten kunnen worden.
De werkwijze in een notendop: de verschillende expertisegebieden die zijn vereist voor een succesvol project,
zijn binnen één team door verschillende teamleden
vertegenwoordigd. Het team werkt met elkaar samen van
‘sprint’ naar ‘sprint’. Dit zijn steeds korte iteraties, van een
periode van één tot vier weken, waarin het team een kant
en klaar product oplevert, naar de wensen - specificaties
- van de klant, als onderdeel van het totale project. Aan
het begin van elke sprint bepaalt het team de hoofddoelstelling van die sprint en de taken en verantwoordelijkheden van elk teamlid. Aan het einde geven de teamleden
in een eerlijke communicatie aan of de subdoelstelling
gehaald is, en trekt het team lessen uit de afgelopen
sprint, zodat de teamprestaties continu verbeteren.
Interne beheersing en IT
23
Agile Scrum geschikter voor snel veranderende wereld dan de traditionele watervalmethodieken
Tot nu toe waren veel systeemontwikkelingsprocessen gebaseerd op de traditionele watervalmethode. De
watervalmethode is een beheerste methode voor de ontwikkeling van nieuwe applicaties en functionaliteiten, waarbij
stap voor stap door verschillende functies van de originele specificaties (technisch ontwerp, functioneel ontwerp,
datamodel, ontwikkelen, testen) naar inproductiename wordt toegewerkt. Het resultaat van de voorgaande stap is de
input voor de daaropvolgende stap, waarbij de oorspronkelijke specificaties als uitgangspunt worden gehanteerd voor
validatie van de juiste uitvoering van de processtappen. Dit maakt het watervalproces een goed beheersbaar en te
controleren proces, waarbij de verschillende functionele expertises gescheiden van elkaar aan een deel van de totale
eindoplossing werken. Bezwaar van deze methode is dat de communicatie tussen de verschillende functies binnen het
totale ontwikkelproces beperkt is, en er veel overdrachtsmomenten nodig zijn voordat de functionaliteit in productie kan
worden genomen.
Agile Scrum
Agile Scrum heeft juist als uitgangspunt dat specificaties gedurende het ontwikkelproces moeten kunnen veranderen.
Agile Scrum tracht op deze wijze de silo’s, het gebrek aan communicatie en het teveel aan overdrachtsmomenten te
doorbreken. Per iteratie, sprint, wordt door het multifunctionele team werkbare IT-functionaliteit opgeleverd. Het team is
zelfsturend en gericht op het continu evalueren en leren hoe effectiever kan worden samengewerkt in het belang van de
klant. De uitgangspunten van Agile om dit te bewerkstelligen zijn in 2001 verwoord in het Agile Manifesto:
• Personen en interacties zijn belangrijker dan processen en tools.
• Werkende bruikbare sofwarefunctionaliteit is belangrijker dan uitgebreide documentatie.
• Samenwerking met de klant levert meer op dan onderhandelingen over het contract.
• Effectief kunnen omgaan met verandering is belangrijker dan strikt het oorspronkelijke plan volgen.
Vanuit een controleperspectief zijn veelgehoorde bezwaren ten aanzien van Agile Scrum dat teams te veel vrijheid krijgen,
waardoor de beoogde reikwijdte en baten van de eindoplossing niet overeenkomen met de wensen van de organisatie.
Door de beperkte documentatie van de tussenliggende producten is het lastiger voor iemand van buiten het team inzicht
te krijgen in de kwaliteit en voortgang van de te realiseren functionaliteit, en de samenhang met de systeemontwikkeling
die door andere teams in dezelfde keten plaatsvindt, te bewaken.
Figuur 1. Softwareontwikkeling: watervalproces versus
Scrum-proces
Figuur 1 Softwareontwikkeling: watervalproces versus Agile Scrum-proces
Maand 8
Maand 6
Maand 4
Maand 2
Start
Watervalmethode
Eisen
Ontwerp
Ontwikkeling
Validatie
Agile Scrum
Sprint 1
Eisen
Ontwerp
Documents
Documents
Sprint 2
Ongevalideerde Code
Software
Sprint ..x
```
Software
Software is:
Software
Software
25% Compleet
Software
Software
50% Compleet
Software
Software
75% Compleet
Software
100% Compleet
PwC
2. Controle door IT-auditor geeft inzicht in
risico’s en beheersing van het project
Omdat een Agile Scrum-project grote consequenties
kan hebben voor de interne beheersing, de financiën,
het duurzame concurrentievermogen, en de motivatie
van het personeel, is het essentieel dat het slaagt. De
IT-auditor geeft inzicht in de risico’s en de beheersing van
het project. De context waarbinnen Agile Scrum wordt
toegepast is essentieel voor het kunnen duiden van de
24
Spotlight Jaargang 22 - 2015 uitgave 2
risico’s die specifiek gelden voor het betreffende controleobject. De opsomming in figuur 2 geeft een vertrekpunt
voor de risicoanalyse als fundament van de controleaanpak. Agile Scrum onderscheidt een aantal processtappen, rollen en instrumenten die aanknopingspunten
bieden voor het nader identificeren van interne-beheersingsmaatregelen die moeten worden opgenomen in de
reikwijdte van de controleaanpak (zie figuur 3).
1
Figuur 2 Voornaamste risico’s Agile Scrum-project
Risico
1
Het senior management van de organisatie is onvoldoende betrokken bij de ontwikkeling van het project. Hierdoor
draagt de opgeleverde functionaliteit niet bij aan de realisatie van de businesscase.
2
Business value wordt niet juist toegekend aan de specificaties, waardoor in de prioritering van de ontwikkeling
onvoldoende rekening wordt gehouden met de afhankelijkheden die tussen de specificaties bestaan om een werkende
functionaliteit op te leveren.
3
Teams krijgen te veel vrijheid, waardoor de beoogde reikwijdte en baten van de eindoplossing niet overeenkomen met
de specificaties van de organisatie.
4
De door het Scrum-team opgeleverde functionaliteit voldoet niet aan de conventies van de organisatie met betrekking
tot de architectuur, het datamodel en de gebruikte communicatieprotocollen.
5
De kwaliteit van het ontwikkelingsproces is niet toereikend, wat leidt tot veel rework en inefficiënties.
6
De organisatie heeft onvoldoende zicht op de inhoudelijke voortgang en kwaliteit van de ontwikkeling om tijdig bij te
kunnen sturen in samenhang met andere ontwikkelingstrajecten.
7
De documentatie is niet toereikend om de opgeleverde functionaliteit in de toekomst goed te kunnen beheren/
onderhouden.
8
In het ontwikkelingsproces is onvoldoende aandacht voor application life cycle management, waardoor beheerskosten
na inproductiename kunnen oplopen.
9
De omringende organisatie is niet voldoende klaar/volwassen om de Agile Scrum-methodiek effectief toe te kunnen
passen, waardoor
het management
interventies pleegt die afbreuk doen aan het realiseren van zelfsturende highFiguur
3. Het
Scrum-proces
performing Scrum-teams.
Figuur 3 Het Agile Scrum-proces
De Product Owner en
het Scrum-team
verfijnen samen de
gewenste
functionaliteiten in de
backlog en het team
ontwerpt, bouwt en
test functies
De Product Owner
prioriteert gewenste
functionaliteiten op
basis van toegevoegde
waarde voor de
organisatie
A
B
C
D
E
Ontwerp
A
A
Test
DEMO
B
Ontwerp
Sprint
backlog
Product
backlog
Code
De Product Owner
reviewt en geeft
goedkeuring op
datgene wat het
team gebouwd heeft
B
Code
Fragment van
de applicatie
WEB
A B APP
DB
Test
2-4-wekelijkse iteraties Sprints
Werkende
software
Door de risico’s te identificeren kan de organisatie, met
behulp van de AO/IC-beginselen van Starreveld, ook
interne-beheersingsmaatregelen ontwerpen die deze
risico’s mitigeren of zelfs weg kunnen nemen.
• User stories
Vervolgens vertaalt het Scrum-team de specificaties naar
user stories: een praktische beschrijving van de te ontwikkelen functionaliteit waarmee invulling wordt gegeven
aan de door de klant gestelde specificaties.
3. De processtappen van Agile Scrum
• Sprint backlog
Het Agile Scrum-proces wordt opgedeeld in iteraties van
twee tot vier weken, de zogenaamde sprints. Het team
bepaalt tijdens de sprintplanning welke user stories in
de aankomende sprint zullen worden ontwikkeld, en
verwerkt de betreffende user stories in de sprint backlog.
Gedurende de sprint worden voor deze user stories op
iteratieve wijze het ontwerp-, ontwikkel- en testproces
doorlopen, en wordt werkbare functionaliteit opgeleverd.
De processtappen van de Agile Scrum-methodiek zien er
als volgt uit:
• Product backlog
Het Scrum-team registreert en prioriteert de specificaties
(wensen) van de organisatie in een product backlog,
een overzicht van de specificaties die nog door het team
moeten worden ingevuld.
Interne beheersing en IT
25
26
Spotlight Jaargang 22 - 2015 uitgave 2
• Eindproduct
Als het product/de functionaliteit, zoals verwoord in de
user story, klaar is, wordt dit aangeboden aan de Product
Owner (de klant, die als zodanig onderdeel is van het
Scrum-team). Deze bepaalt of de gerealiseerde functio­
naliteit voldoet aan de door de organisatie gestelde
acceptatiecriteria, en of deze werkt.
• Inproductiename
Na goedkeuring van de Product Owner wordt de betreffende functionaliteit in productie genomen.
4. Functiescheiding binnen de rollen van
Agile Scrum
Naast deze goederenbeweging is er ook een duidelijke
functiescheiding tussen de verschillende rollen binnen
Scrum.
• De Product Owner heeft een beschikkende functie
De Product Owner is de klant. Hij is verantwoordelijk
voor het melden en prioriteren van de specificaties van
de organisatie in het licht van de bedrijfsdoelstellingen en
de beoogde baten in de businesscase. De Product Owner
zorgt voor de acceptatie van de door het ontwikkelteam
opgeleverde functionaliteit voorafgaand aan inproductie­
­name.
• Het team heeft een uitvoerende functie
Het team is verantwoordelijk voor het ontwikkelen en
testen van de specificaties zoals die door de Product
Owner (de klant) worden aangereikt, conform de meegegeven (kwaliteits)standaarden en eisen. Het team heeft
niet de mogelijkheid om de gerealiseerde functionaliteit
te accepteren en in productie te nemen.
In de bovengenoemde rolverdeling van de Product Owner
en het team is de vereiste scheiding tussen ontwikkeling
en productie effectief gerealiseerd.
• De Scrum Master heeft een
registrerende en faciliterende functie
De scrummaster helpt het team bij de effectieve
uitvoering van het ontwikkelproces. Hij vervult geen
inhoudelijke rol, maar wel een belangrijke rol in de juiste
en volledige registratie van de uit te voeren taken en de
bijbehorende status. Op basis van deze primaire registratie kan de scrummaster het team inzicht geven in de
kwaliteit en effectiviteit van zijn functioneren. Daarnaast
heeft de scrummaster de taak om organisatorische belemmeringen voor het team om effectief te kunnen functioneren, weg te nemen.
Indien bovenstaande drie rollen als zodanig effectief
worden ingevuld, is de vereiste functiescheiding tussen
de beschikkende, de registrerende en de uitvoerende rol
gerealiseerd. Alleen de controlerende functie moet dan
nog worden ingevuld.
• De controlerende functie
In het uitgangspunt van een zelfsturend multidisciplinair
high performing team, voert het team allereerst zelf een
belangrijk deel van deze controlerende functie uit. Zo
hoort de Quality Control functie deel uit te maken van het
team. Het team draagt ook de verantwoordelijkheid om
gedurende het ontwikkelingsproces te blijven valideren of
het proces volledig is gevolgd en of er wordt voldaan aan
alle vereisten in de ‘Definitions of Ready’ en ‘Definitions
of Done’ (zie kader). Die checks moeten uitgevoerd zijn
voordat het team een user story oplevert aan de Product
Owner ter acceptatie. De laatste stap in het Agile Scrumontwikkelproces is de evaluatie (retrospectief) door het
team. In de evaluatie bespreekt het team wat goed ging en
wat beter kan en hoe die verbetering vervolgens gerealiseerd moet worden.
Definition of Ready: criteria waaraan voldaan moet
worden voordat een ‘product increment’, de user story,
is afgerond (lees: ‘Done’), en mag worden meegeteld in
de sprintresultaten van het team.
Definition of Done: criteria waaraan de beschrijving
van een user story moet voldoen voordat de betreffende
user story opgenomen mag worden op de sprint
backlog voor de aankomende sprint.
5. Informatie over status en kwaliteit van proces
en product essentieel voor leercyclus
Voor een effectieve evaluatie is goede informatievoorziening essentieel om waar nodig bij te kunnen sturen.
Naast het meten van de Velocity en Burndown (zie kader)
van het team, zijn ook het aantal fouten, de omvang van
de reparatiewerkzaamheden, en het aantal operationele
verstoringen na inproductiename relevante indicatoren
om een beeld te krijgen van de voortgang en kwaliteit
van het team. Al deze informatie wordt pas relevant als
het team, al dan niet geholpen door het management,
de nodige consequenties en acties aan deze informatie
verbindt. Zoals eerder is vermeld, zijn Scrum-teams
zelfsturend en gericht op het continu leren en verbeteren
van de teamprestatie in het belang van de klant. In dat
kader zijn cultuur, gedrag en leiderschap zeer belangrijke
softe interne-beheersingsmaatregelen in een effectief
en efficiënt Agile Scrum-proces. Het uitvoeren van een
onafhankelijke controle of Quality Assurance-toets kan
in positieve zin bijdragen aan het versterken van deze
interne-controlecyclus. Velocity: geeft de voortgang van het team weer in de
som van de op voorhand geschatte hoeveelheid werk
van het totaal aantal user stories dat is afgerond
(lees: ‘Done’) in de betreffende sprint.
Burndown chart: is een grafische presentatie van de
resterende hoeveelheid werk aan user stories afgezet
tegen de resterende tijd. Deze chart wordt gebruikt om
de voortgang te meten en te voorspellen wanneer alle
werkzaamheden zijn afgerond.
Interne beheersing en IT2727
Figuur 4 Interne-beheersingsmaatregelen Agile Scrum-proces als basis voor de controle
Controle-elementen Scrum
Organisatorisch
• samenstelling van het team (multidisciplinair, ervaren ontwikkelaars, klant aan tafel, Quality Control)
• SMART geformuleerde businesscase met breed draagvlak in de organisatie
• Product Owner met voldoende kennis en mandaat toewijzen aan project
• Scrum is door organisatie beschreven (minimaal: organisatieconventies, processen, rollen, taken, bevoegdheden,
verantwoordelijkheden, mijlpalen, afstemming op de organisatie)
• data-, architectuur- en codingconventies
• heldere governancestructuur met op actie gerichte rapportages/informatievoorziening
• training en begeleiding/coaching team in uitvoering van Scrum
• op elkaar afgestemde en zo veel mogelijk geautomatiseerde ontwikkel-, test-, implementatie-, en beheerprocessen
• geïmplementeerd kwaliteitsmanagementsysteem met inzicht in de belangrijkste indicatoren voor het meten van de
voortgang en kwaliteit van het Scrum-project
• cultuur en gedrag die gericht zijn op het continu valideren, evalueren en verbeteren van teamprestaties
Procesmatig
• vooraf gedefinieerde vastomlijnde time boxes per sprint (drie tot vijf weken), waarbinnen de gehele ontwikkelcyclus
wordt afgerond
• Scrum-team volledig toegewijd aan het project
• de rollen van facilitator, uitvoerend team en Product Owner worden gescheiden gehouden
• Definition of Ready en Definition of Done actief gehanteerd voor validatie van de kwaliteit van user stories en
deliverables, en bevatten organisatorische vereisten ten aanzien van de AO/IC
• user cases/stories worden voorafgaand aan elke sprint vastgesteld (geen changes tijdens de sprint)
• Design to Budget-principe voor sprintplanning toegepast, leverbetrouwbaarheid van het team gemonitord
• release na elke sprint van user stories ‘Done’ na vereiste testings en akkoord van de Product Owner
• evaluatie na elke sprint aan de hand van het kwaliteitsmanagementsysteem om verbeteracties te duiden
Technologisch
• projectadministratiesoftware (Jira, Clarity, TFS) geïmplementeerd voor het monitoren van de voortgang
• OTAP-scheiding geëffectueerd (Ontwikkel, Test, Acceptatie, en Productie)
• geïmplementeerd Continuous Deployment-mechanisme
• geautomatiseerde testing ingericht op basis van de systeemcode
• geïmplementeerd Continuous Integration-mechanisme
• schaalbaar distribueerbare infrastructuur die ‘container deployment’ mogelijk maakt
• configurationmanagement en ‘deployment tooling’ aanwezig voor actief en geautomatiseerd versiebeheer
6. Interne-beheersingsmaatregelen van Agile
Scrum als aanknopingspunten controleaanpak
Met de identificatie van de belangrijkste risco’s en
elementen van de interne beheersing van een Agile
Scrum-project is een belangrijke basis gelegd voor het
bepalen van de controleaanpak. De specifieke reikwijdte
en risico’s van het controleobject vormen de basis om
de juiste focus in de controleaanpak te brengen, en
vervolgens de aanpak verder te operationaliseren in de te
testen interne-beheersingsmaatregelen en de te hanteren
testtechnieken.
Figuur 4 geeft een overzicht van de interne-beheersingsmaatregelen van het Agile Scrum-proces. Op basis
hiervan kan de controleaanpak gevormd worden.
7. Controleaanpak Agile Scrum vraagt
om juiste balans tussen harde en softe
interne-beheersingsmaatregelen
We zien naast ‘harde’ interne-beheersingsmaatregelen,
zoals de juistheid en volledigheid van Definition of
Done, ook meer ‘softe’ interne-beheersingsmaatregelen
terugkomen, zoals de daadwerkelijke toepassing van de
Definition of Done door de Product Owner als basis voor
28
Spotlight Jaargang 22 - 2015 uitgave 2
acceptatie van de opgeleverde systeemfunctionaliteiten,
of de wijze waarop de gemeten voortgang en kwaliteit
van de teamprestaties actief wordt gebruik als evaluatieen verbeterinstrument. Vaak zijn de harde interne-beheersingsmaatregelen (zoals beleid, procesdefinitie,
conventies) wel aanwezig, maar verbindt het team of het
management daar geen harde consequenties aan wanneer
de resultaten tegenvallen. Soms simpelweg omdat de
informatievoorziening daartoe ontbreekt in de organisatie. Een bepaalde mate van registratie en documentatie,
beide harde interne-beheersingsmaatregelen, is dus wel
degelijk nodig om deze informatievoorziening te kunnen
realiseren. Het excuus dat documentatie niet nodig is
omdat ‘dit is Agile Scrum is en dat werkt anders’ gaat niet
op als je niet in staat bent om de kwaliteit en progressie
te evalueren en uiteindelijk een systeem moet kunnen
beheren.
De kracht van Agile Scrum zit in de iteratieve processen
en het hanteren van de juiste mix van harde en softe
interne-beheersingsmaatregelen gericht op het continu
valideren, evalueren en verbeteren van de geleverde
prestaties. Als deze iteratieve cyclus effectief wordt
toegepast, worden risico’s en eventuele tekortkomingen
in een vroegtijdig stadium geïdentificeerd en door middel
De controlerende functie draagt als speler van
het team bij aan het leerproces in het team
Doordat Agile Scrum werkt met kortcyclische iteratieve
leerprocessen kunnen risico’s met betrekking op
het gewenste eindresultaat van een project, in een
vroegtijdig stadium onderkend en aangepakt worden.
Om dit te kunnen bewerkstelligen, doet Agile Scrum
onder meer een beroep op de controlerende functie om
onafhankelijk de kwaliteit van het stelsel van internebeheersingsmaatregelen te toetsen als input voor het
leerproces van het team.
van acties aangepakt. De auditor doet er dus goed aan om
in zijn controleaanpak het accent te leggen op de juiste
balans tussen harde en softe interne-beheersingsmaatregelen en de effectiviteit daarvan binnen de iteratieve
processen van Agile Scrum. Meer aandacht voor het
proces en de softe interne-beheersingsmaatregelen
daarbinnen brengt automatisch een verschuiving van
inspectie naar observatie als testtechniek met zich mee.
Deze verschuiving daagt de auditor uit om vanuit zijn
onafhankelijke positie feitelijke observaties aan het team
en de organisatie terug te geven met betrekking tot de
effectiviteit van de interne beheersing en de iteratieve
leercyclus van het team.
8. Conclusie: accent controle op proces,
team, softe interne-beheersingsmaatregelen
en observatietechnieken
In de huidige tijd van digitalisering is de vaardigheid
om in kort tijdsbestek effectief in te kunnen spelen op de
veranderende klantbehoefte essentieel voor bedrijven
om te overleven. De Agile Scrum-methodologie is er bij
uitstek op gericht om met een zelfsturend multifunctioneel team via korte iteraties nieuwe functionaliteiten te
kunnen realiseren. Het uitvoeren van een controle op een
Agile Scrum-project kan een positieve bijdrage leveren
aan de effectiviteit van de interne beheersing van een
Agile Scrum, mits de auditor op passende wijze aandacht
besteedt aan de specifieke risico’s en controlemaatregelen van deze methodologie. De goederenbeweging,
functiescheiding, en het zelflerende vermogen van het
Scrum-team zijn belangrijke aandachtspunten voor de
auditor, waarbij de organisatorische inbedding inclusief
de cultuur en het gedrag moeten zorgen voor de juiste
voedingsbodem voor effectieve toepassing van Agile
Scrum. Dit vraagt in de controleaanpak een verschuiving:
• van uitkomst meer naar het proces en het team;
• van harde naar meer softe interne-beheersingsmaat­
regelen; en
• van inspectietechnieken naar observatie­­­­technieken.
Interne beheersing en IT
29
Download