De meeste organisaties die Scrum gebruiken, passen eigenlijk “Scrumbut” toe (“We use Scrum but… fill in any number of changes and extensions here”). Scrum is soms niet praktisch en tevens flinterdun op gebieden als ontwerp, change en release management, testen en projectmanagement. Daarom wordt op deze gebieden veelal geleend van methodes als XP, UML, ITIL en PRINCE2. Naar mijn mening mist er zoveel aan Scrum dat Scrum alleen (of Scrum plus XP) geen solide basis vormt voor projectmatige software ontwikkeling. De volgende alinea’s gaan dieper in op 3 onpraktische en missende delen van Scrum.
1) De Scrum rolverdeling is niet praktisch
De Product Owner moet volgens Scrum de bevoegdheid hebben alle beslissingen te nemen namens de opdrachtgever. In ICT projecten is dit veelal een manager die niet de tijd heeft om ook fulltime de Product Owner verantwoordelijkheden op zich te nemen. Tevens is de vraag in hoeverre een manager uit “de business” de vaardigheden heeft die horen bij de Product Owner rol (o.a. de scope nauwkeurig vastleggen, bouw volgorde bepalen). Scrum onderkent dit probleem niet en biedt ook geen handvaten hoe deze rol kan worden opgesplitst.
In Scrum is er geen projectmanager maar is het team “zelfsturend”. De Scrummaster is uitsluitend een coach en facilitator. Mijn persoonlijke ervaring is dat een team met een ervaren leider veel effectiever is dan een groep zonder leider. Op dit gebied mist Scrum naar mijn mening de project- en teamleider rollen. Ik denk dat dit anti-management sentiment in Scrum veroorzaakt wordt door slecht projectmanagement. Zo worden HBO+ werknemers nog te vaak gemicromanaged en wordt er meer gestuurd op het halen van deadlines dan op een goed resultaat. Dit pleit voor ander management, niet minder management.
Naast de Product Owner en Scrummaster rol bestaat er ook nog het Teamlid rol. Scrum maakt hierin geen onderscheid in rollen, sterker nog: alle teamleden moeten elkaars werk kunnen doen en alle rollen zijn fulltime met het project bezig. Ook deze rol is niet praktisch; de beste vaardigheden zijn veelal aanwezig bij de specialisten in plaats van in generalisten.
2) Scrum onderkent onvoldoende het belang van duidelijke requirements en een goed ontwerp

Scrum noemt “gedetailleerde documentatie” minder waardevol. Een valkuil in Scrum is dat ontwerp niet verder komt dan post-it’s en tekeningen op een whiteboard (het houden van ontwerp sprints zoals bijvoorbeeld in RUP/OpenUP is immers ook tegen de leer in). Uit onderzoek blijkt juist dat slechte specificaties de voornaamste reden zijn van projectfalen. Tevens weten we dat de kosten van software voor meer dan de helft in onderhoud zitten, en niet gedocumenteerde systemen een veelvoud in onderhoud kosten.
Scrum bevat geen ontwerpfase omdat wordt aangenomen dat ontwerpen niet begrepen worden en in 1 big bang naar de klant gaan.Dit is vandaag de dag nog maar zelden het geval, aangezien moderne ontwerp technieken als use cases en scherm prototypes door de klant heel goed te begrijpen zijn. Tevens worden ook ontwerpen tegenwoordig in meerdere iteraties opgeleverd in plaats van in 1 big bang. Klanten zijn ook meer en meer bewust van goed opdrachtgeverschap en daar valt ook zorgvuldig reviewen van ontwerpen onder.
Scrum stelt voor om ontwerp over te slaan en vanaf de eerste iteratie werkende software aan de opdrachtgever te laten zien. Dit betekent wel een duurder proces, want als de klant de werkende software niet bevalt moet de code worden aangepast. Als de klant de fout ontdekt in het ontwerp hoeft alleen het ontwerp te worden aangepast, wat een stuk sneller en goedkoper is. Tevens is het veelvuldig ombouwen van een applicatie veelal niet goed voor de code kwaliteit.
De enige ontwerp artifacts in Scrum, waarover voor de bouw wordt overlegd, zijn de User stories (op post-it’s) in de Backlog. De Backlog is een lange platte lijst van gewenste functionaliteit zonder groepering of hiërarchie. Bij veel User stories is dit al snel niet meer praktisch. Over veel gebruikte ontwerp technieken als requirements, use cases en wireframes (en het samenspel daartussen) roept Scrum niets, terwijl lang niet alle wensen in User stories te vatten zijn. User stories hebben weinig structuur waardoor veelal wordt teruggevallen op datgene waarvan ze zijn afgeleid: UML Use cases.
3) Er zijn ontbrekende schakels in het proces model van Scrum

De aantrekkelijke Scrum proces plaatjes laten niet de hele werkelijkheid zien. Met name processen in de beginfase en eindfase van het project missen. Tevens worden veel processen nergens volledig uitgewerkt (wat is het doel van het proces, wie is betrokken/verantwoordelijk, wat is de output, wat zijn de afhankelijkheden).
Enkele voorbeelden van zaken die binnen Scrum bestaan maar waarvoor het creatie en beheersproces mist:
- De “Definition of done” (wanneer is oplevering compleet)
- De (“groomed)” productbacklog, inclusief de uitwerking van de user stories en het groomen
- Testresultaten
- Estimations (wanneer, en hoe vaak worden er inschattingen gemaakt of bijgewerkt, wat gebeurd er als het team de user stories van de product owner te vaag vind?)
Naast dat er processen missen voor benoemde Scrum artifacts, zijn er ook belangrijke artifacts, plus bijbehorende processen, die missen. De belangrijkste twee zijn naar ontwerp en projectmanagement artifacts en processen. In de vorige paragraaf is het ontbreken van ontwerprocessen reeds besproken. Door het geheel ontbreken van een ontwerp en analyse fase vraag ik me af de opdrachtgever tijdig en weloverwogen keuzes kan maken over de kosten en duur van een project.
Tevens missen processen voor vaststellen, rapporteren over, en bewaken van het projectbudget en planning. Gerelateerd daaraan zijn de missende processen voor het omgaan met wijzigingen gedurende het project. De product owner kan de backlog naar wens aanpassen maar er is geen terugkoppeling over de kosten/haalbaarheid/kwaliteitsimpact van wijzigingen.
Conclusie: Not to Scrum ?
Geen enkele partij die software bouwt ontkomt eraan om zijn eigen software ontwikkelingsmethode(s) te ontwerpen en continu te verbeteren. Daarbij is het gebruikelijk dat de beste ideeën uit meerdere methodes worden gecombineerd. Scrum bevat vernieuwende invalshoeken en kan daarmee bijdragen aan een zo’n methode. Daarentegen is Scrum naar mijn mening te licht en onpraktisch om als fundament of zelfstandige methode te dienen (ook niet de combinatie van Scrum plus XP). Van de andere kant vind ik dat iedere bedrijf toch zeker 90% van de sterkte punten uit Scrum zou moeten toepassen in (een van0 zijn methode(s), zoals genoemd in de lijst uit mijn vorige blog.
Bronnen