Het kernprobleem bij project plannen
Bij het plannen van gecompliceerde projecten, hebben we vaak te maken met twee behoeftes die zich heel moeilijk lijken te laten verenigen:
-
Voorspelbaarheid: De project manager moet zorgen voor voorspelbare voortgang, hiervoor is er een project plan nodig dat stabiel en overzichtelijk moet zijn, een typische "waterval" omgeving met activiteien, randvoorwaarden, afhankelijkheden, bemensing, etc.
-
Flexibiliteit: Het team moet voortgang maken. Hiervoor moeten taken dynamisch aan de teamleden kunnen worden toegewezen om korte termijn doelen te halen. Die taken kunnen veranderen, de volgorde hangt af van voortgang en voorschrijdend inzicht. Variabiliteit verlangt flexibiliteit en een plan dat continu aangepast wordt op de werkelijkheid op de vloer, een typische "agile/scrum" omgeving dus
Deze twee verdragen elkaar moeilijk. De realiteit? Een plan dat altijd achter loopt bij de realiteit, te gedetailleerd, waarbij we veel bezig zijn om het plan aan te passen aan de situatie op de vloer. Het resultaat is dat elk team zijn eigen planning in een lokale spreadsheet bijhoudt. Die lokale planningen zijn niet op elkaar afgestemd, dus er wordt veel gewacht op elkaar. Een typische omgeving waar multitasking een continue en niet te voorkomen realiteit is. Klinkt dat bekend?
Is er een uitweg uit dit dilemma? Voorspelbaarheid vs flexibiliteit?
Natuurlijk is die uitweg er. Wat we willen hebben is een tool waarbij de PM de taken en afhankelijkheden beheerd. Dat gebeurt op een nivo dat overzicht en goede prioritisering van het werk mogelijk maakt. Een nivo dat focus faciliteerd op goede voorbereiding en uitvoering. Een nivo waarbij we een stabiel plan kunnen maken dat niet om de haverklap moet worden aangepast.
Tegelijk moet er dan de mogelijkheid zijn om per taak een dynamische "Sprint omgeving" te onderhouden. Een mogelijkheid waarbij het team zich zelf organiseert hoe ze deze taak uit willen voeren. Waarbij er flexibiliteit moet zijn om kleine assignments te definieren en prioritiseren en de ruimte om deze prioriteiten ook weer makkelijk bij te stellen. En dat dus niet alleen voor SW, ook voor HW. Dit zou dan ondersteunt moeten worden door een proces waarbij we een dagelijkse stand-ups hebben met het team om kort de voortgang van de assignments te bespreken en te bekijken waar er bijgestuurd moet worden.
Klinkt dat bekend? Natuurlijk, dat is waterval en Agile/Scrum/Kanban in een! Twee kanttekeningen zijn daarbij nodig:
-
Waterval is een goede benadering om zaken te structureren en voorspelbaarheid te creeren maar er zijn twee voorwaarden die niet kunnen worden genegeerd:
-
Zo'n plan mag niet te complex worden. Dat moet niet teveel de details induiken. Daar zijn goede werkmethoden voor, maar dat is voer voor een andere blog!
-
We gaan tegen onverwachte zaken oplopen, niets zo veranderlijk als een plan. Als we daar geen rekening mee houden dan is zo'n plan nog binnen de kortste keren onbruikbaar geworden. Dus de starttijd van de taken moet flexibel zijn. En de enige goede manier die ik ken om dat te realiseren is door buffers te gebruiken.
-
-
Agile is een briljant concept voor projecten waar de scope niet duidelijk is. Daarvoor hebben ze het idee van de open scope bedacht. Een team werkt een vaste tijd (paar weken bijvoorbeeld) en dan wordt bekeken wat er aan functionaliteit is opgeleverd. Wat niet klaar is van wat we hadden bedacht, dat schuift door. Dat geeft immense voordelen voor het flexibel en creatief meebewegen met de klant. Het heeft als nadeel dat het moeilijk plannen kan zijn als we wel degelijk de scope kennen en een integratiepunt moeten waarmaken. Maar wat als we Agile in een waterval omgeving nou eens andersom doen? We plannen werk voor een paar weken en als het sneller klaar is dan starten we eerder met de volgende sprint. Als het langer duurt, dan later. Het idee is dat we moeten bufferen en dat kan in scope of in tijd. Als de tijd vastligt, dan doen we dat in scope. Als de scope vastligt, dan doen we dat in tijd.
Nu weten we wat we moeten doen voor een goed plan, maar hoe we dat dan doen, daarover een andere keer meer. Of je kunt mij benaderen om je daarbij te helpen!