Scrum óf CMMI - strijd of synergie?

Download het volledige artikel als pdf

 

door Jan Vlietland

 

Nu Scrum raakt ingeburgerd in de wereld van IT, leeft bij veel IT’ers de vraag of CMMI is achterhaald. Er lijkt bij sommige organisaties zelfs een strijd gaande over wat het beste is. Dit document beschrijft in vier pagina’s het verband tussen CMMI en Scrum en de aanwezige synergie. De doelgroep van dit document is iedereen die zich bezig houdt met deze twee onderwerpen.

Voor de lezers die wat minder bekend zijn met deze onderwerpen: CMMI staat voor Capability Maturity Model Integration. CMMI is een geordende bibliotheek van eigenschappen van procesvolwassen organisaties. Het SEI (Software Engineering Institute), de beheerder van CMMI, richt zich met CMMI op een bredere doelgroep dan IT. Wij beperken ons tot CMMI for development v1.3. Dit is uitwerking van dit model en beschrijft eigenschappen van procesvolwassen organisaties die producten en/of diensten ontwikkelen. Vanaf nu bedoelen we in dit artikel met CMMI de uitwerking CMMI for development v1.3.

Scrum is een softwareontwikkelmethodiek waarbij de tijd vooraf is bepaald in plaats van het resultaat. Scrum omhelst een aantal specifieke concepten, zoals (1) een product backlog met functionele requirements, (2) een vooraf vastgestelde cyclus met releases en (3) een sprint backlog met taken voor de eerstvolgende release. Er worden drie rollen onderscheiden, (1) de product owner die de lijst met functionele requirements beheert (product backlog), (2) de scrum master voor de begeleiding van de Scrum processen en (3) de teamleden. Voor meer informatie over Scrum verwijzen we graag naar Kniberg (2007).

 

Verschillen tussen Scrum en CMMI

Met het bovenstaande zijn de belangrijkste verschillen tussen Scrum en CMMI meteen genoemd. CMMI beschrijft wat typisch nodig is in een procesvolwassen softwareontwikkelorganisatie, Scrum is een specifieke invulling hiervan. Belangrijk om nog te vermelden is dat Scrum een iteratieve aanpak beschrijft en CMMI neigt naar een watervalmethode

 

Het verband tussen Scrum en CMMI

In CMMI zijn de eigenschappen van procesvolwassen organisaties uitgebreid beschreven in zogenaamde ‘practices’. De beschreven practices zijn ingedeeld in procesgebieden. Deze procesgebieden zijn weer ingedeeld in maturity levels die het volwassenheidsiveau van de organisatie classificeren. Het meeste gebruikte niveau is maturity level 2 met de volgende procesgebieden:

  • Project Planning
  • Project Monitoring & Control
  • Measurement & Analysis
  • Requirements Management
  • Supplier Agreement Management
  • Process and Product Quality Assurance
  • Configuration Management

Deze zeven procesgebieden nemen we als uitgangspunt en beschrijven per procesgebied de Scrum specifieke invulling. Omwille van de eenvoud wordt alleen een overzicht gegeven en niet de CMMI practices genoemd. Voor deze meer gedetailleerde invulling verwijs ik graag naar het artikel van Potter & Sakry (2009).

 

Project Planning

De effort voor een release wordt ingeschat op basis de requirements met de hoogste prioriteit die zijn opgenomen in de product backlog. Voor de effort schatting worden story points gebruikt die wordt geschat met Scrum poker, een soort van Wideband Delphi methode. De life-cycle is bepaald door de Scrum sprints, de releases. Het commitment wordt bereikt door het team uitgebreid te betrekken bij het schatten van de effort, de sprint planning meeting en dagelijkse meetings die staand worden gehouden (daily stand-ups).

 

Project Monitoring & Control

Scrum teams gebruiken een overzicht met drie kolommen (op een muur) waarop taken staan die nog moet worden uitgevoerd, taken die worden uitgevoerd en taken die zijn afgerond. Ook bevat het een grafiek (burndown chart) waarin de nog uit te voeren taken zijn uitgezet tegen de nog beschikbare capaciteit. Zo is continue zichtbaar of het team voor of achter loopt. Dagelijks wordt de burndown chart doorgesproken tijdens de daily stand-ups. Aan het einde van een sprint wordt een sprint review meeting gehouden met de teamleden.

 

Measurement & Analysis

Er zijn een aantal measurements aanwezig in Scrum die samen komen in de burndown chart. De belangrijkste zijn (1) het totaal aantal mandagen, (2) het nog beschikbare aantal mandagen, (3) de totale geplande story points (planned velocity) en (4) de totaal gerealiseerde story points (actual velocity).

 

Requirements management

Door het iteratieve karakter van Scrum is het managen van wijzigingen een stuk eenvoudiger dan bij een watervalmethode. De product backlog bevat de voorraad requirements. Aan het begin van een sprint worden er wat meer requirements geschat en omgezet in taken dan in een sprint passen. Tijdens de sprint wordt aan de hand van de burndown chart met het team worden bepaald of er taken moeten worden weggestreept om de release te halen of dat er extra taken kunnen worden gerealiseerd.

 

Supplier Agreement Management

Scrum beschrijft niet hoe je leveranciers kan managen. Desondanks zou een leverancier ook volgens Scrum kunnen werken. Via hetzelfde principe wordt dan een product owner aangewezen die de verbinding vormt tussen klant en leverancier.

 

Process and Product Quality Assurance

De Scrum Master vervult deze rol. Daarbij ligt de focus op het wegnemen van blokkades (impediments) die het team verhindert om te presteren. Dit is een belangrijk verschil met vele CMMI implementaties waarbij de focus ligt op de ‘politierol’.

 

Configuration Management

Configuration Management valt buiten het bestek van de Scrum methodiek.

 

Link naar inrichting

Een Scrum organisatie lijkt meer op een lijnorganisatie dan op een projectorganisatie. Immers een projectorganisatie is iets eenmaligs (Bentley, Jones, Atkinson, & Ferguson, 2009), terwijl een Scrum team iets blijvends is. Scrum is daarmee bijzonder geschikt voor de inrichting van bestaande IT-teams die bestaande IT-producten ontwikkelen. Voor IT-producten die van de grond af aan worden opgebouwd is een projectorganisatie in eerste instantie geschikter. Een van de projectresultaten zou dan een functioneel Scrum team kunnen zijn.

Scrum en CMMI gaan dus prima samen. Scrum als gemakkelijk verteerbare softwareontwikkelmethodiek en CMMI als objectief kader voor de groei van de organisatie.

 

Contact

Als je vragen hebt over dit artikel dan kun je contact opnemen met Jan Vlietland, via telefoon 030 – 268 53 98 of via www.Search4Solutions.nl/contact. Ook feedback is van harte welkom.