10.15 Schatten en voorspellen
Overzicht en motivatie
Elk softwareteam krijgt dezelfde vraag: wanneer is het klaar? Achter die vraag zit schatting van softwareontwikkelinspanning, de praktijk van voorspellen hoeveel werk iets zal kosten voordat je het hebt gedaan. Het is een van de moeilijkste dingen die we doen, en een van de makkelijkste om slecht te doen. Het probleem is dat software ontdekkingswerk is. Je bouwt iets dat nooit heeft bestaan, en veel van wat je over het probleem zult leren wordt pas zichtbaar terwijl je bouwt. De inspanning van leren voorspellen is werkelijk iets anders dan de inspanning van een bekende taak herhalen voorspellen.
Waarom dit behandelen als eigen discipline in plaats van een hoek van projectmanagement (hoofdstuk 10.6)? Omdat de falen zo consistent en zo duur zijn. Teams committeren zich routinematig aan enkele data waarvoor ze geen bewijs hebben en verdedigen die data lang nadat de werkelijkheid ze heeft tegengesproken. Leiders verwarren een schatting met een belofte. Contracten bevriezen een getal dat in een middag is geproduceerd en houden mensen er een jaar aan vast. Het resultaat is late oplevering, geërodeerd vertrouwen en een cultuur waarin niemand zegt wat hij of zij werkelijk gelooft. Dit goed doen gaat minder over betere wiskunde en meer over eerlijkheid: scheiden wat je weet van wat je hoopt, en onzekerheid communiceren als onzekerheid.
De inzet stijgt sterk in omgevingen van onderneming en overheid. Ondernemingen financieren portfolio’s van in elkaar grijpende initiatieven tegen jaarbudgetten en verwachten vaste getallen om kapitaal toe te wijzen (hoofdstuk 10.1). Overheden doen publieke toezeggingen onder begrotingsregels, tekenen contracten met vaste prijs en leggen verantwoording af aan wetgevers wanneer een datum uitloopt. In beide werelden is de druk om een zelfverzekerd enkel getal te produceren immens, en de diepe onzekerheid die dat getal onbetrouwbaar maakt verdwijnt niet omdat iemand belangrijks zekerheid wil. Dit hoofdstuk bepleit een andere houding: schat wanneer het je helpt beslissen, voorspel met bewijs in plaats van optimisme en vertel de waarheid over het bereik.
Kernprincipes
- Een schatting is een voorspelling, geen belofte. Houd haar gescheiden van doelen en toezeggingen.
- Onzekerheid is echt, dus druk haar uit. Een bereik met een kans verslaat een valse enkele datum.
- Het verleden voorspelt de toekomst beter dan optimisme. Geef de voorkeur aan gemeten historie boven verse gissingen.
- Ontbind om te begrijpen, voorspel om je te committeren. Kleine plakken verminderen zowel risico als de behoefte te schatten.
- Neem de buitenkijk. Vergelijk met vergelijkbare eerdere inspanningen voordat je je binnenverhaal vertrouwt.
- Voorspel continu opnieuw. Een voorspelling die eenmaal wordt gedaan en nooit bijgewerkt is decoratie.
- Schat alleen wanneer het antwoord een beslissing zal veranderen. Anders is het verspilling.
Aanbevelingen
Scheid de schatting, het doel en de toezegging
De meest nuttige zet in dit hele hoofdstuk kost niets: houd drie ideeën gescheiden. Een schatting is je eerlijke voorspelling van hoe lang iets zal duren, met haar onzekerheid eraan vast. Een doel is een bedrijfsdoelstelling die je graag zou halen, zoals een lancering op een vakbeurs of een wettelijke deadline. Een toezegging is een belofte die je aan iemand anders doet en van plan bent na te komen. Dit zijn drie verschillende dingen, en ze samenvouwen is hoe projecten zichzelf gaan voorliegen. Wanneer een leider “ongeveer drie tot vijf maanden” hoort en “drie maanden” opschrijft, en het verkoopteam een klant “twaalf weken” belooft, is een schatting stilletjes een toezegging geworden zonder dat iemand besloot het risico te accepteren.
Zeg elke keer welke je geeft. Als om een datum wordt gevraagd, antwoord dan met een schatting uitgedrukt als bereik, laat het bedrijf dan een doel stellen tegen haar en bewust besluiten waaraan het zich committeert. Een toezegging moet een keuze zijn gemaakt met open ogen, waarbij de onzekerheid van de schatting wordt gewogen tegen de kosten van missen. Deze discipline sluit direct aan op hoe je organisatie beslissingen neemt en vastlegt (hoofdstuk 1.5): een toezegging is een beslissing en verdient de nauwkeurigheid van een beslissing in plaats van een knik in de gang.
Begrijp waarom schattingen fout zijn, en in welke richting
Softwareschattingen zijn niet willekeurig fout. Ze zijn fout op voorspelbare, systematische manieren, en het patroon kennen laat je ervoor corrigeren. Vroeg in elke inspanning zit je binnen de kegel van onzekerheid: aan het begin kan je schatting makkelijk een factor vier in beide richtingen afwijken, en het bereik versmalt pas naarmate je bouwt en leert. Je committeren aan een precies getal aan de brede mond van de kegel is je committeren aan een cijfer dat je nog niet kunt onderbouwen.
Bovenop die structurele onzekerheid zit een menselijke vertekening. De planningsfout is onze betrouwbare neiging de tijd, kosten en het risico van onze eigen plannen te onderschatten terwijl we het beste geval voorstellen. We zien het gelukkige pad voor ons, vergeten de onderbrekingen en de integratieverrassingen en de zieke dagen en produceren een getal dat aanneemt dat niets misgaat. Marge toevoegen is de gebruikelijke defensieve respons, maar marge op gevoel is slechts een tweede gok bovenop de eerste en wordt weggeonderhandeld zodra schema’s krap worden. De remedie is niet meer wilskracht. Het is methode. Baseer voorspellingen op wat vergelijkbaar werk werkelijk kostte, niet op hoe dit werk vanbinnen voelt.
Gebruik decompositie en deskundigenoordeel, en ken hun grenzen
De werkpaarden zijn het waard te kennen en te begrenzen. Decompositie breekt een groot product op in kleinere stukken waarover je kunt redeneren en rolt de stukken dan op. Het helpt omdat mensen kleine, vertrouwde dingen veel beter schatten dan grote, vage, en omdat het optellen van veel onafhankelijke items sommige overschattingen sommige onderschattingen laat opheffen. De grens is dat decompositie het werk tussen de vakjes mist: integratie, coördinatie en de taken waaraan je niet dacht ze te noemen. Deskundigenoordeel en schatten via analogie (“dit is als de rapportagemodule die we vorig jaar bouwden, die twee maanden duurde”) zijn snel en vaak verrassend goed, maar erven het optimisme en de blinde vlekken van de schatter.
Geef voor alles waar je een getal op moet zetten de voorkeur aan driepuntsschatting, die om een optimistisch, een meest waarschijnlijk en een pessimistisch cijfer vraagt en ze combineert, vaak als het gewogen PERT-gemiddelde (optimistisch plus vier keer meest waarschijnlijk plus pessimistisch, gedeeld door zes). De waarde is niet de precieze formule. Het is dat driepuntsschatting je dwingt je onzekerheid hardop te zeggen en een bereik produceert in plaats van een vals punt. Relatieve groottemethoden zoals storypoints en t-shirtmaten (small, medium, large, extra-large) omzeilen de valkuil van exacte uren voorspellen door items met elkaar te vergelijken. Ze werken goed voor ordenen en ruwe capaciteit, maar behandel ze als invoer voor een voorspelling, niet als valuta. Punten zijn geen uren, en velocity maal punten vermenigvuldigen om een datum te produceren voert elk probleem opnieuw in dat relatieve groottebepaling moest vermijden.
Voorspel probabilistisch uit je eigen flowdata
Hier is de verschuiving die alles verandert: houd op mensen te vragen te gokken hoe lang werk zal duren en begin te meten hoe snel je team werk werkelijk afrondt. Je leveringspijplijn (hoofdstuk 11.2) produceert al de data die je nodig hebt. Als je doorvoer volgt, het aantal items dat je team per week afrondt, kun je de toekomst voorspellen uit het verleden in plaats van uit hoop. Een team dat de afgelopen drie maanden zes tot elf items per week sloot, zal met hoge waarschijnlijkheid ruwweg vier tot zeven weken doen over veertig resterende items. Die voorspelling rust op bewijs en werkt zichzelf elke week bij naarmate nieuwe data binnenkomt.
De rigoureuze versie draait een simulatie met de Monte Carlo-methode: trek duizenden keren uit je historische wekelijkse doorvoer om een verdeling van mogelijke einddata te bouwen en lees het antwoord dan af als kans. “We zijn 85% waarschijnlijk klaar op 14 maart, en 50% waarschijnlijk op 28 februari” is een veel nuttigere en eerlijkere uitspraak dan “het is klaar op 1 maart.” Deze aanpak sluit direct aan op wachtrijtheorie (hoofdstuk 11.3): doorlooptijd is gelijk aan werk in uitvoering gedeeld door doorvoer, dus dezelfde flowstatistieken die bepalen hoe werk beweegt bepalen ook wanneer het arriveert. Probabilistisch voorspellen heeft historie en een redelijk stabiel proces nodig, wat precies is waarom het teams beloont die werk klein houden en flow gestaag. Het verwijdert ook stilletjes het merendeel van de schattingsceremonie, omdat je niet langer elk item hoeft te groottebepalen om te weten wanneer de batch landt.
Neem de buitenkijk voor grote programma’s
Voor grote, lange, dure programma’s kunnen individuele schattingen en zelfs flowvoorspellingen misleiden, omdat een nieuw programma nog geen doorvoerhistorie heeft en haar binnenverhaal precies is waar de planningsfout het hardst bijt. Het tegengif is referentieklassevoorspelling: vind een referentieklasse van vergelijkbare voltooide inspanningen, kijk hoe lang en hoeveel ze werkelijk kostten en plaats je programma in die verdeling voordat je je eigen bottom-upplan vertrouwt. Als vergelijkbare platformvervangingen in je bedrijf gemiddeld 60% boven hun oorspronkelijke schattingen uitkwamen, is dat getal beter bewijs over het jouwe dan het nette plan dat je team zojuist samenstelde. De buitenkijk voelt ontmoedigend, en dat is precies haar waarde: ze biedt tegenwicht aan het optimisme dat elk vers plan draagt. Gebruik haar voor portfoliofinanciering en begroting van megaprogramma’s (hoofdstuk 10.1), waar de kosten van een systematische overschrijding in miljoenen en geloofwaardigheid worden gemeten.
Schat minder door kleiner te snijden, en sequence op kosten van vertraging
Soms is de juiste hoeveelheid schatten bijna geen. Het #NoEstimates-argument constateert in zijn redelijke kern dat als je werk snijdt in stukken klein genoeg dat elk een dag of twee duurt, de schatting van een enkel stuk ophoudt te tellen. Je telt gewoon de doorvoer en voorspelt uit de telling. Wanneer plakken uniform en klein zijn, is uitgebreide groottebepaling verspilling: het verbruikt inspanning om precisie te produceren die de voorspelling niet nodig heeft. Dit is geen argument tegen vooruitdenken. Het is een argument voor individuele voorspellingen goedkoop maken door individuele stukken klein te maken.
Wat nog een beslissing nodig heeft is volgorde. Wanneer je niet alles tegelijk kunt doen, sequence op kosten van vertraging: de waarde die je verliest voor elke tijdseenheid dat een bepaald stuk werk te laat is. Een functie die volgend kwartaal een groot contract ontsluit heeft hoge kosten van vertraging en moet voor een nice-to-have springen met geen, zelfs als de nice-to-have makkelijker is. Kosten van vertraging afwegen tegen inspanning (de heuristiek “weighted shortest job first” uit lean denken) vertelt je veel betrouwbaarder wat je hierna moet doen dan een achterstand gesorteerd op onderbuikgevoel. Merk op dat dit het hele gesprek herkadert: in plaats van “wanneer is alles klaar,” wat valse precisie uitnodigt, vraag je “wat is het waardevolste ding om hierna af te maken,” wat je werkelijk kunt beantwoorden.
Afwegingen: voor- en nadelen
| Aanpak | Voordelen | Nadelen |
|---|---|---|
| Schatting met één datum | Eenvoudig. Wat belanghebbenden vragen | Precies fout. Verbergt risico. Wordt een toevallige toezegging |
| Driepunts- / PERT-schatting | Dwingt onzekerheid naar buiten. Goedkoop | Nog steeds een gok. De formule impliceert valse rigeur |
| Storypoints / t-shirtmaten | Snel. Goed voor ordenen en ruwe capaciteit | Geen uren. Velocity-rekenwerk smokkelt enkele data terug |
| Probabilistische flowvoorspelling | Op bewijs gebaseerd. Werkt zichzelf bij. Eerlijke bereiken | Vraagt historie en stabiele flow. Ziet er minder “zeker” uit |
| Referentieklassevoorspelling | Corrigeert optimisme bij grote programma’s | Vraagt vergelijkbare eerdere inspanningen. Ontmoedigend om te horen |
| #NoEstimates (kleine plakken) | Verwijdert verspilling. Voorspel door tellen | Vraagt gedisciplineerd snijden. Verontrustend voor financiers die een getal willen |
De centrale spanning is de zekerheid die mensen willen tegenover de eerlijkheid die het werk eist. Financiers, bestuurders, contracten en wetgevers vragen om een vaste enkele datum omdat een enkele datum makkelijk te begroten, te beloven en te verdedigen is. Software ondersteunt er zelden een. Los de spanning op door niet zekerheid te fabriceren en niet te weigeren te antwoorden, maar in de valuta van kans te antwoorden: een bereik met zekerheidsniveaus, opnieuw voorspeld naarmate bewijs binnenkomt. Combineer het met kleine plakken zodat vroege, echte opleveringen verre, ingebeelde vervangen als wat mensen vertrouwen. Een gedemonstreerde increment is meer waard dan elke schatting.
Vragen om met je team te bespreken
Wanneer iemand je om een datum vraagt, geef je dan een schatting, een doel of een toezegging, en weet iedereen in de ruimte welke? Dit is de vraag die de meeste schade voorkomt voor de minste inspanning. In de meeste organisaties vallen deze drie samen tot één getal op het moment dat het de mond van het team verlaat, en niemand besloot het risico te accepteren dat een voorspelling een belofte werd. Neem een echt voorbeeld mee: neem je laatste toegezegde deadline en volg haar terug naar het gesprek waar ze voor het eerst werd uitgesproken, en vraag of ze ooit iets anders was dan een hoopvolle gok in een pak. Het antwoord moet je taal blijvend veranderen, zodat schattingen als bereiken de deur uitgaan, doelen worden benoemd als bedrijfswensen en toezeggingen bewust worden gedaan met de onzekerheid gewogen en als beslissing vastgelegd (hoofdstuk 1.5). Als je team niet kan wijzen waar een toezegging bewust werd geaccepteerd, doe je beloftes per ongeluk.
Zou je je volgende release kunnen voorspellen uit gemeten doorvoer in plaats van uit verse schattingen, en wat houdt je tegen? De meeste teams hebben de data al om “wanneer is het klaar” empirisch te beantwoorden, ongebruikt in de tool die hun werk volgt. Als je weet hoeveel items je team de afgelopen kwartaal per week heeft afgerond, kun je een verdeling van einddata simuleren en een kans noemen in plaats van een wens. Neem je werkelijke doorvoerhistorie en je resterende aantal items mee en vergelijk de op flow gebaseerde voorspelling met welke datum het team ook op gevoel schatte. Het gat is meestal leerzaam. Als de blokkade is dat je items wild verschillen in grootte of je flow grillig is, is dat zelf de bevinding, want onstabiele flow is een leveringsprobleem dat het repareren waard is ongeacht (hoofdstuk 11.2, 11.3). Van schatten naar meten gaan is vaak minder een toolingverandering dan een besluit je eigen historie boven je optimisme te vertrouwen.
Heb je voor je grootste huidige programma de buitenkijk genomen, of alleen een binnenplan opgebouwd? Grote programma’s zijn waar optimisme samengesteld oploopt tot dure overschrijdingen, en waar een zelfverzekerd bottom-upplan het meest verleidelijk en het minst betrouwbaar is. De discipline is een referentieklasse van vergelijkbare voltooide inspanningen binnen of buiten je organisatie te noemen, te vinden wat ze werkelijk kostten en hoe lang ze werkelijk duurden en je programma eerlijk in die verdeling te plaatsen voordat je je eigen getallen verdedigt. Neem de data mee: hoe zijn vergelijkbare initiatieven hier boven hun eerste schattingen uitgekomen, en neemt je huidige plan stilletjes aan dat je ze allemaal zult verslaan? Als dat zo is, wed je erop uitzonderlijk te zijn, een weddenschap die de basisfrequenties betrouwbaar verliezen. De buitenkijk maakt je voorspelling minder vleiend en veel verdedigbaarder tegenover de financiers en auditors die zich het getal herinneren dat je gaf (hoofdstuk 10.1).
Wanneer een financier, een contract of een wetgever één vaste datum eist, hoe antwoord je zonder te liegen of te weigeren? Hier is de druk het felst en bezwijken eerlijke teams het vaakst, omdat “70% waarschijnlijk in september” ontwijkend klinkt naast het zelfverzekerde “september” van een concurrent. Voor een grote organisatie vermenigvuldigen de inzetten: één vaste datum plant zich voort in budgetten, afhankelijke programma’s en publieke beloftes, dus een getal gekozen voor comfort wordt een systemische verplichting op het moment dat het uitloopt. Neem de taal mee die je werkelijk van plan bent te gebruiken, een uitgewerkt voorbeeld van een bereik met zekerheidsniveaus en een kleine vroege increment waaraan je je stevig kunt committeren terwijl je latere reikwijdte als gefinancierd bereik laat. De concurrerende overweging is echt, want sommige deadlines (een wettelijke overgang, een lancering op een vakbeurs) zijn werkelijk vast, en de juiste zet daar is de datum vast te zetten en de reikwijdte te laten meebuigen in plaats van te doen alsof de inspanning zeker is. Koppel dit in omgevingen van onderneming en overheid aan hoe het contract is gevormd: een modulaire, per increment gefinancierde overeenkomst laat je je eerlijk aan een waardevolle kern committeren, terwijl één contract met vaste prijs en vaste reikwijdte verankerd aan een verre mijlpaal precies de valse zekerheid afdwingt die de overschrijding en de krantenkop produceert.
Hoe beslist je team wat het hierna bouwt, en zou expliciet sequencen op kosten van vertraging de volgorde veranderen? De meeste achterstanden worden geordend door een mengeling van onderbuik, wie het luidst riep en ruwe inspanning, wat stilletjes optimaliseert voor makkelijke winsten in plaats van waardevolle. Kosten van vertraging, de waarde die je verliest voor elke tijdseenheid dat een stuk werk te laat is, herformuleert de vraag van “wanneer is alles klaar” naar “wat is het waardevolste ding om hierna af te maken,” wat je werkelijk met bewijs kunt beantwoorden. Neem drie of vier echte achterstandsitems mee met een eerlijke schatting van de waarde die elk ontsluit en wanneer die waarde verloopt, rangschik ze dan op verloren-waarde-per-week tegen inspanning en vergelijk die volgorde met je huidige plan. De herordening is meestal verrassend en moeilijk te weerleggen. De concurrerende overweging is dat kosten van vertraging zelf een schatting zijn en kunnen worden bespeeld door wie zijn item eerst wil, dus noem wie de getallen bezit en hoe ze worden aangevochten. Voor een portfolio van een onderneming of een overheidsprogramma is deze discipline wat je sequencingbeslissingen laat verdedigen tegenover belanghebbenden die elk geloven dat hun initiatief eerst moet, omdat de volgorde op vermelde waarde rust in plaats van politiek.
Wie voorspelt opnieuw, hoe vaak en wie is verantwoordelijk voor handelen wanneer de voorspelling beweegt? Een voorspelling die eenmaal bij de kickoff wordt gedaan en nooit herzien is decoratie, en de duurste uitlopen zijn degene die een live voorspelling maanden voordat de deadline ze onweerlegbaar maakte had getoond. Voor een groot team is het falen zelden de afwezigheid van data en meestal de afwezigheid van een vast ritme en een benoemde eigenaar: doorvoer drijft af, de verdeling van einddata verschuift naar rechts en niemand wiens taak het is het op te merken kijkt. Neem je werkelijke ritme van herprognose mee (of geef toe dat er geen is), de laatste keer dat een voorspelling een beslissing veranderde en de afdrijving die je hebt gezien sinds de huidige toezegging werd gedaan. De concurrerende overweging is voorspellingsmoeheid, want te rumoerig opnieuw voorspellen nodigt tot gedoe uit en erodeert vertrouwen, dus spreek een verstandig interval af en een drempel die escalatie triggert in plaats van op elke wiebel te reageren. Koppel dit in contexten van onderneming en overheid aan toezicht: breng governanceorganen volgens een vast schema op de hoogte van het bijgewerkte kansbereik, zodat een uitloop boven water komt als beheerste herprognose waarop leiders kunnen handelen in plaats van een verrassing onthuld bij de mijlpaal.
Sectorperspectief
Startup. Sla de schattingsceremonie bijna helemaal over. Snijd werk in stukken van een tot twee dagen, tel wat je elke week afrondt en noem oprichters en investeerders een versmallend bereik in plaats van een heroïsche enkele datum. Je historie is kort en je proces volatiel, dus leun op de kegel van onzekerheid als eerlijke verklaring in plaats van excuus, en voorspel elke vrijdag opnieuw naarmate het beeld scherper wordt.
Kleinbedrijf. Je hebt geen schattingsspecialist en geen zin in groottebepalingsvergaderingen, dus laat de tools die je al draait het werk doen: de meeste taakvolgers tonen doorvoer gratis, en een lichte voorspelling daaruit verslaat een gegokte deadline. Weersta de drang zware planningssoftware te kopen die je niet kunt bemannen. Een eenvoudige wekelijkse telling van afgeronde items en een gewoon bereik beantwoordt “wanneer is het klaar” goed genoeg voor de toezeggingen die je werkelijk aan klanten doet.
Grote onderneming. Het probleem is consistentie over veel teams die een portfolio financieren tegen een jaarlijkse kapitaalcyclus (hoofdstuk 10.1). Standaardiseer op bereiken met zekerheidsniveaus in plaats van enkele data, eis referentieklassevergelijkingen voor grote programma’s en zet flowstatistieken op zodat gissingen binnen een kwartaal plaatsmaken voor op doorvoer gebaseerde voorspellingen. Bestuur schatten als gedeelde praktijk met heldere definities van schatting, doel en toezegging, zodat een getal geproduceerd in één divisie hetzelfde betekent wanneer het bij de raad aankomt.
Overheid. Aanbestedingsregels en publieke verantwoording geven alles vorm. Een gemiste publieke datum wordt een krantenkop en een auditbevinding, dus geef de voorkeur aan modulaire, per increment gefinancierde contracten boven één toezegging met vaste prijs en vaste reikwijdte verankerd aan een verre mijlpaal. Breng toezichtsorganen in gewone taal op de hoogte met probabilistische voorspellingen en referentieklassebewijs, publiceer zekerheidsniveaus eerlijk en laat gedemonstreerde werkende increments het bewijs worden dat het publiek en auditors vertrouwen in plaats van de handtekening van een aannemer op een optimistisch plan.
Voorbeelden
Startup. Een startup van negen personen die zich voorbereidt op haar Series A-demo moet weten of een sleutelintegratie klaar zal zijn. In plaats van de oprichters investeerders een datum te laten beloven noemt de leider een schatting als bereik en legt de kegel van onzekerheid erachter uit. Het team sluit vijf tot negen achterstandsitems per week, dus draaien ze een snelle Monte Carlo-voorspelling op het resterende werk en melden “80% waarschijnlijk in de derde week van het kwartaal, kans fifty-fifty een week eerder.” Ze snijden de integratie in stukken van twee dagen zodat geen enkele schatting veel uitmaakt, sequencen op kosten van vertraging om eerst het voor investeerders zichtbare pad te bouwen en voorspellen elke vrijdag opnieuw. Investeerders krijgen een eerlijke, versmallende projectie in plaats van een zelfverzekerd getal dat zou zijn uitgelopen.
Grote onderneming. Een retailer die haar orderbeheerplatform vervangt moet het programma financieren via een jaarlijkse kapitaalcyclus die om een getal vraagt. Het programmakantoor weerstaat de drang het nette bottom-upplan te verdedigen en bouwt in plaats daarvan een referentieklasse uit drie vergelijkbare platformvervangingen, twee intern en één publiek gedocumenteerd, die hun oorspronkelijke schattingen met 50% tot 80% overschreden. Ze financieren tegen het getal van de buitenkijk, drukken het schema uit als kansbereik in plaats van een vaste go-live en zetten flowstatistieken op vanaf het eerste leverende team, zodat binnen een kwartaal de gok wordt vervangen door een op doorvoer gebaseerde voorspelling die maandelijks wordt bijgewerkt. Wanneer één stroom heet loopt, toont de herprognose het vroeg, en leiderschap herbalanceert in plaats van de uitloop bij de deadline te ontdekken.
Overheid. Een agentschap dat een uitkeringssysteem moderniseert opereert onder begrotingen en publiek toezicht, waar een gemiste publieke datum een krantenkop is. In plaats van één contract met vaste prijs en vaste reikwijdte verankerd aan één verre mijlpaal koopt het modulaire increments in en committeert zich publiekelijk aan een waardevolle kern die vroeg wordt opgeleverd, met latere reikwijdte uitgedrukt als gefinancierd bereik in plaats van belofte. Programmaleiders brengen toezichtsorganen op de hoogte met probabilistische voorspellingen en referentieklassevergelijkingen, zekerheidsniveaus in gewone taal uitleggend, zodat “70% in september” wordt begrepen als precies dat. Gedemonstreerde werkende increments worden het bewijs dat het publiek vertrouwt, sterker dan elke schatting die een aannemer kon ondertekenen.
Zakelijke onderbouwing: motivatie, ROI en TCO
Het rendement van eerlijk schatten en voorspellen wordt gedomineerd door vermeden catastrofe. Grote softwareinspanningen lopen veel vaker over of mislukken dan dat ze een oorspronkelijk vast plan halen, en de verliezen stapelen samengesteld op: gezonken kosten, misgelopen waarde door late oplevering, noodbestedingen om te herstellen en de erosie van vertrouwen die volgt op een gebroken publieke toezegging. De praktijken hier (schatting van toezegging scheiden, voorspellen uit echte doorvoer, de buitenkijk nemen bij grote programma’s) zijn degene die een programma van die faalcurve af bewegen. Je koopt geen nauwkeurigere kristallen bol. Je koopt eerdere, ware informatie over waar je staat, waarmee je kunt corrigeren zolang correctie nog goedkoop is.
Op total cost of ownership verlaagt de verschuiving van schattingsceremonie naar gemeten voorspellen de kosten meestal in plaats van ze te verhogen. Uitgebreid schatten vooraf is duur om te produceren en veroudert op het moment dat het werk begint, terwijl een op doorvoer gebaseerde voorspelling vrijwel gratis is zodra je leveringspijplijn de data uitzendt. Beide uitersten kosten geld: te veel schatten (eindeloze groottebepalingsvergaderingen die precisie produceren die niemand gebruikt) en te weinig voorspellen (blind committeren en later voor de overschrijding betalen). Zet voor leiderschap de volledig belaste kosten van je laatste grote overschrijding naast de bijna nulkosten van doorvoer volgen en bereiken noemen, en toon hoe een voorspelling met de buitenkijk vanaf het begin een financierbare verwachting had gesteld.
Antipatronen en valkuilen
- Toezeggingen met één datum: een bereik samengevouwen tot één getal en dan verdedigd voorbij het bewijs.
- Schattingswitwassen: een hoopvolle gok die door de keten omhoog gaat tot ze verhardt tot een contractuele belofte.
- Velocity als schemamotor: storypoints maal velocity vermenigvuldigen om een precieze datum te fabriceren.
- Marge op gevoel: een tweede gok bovenop de eerste, onder druk weggeonderhandeld.
- Alleen binnenkijk: een vers bottom-upplan vertrouwen terwijl wordt genegeerd wat vergelijkbare programma’s werkelijk kostten.
- Alles schatten: kleine, uniforme plakken groottebepalen waarvan individuele schattingen geen beslissing veranderen.
- Bevroren voorspellingen: een voorspelling eenmaal bij de kickoff gedaan en nooit bijgewerkt naarmate de werkelijkheid arriveert.
- Precisietoneel: uren tot op twee decimalen noemen aan de brede mond van de kegel van onzekerheid.
Volwassenheidsmodel
- Niveau 1, Initiëren: Schattingen zijn enkele data geproduceerd uit onderbuikgevoel en behandeld als beloftes. Geen onderscheid tussen schatting, doel en toezegging. Voorspellen is reactief en ad hoc. Overschrijdingen verrassen iedereen en worden het team verweten.
- Niveau 2, Ontwikkelen: Enig gestructureerd schatten bestaat (decompositie, storypoints, driepuntscijfers), maar de praktijk varieert per team. Schattingen zijn nog meestal enkele getallen. Velocity wordt gebruikt om data te projecteren. Voorspellingen worden eenmaal bij de kickoff gedaan en zelden herzien.
- Niveau 3, Standaardiseren: Een gedocumenteerde standaard wordt over de organisatie afgedwongen: schattingen worden uitgedrukt als bereiken met vermelde onzekerheid, schatting, doel en toezegging worden per definitie gescheiden gehouden, teams volgen doorvoer en voorspellen volgens een vast ritme opnieuw, en grote programma’s moeten referentieklassevergelijkingen gebruiken.
- Niveau 4, Beheersen: De praktijk wordt gemeten en beheerst met data. Voorspellingsnauwkeurigheid wordt gevolgd tegen werkelijke uitkomsten en kalibratie wordt gecontroleerd, zodat je kunt zeggen of je “80% voor”-data werkelijk acht van de tien keer landen. Uitgangswaarden van doorvoer en doorlooptijd worden onderhouden. Kosten van vertraging worden gekwantificeerd. Afdrijving van voorspellingen wordt bewaakt tegen drempels en triggert escalatie. Toezeggingen worden gedaan tegen bewijs in plaats van optimisme.
- Niveau 5, Orkestreren: Probabilistisch voorspellen uit flowdata is continu en vertrouwd omdat kalibratiehistorie haar eerlijkheid heeft bewezen. Toezeggingen zijn bewuste beslissingen die zekerheid tegen kosten wegen. Werk is klein genoeg gesneden dat schatten minimaal is en kosten van vertraging de volgorde drijven. Schatten is geïntegreerd met portfoliofinanciering en risicoplanning, en de organisatie herafbakent en herbalanceert routinematig naarmate voorspellingen bewegen, het plan aanpassend aan bewijs in plaats van het oorspronkelijke getal te verdedigen.
Ideeën voor discussie
- Wat zou er in je organisatie veranderen als elke schatting het team als bereik met zekerheidsniveau moest verlaten, en enkele data verboden waren?
- Waar besteed je inspanning aan het schatten van werk dat al klein en uniform genoeg is om door tellen te voorspellen?
- Als je de doorvoer van de laatste twee kwartalen in een Monte Carlo-simulatie voerde, zou de voorspelling dan overeenkomen met de data waaraan je je werkelijk committeerde?
- Wat is voor je grootste programma de eerlijke referentieklasse, en hoe sterk spreekt de basisfrequentie je huidige plan tegen?
- Hoe bepaalt je team vandaag de volgorde, en zou expliciet ordenen op kosten van vertraging veranderen wat je hierna bouwt?
- Wanneer in je organisatie een toezegging wordt geaccepteerd, wordt de onzekerheid dan vastgelegd als onderdeel van de beslissing, of verdwijnt ze op het moment dat de datum is opgeschreven?
Belangrijkste inzichten
- Houd de schatting, het doel en de toezegging gescheiden. Ze samenvouwen is hoe projecten zichzelf gaan voorliegen.
- Schattingen zijn systematisch fout in bekende richtingen: de kegel van onzekerheid verbreedt vroeg werk, en de planningsfout maakt optimisme de standaard.
- Geef de voorkeur aan probabilistisch voorspellen uit gemeten doorvoer boven verse gissingen. Noem bereiken en zekerheidsniveaus en voorspel continu opnieuw.
- Neem de buitenkijk met referentieklassevoorspelling bij grote programma’s, waar optimisme het duurst is (hoofdstuk 10.1).
- Snijd klein zodat individuele schattingen ophouden te tellen, en sequence op kosten van vertraging in plaats van onderbuik.
- Schat alleen wanneer het een beslissing verandert. Anders is het verspilling. Zie hoofdstuk 10.6 (projectmanagement), 11.2 (oplevering), 11.3 (wachtrijtheorie) en 1.5 (besluitvorming en governance).
Referenties en verder lezen
- Steve McConnell, Software Estimation: Demystifying the Black Art.
- Daniel Vacanti, Actionable Agile Metrics for Predictability and When Will It Be Done? (probabilistic forecasting from flow data).
- Troy Magennis, Forecasting and Simulating Software Development Projects (Monte Carlo methods).
- Bent Flyvbjerg and Dan Gardner, How Big Things Get Done (reference class forecasting and megaprojects).
- Daniel Kahneman, Thinking, Fast and Slow (the planning fallacy and the outside view).
- Donald Reinertsen, The Principles of Product Development Flow (cost of delay and queue economics).
- Vasco Duarte, NoEstimates: How to Measure Project Progress Without Estimating.
- Frederick Brooks, The Mythical Man-Month (why software schedules go wrong).
- Todd Little, “Schedule Estimation and Uncertainty Surrounding the Cone of Uncertainty” (IEEE Software, 2006).