SAFe roept naar mijn ervaring regelmatig emotie op. Een terugkerend verwijt is dat het eigenlijk 'verkapte waterval' is. En dat is dan natuurlijk bedoeld als een dodelijk argument dat de hele methode direct waardeloos maakt. Want waterval, dat kan echt niet goed zijn. Daar wilden we nou juist vanaf. En inderdaad, als je naar de SAFe plaat kijkt zie de 'lagen' zitten. De conclusie is snel getrokken: SAFe, daar komt niets goeds van. Hierbij de manier waarop ik daar tegenwoordig iets subtieler tegenaan kijk.
SAFe kent drie lagen
De SAFe plaat tekent inderdaad meerdere lagen en kent daarmee drie graden van fijnheid: epics, features en stories. Als je naar de plaat kijkt is je eerste indruk dat iedere laag zijn eigen backlog heeft en deze via een Kanban onderhoudt. De portfoliolaag maakt de epics, daarna maakt de programmalaag features en tenslotte maken de teams de stories. Lekker waterval?
Wat bedoelen we eigenlijk ook al weer met waterval?
De oorspronkelijke betekenis van waterval in de IT gaat ongeveer zo:
- in de eerste stap timmeren we een contract dicht, met ruime marges of ontbindende clausules of andere manieren om de onzekerheid in een later stadium op te vangen.
- Daarna gaan we alle specificaties opstellen tot ze helemaal helder en compleet zijn. Een bekende truc om al niet direct in het contract conflict terecht te komen is om ze MOSCOW op te schrijven, want anders is het al meteen hommeles.
- Dan volgt het globaal ontwerp van het gehele pakket.
- En daarna het detail ontwerp, of ontwerpen (van bijvoorbeeld de infrastructuur, de GUI, de interactie met andere systemen etc.). Ik heb enige jaren 'plezier' mogen hebben aan standaarden hiertoe zoals de MIL-498.
- We gaan alles bouwen
- We integreren de boel
- Dan testen we
- Dan tonen we het eindresultaat aan de eindgebruiker
- En dan gaan we ruziën tot soms de rechtbank aan toe
De essentie van de watervalmethode is niet zozeer dat er een volgorde der dingen is,maar dat we steeds het hele pakket doorschuiven, zonder enige feedback.
Is SAFe dus waterval?
Dit is niet wat SAFe doet. SAFe propageert wel een volgorde der dingen maar voor heel veel organisaties is dat logisch. In een uitvinderscultuur of voor een start-up is het misschien prima om eens wat te bouwen en dan uit te zoeken wat het doet of dat het bij een strategie past (maar ik betwijfel deze aanpak zeer). Het geldt in ieder geval niet voor bijvoorbeeld een commerciële organisatie of overheidsdienst die op een andere manier met zijn klanten wil omgaan of een stuk wetgeving moet implementeren. Die willen wel degelijk vanuit een strategie of opdracht vertrekken en 'stapje voor stapje' tot resultaat komen. En die gunnen we agile werken ook.
Wat doet SAFe dan wel
SAFe heeft het van grof-naar-fijn werken helemaal in zich, bevordert dit zelfs. Het werk begint bij die strategie met mensen die daar goed in zijn. Maar deze mensen stellen geen contract op en ook niet een compleet pakket van eisen. Ze geven een richting aan in een epic.
Vervolgens wordt doorgepakt door features te definiëren. Maar niet alle features hoeven te worden gedefinieerd, laat staan uitgewerkt. De WSJF stuurt hier keurig op waarde en dringendheid. Geen waterval dus, maar kijken wat je binnen die kaders kunt doen.
En tenslotte herhaalt dat spelletje zich op de bouwvloer, waar veel vrijheid is om features uit te specificeren in user stories en aan te vullen of te schrappen.
En tussentijds wordt continue van hoog tot laag demo's gegeven, zodat ieder alle gelegenheid heeft om bij te sturen.
De lagen van SAFe op zijn kop
Nog niet overtuigd? Ik leg het nog wel eens anders uit aan een verstokte purist. Die tekent een backlog als iets wat 'beneden' nog grof is en verder weg, in het midden al fijner en bovenaan helemaal fijn en nauwkeurig, klaar voor implementatie. Zoals het plaatje hiernaast.
Nu komt die: zet je de drie afzonderlijke SAFe lagen op zijn kop (dus de bovenste met epics onderaan en de teamlaag bovenop) en plak je hun backlogs op elkaar, dan heb je datzelfde plaatje! Alleen nu 'op schaal'. Helemaal geen verschil dus, is dat grappig of niet?
Laat het vloeien
Zo gezien is SAFe dus gewoon het samen werken aan een flinke bedrijfsbacklog waar alle teams en 'lagen' samen aan refinen. Natuurlijk is dit geen garantie voor succes. Pullen in plaats van pushen, niet verder refinen dan nodig, elkaar continue betrekken bij het uitwerken/refinen 'per laag', demo's als feedback geven, werken met value streams en behapbare ARTS, dat en nog meer is allemaal heel belangrijk om het ook soepel te laten werken.
Dus is SAFe een verkapte waterval methode? .... echt niet.