Jag läste om Cone of Uncertainty när jag studerade för att få Product Owner-certifieringen. Jag hade aldrig hört talas om detta ramverk tidigare, så naturligtvis bestämde jag mig för att lära mig mer om det och dela med mig av det här.
Grundkonceptet Cone of Uncertainty utvecklades för ingenjörsarbete och konstruktion inom den kemiska industrin av grundarna av AACE International (American Association of Cost Engineers) enligt Wikipedia.
”Det primära syftet med uppskattning av programvara är inte att förutsäga ett projekts resultat; det är att avgöra om projektets mål är tillräckligt realistiska för att projektet ska kunna styras för att uppfylla dem.” – Steve McConnell.
Namnet Cone of Uncertainty användes för första gången av Steve McConnell för att beskriva konceptet i hans Software Project Survival Guide, när han föreslog det som ett klassificeringssystem för standardtyper av uppskattningar med osäkerhetsintervall och presenterade det som en konillustration. Inom programvaruområdet hänvisade Barry Boehm till begreppet som Funnel Curve.
Säkerhetskonus kan användas vid programvaruutveckling där miljön förändras extremt snabbt, bland annat när det gäller tillgänglig teknik och affärsmål. Det är rimligt att säga att ingenjörskostnaderna är direkt proportionella mot mängden osäkerheter i mjukvaruutveckling.
Projekthantering skiljer sig från mjukvaruutveckling där bättre förutsägbarhet och övergripande förståelse av riskerna vanligtvis är möjlig liksom förmågan att drastiskt minska projektriskerna. Inom mjukvaruutveckling gör dock de okända faktorerna och det externa trycket miljön extremt volatil och oförutsägbar.
I synnerhet inom mjukvaruutveckling är målet alltid att arbeta för att minska osäkerheterna och minimera riskerna. Ett sätt att göra det är att inkludera forskning i alla faser och även att ta bort källor till variabilitet från produkten eller projektet så mycket som möjligt.
Ett sätt att åstadkomma detta är att minska antalet beslut om omfattning och resurser. Som vi vet är Scrum ett ramverk som hjälper till med detta. Alternativt kan Lean Startup-metoden tillämpas när man utvecklar programvara.
Säkerhetskonen representerar utvecklingen av mängden osäkerheter i bästa fall under ett projekt. Eftersom du inte har mycket information om projektet i dess inledande faser, särskilt om projektet är relaterat till en ny produkt, kommer uppskattningarna att innehålla många osäkerheter och riskerna kommer att vara höga. Allteftersom mer arbete utförs kommer teamet att ha mer information om produkten och osäkerheterna kommer att minska.
Hur man uppskattar
Det är extremt svårt att förutsäga framgång. Många faktorer kan påverka din uppskattning och bidra till projektets osäkerheter. När du utvecklar uppskattningen är ett bra sätt att börja är att basera din uppskattning på ett annat liknande projekt.
Ett sätt att introducera osäkerhetens kon är att inkludera ett intervall av osäkerheter i din uppskattning. Tanken är att osäkerheterna och variabiliteterna kommer att minska allteftersom projektet utvecklas eftersom projektets början är när antalet osäkerheter är som störst.
Det finns fler osäkerheter i början av ett projekt eftersom många specifika projektdetaljer är okända och kommer att definieras allteftersom produkten utvecklas. Genom att använda osäkerhetskonusen kan du och teamet förstå omfattningen av oförutsägbarheten och även begränsa åtagandena i början för att undvika osäkerheter.
Uppskattningarna bör alltid göras med detta i åtanke och stödjas av tidigare projekts historiska information för att förutsäga det mest sannolika scenariot i ett intervallformat som visas av osäkerhetskonusen.
Mängden variationer kommer att fluktuera beroende på projektfasen och projekttypen. Tänk på att antalet osäkerheter är störst i början av projektet, och allteftersom projektet fortskrider kommer osäkerheterna troligen att minska i de flesta fall.
Främre åtaganden i projektet kommer att redogöra för fler osäkerheter och risker. Förmågan att hantera förväntningarna och se till att dina intressenter har en realistisk förståelse för projektets övergripande risker och antaganden kan hjälpa dig att arbeta bättre med teamet och vinna deras förtroende.
Steve McConnell säger att osäkerhetsfaktorn i början av projektet är lika med 4 (för hög och låg). Åtaganden som görs för tidigt kan leda till ineffektivitet och bristande förtroende och minska förmågan att hantera ett projekt på ett framgångsrikt sätt. Tänk på det!
Agiles roll
Agile hjälper definitivt till att utveckla uppskattningen och tvingar också teamet att ständigt uppskatta allteftersom man lär sig mer, vilket är en fantastisk sak. När man lär sig mer om produkten och marknaden blir det lättare att göra en uppskattning. Agile och Cone of Uncertainty är en kraftfull kombination eftersom Agile hjälper till att ge teamet möjlighet att leverera ett resultat; det är dock inte svaret på alla teamets frågor.
Som marknaden fungerar nuförtiden när vi utvecklar mjukvara bör vi alltid utveckla en strategi för att testa hypotesen och driva innovation så mycket vi kan. Agile hjälper oss definitivt att göra ett bättre jobb med uppskattningar i allmänhet.
Den största skillnaden med Agile är att det tillåter flera iterationer. Teamet kan känna sig mer bekväma med att uppskatta och planera iterationerna i små omgångar medan man lär sig mer om produkten och marknaden.
När vi använder det agila tillvägagångssättet accelererar vi vår förmåga att lära oss med ständiga iterationer och utplacering så att teamet kan validera lärdomarna snabbare och lära sig mer om marknaden, vilket kan minska osäkerheterna.
Hur man tillämpar
Säkerhetskonens ramverk bör ingå i projektets riskhantering och alla kända och okända risker. Målet med ramverket är att hjälpa dig att bättre förstå projektriskerna genom att förbereda dig för osäkerheter.
Ramverkets roll i uppskattningsprocessen är att bestämma det mest sannolika förloppet och även beräkna det höga-låga intervallet av sannolikheter. Detta kan göras med hjälp av formler och baserat på tidigare projekts uppskattningar med hjälp av empiri.
Ramen används i olika typer av produkter och projekt eftersom det är ett effektivt sätt att visa riskerna med en investering. Osäkerhetskonus visar hur stor risken är genom att visa graden av säkerhet genom produktens livscykel i en figur av en tratt.
Empiricism är en stor bundsförvant till ramverket eftersom det är så mycket lättare att mäta något baserat på tidigare, liknande erfarenheter. Konen kan hjälpa dig att avgöra om projektet är genomförbart och möjligt. Förhoppningen är att osäkerheterna med tiden kommer att minska och att ta hänsyn till detta kommer att hjälpa ditt team att utveckla bättre uppskattningar.
Fördelar med att använda osäkerhetskonus:
- Minskar tvetydigheten.
- Bestämmer den mest sannolika uppskattningen.
- Beräknar högt och lågt intervall av sannolikheter.
- Hjälper till att bestämma hur stor risk teamet har råd med och inkrementell finansiering.
- Förstärker vikten av ytterligare forskning.
Tips för uppskattning:
- Oskattningar är osäkra i början av projektet, de är vaga men förhoppningsvis baserade på en empirisk process.
- Skattningar måste ses över regelbundet när mer är känt om projektet.
- Antaganden bör vara transparenta och dubbelkontrolleras dagligen.
- Skattningar bör redovisa osäkerheter och vara synliga i projektplanerna och Kanban-tavlorna.
Fakta om osäkerheter:
- Det är svårt att förstå marknaden och vad den vill ha.
- Marknaden förändras ständigt.
- Konkurrens kommer alltid att finnas där.
Har du kul? ❤