Utforska kontinuerlig planering

Slutförd

Kontinuerlig planering är en av de åtta DevOps-funktionerna.

Upptäck varför kontinuerlig planering är nödvändigt

Låt oss gå igenom en fallstudie av ett program som utvecklats av en myndighet mellan 2000 och 2005. Projektet var inte i närheten av att slutföras när det officiellt övergavs i januari 2005, efter att ha förvandlats till ett fullständigt fiasko. Förutom att slösa minst 100 miljoner dollar gav misslyckandet omfattande kritik till byrån och dess direktör.

Ett andra projekt startades 2006, med liknande katastrofala resultat. De två insatserna använde stor design framför och vattenfallsutvecklingsmetodiken, med ett klassiskt planerat big bang go-live-evenemang. De slutade med ingenting levererat och hundratals miljoner dollar spenderade.

Diagram shows the government agency project timeline.

Varför misslyckades dessa försök?

  • Stor design i förväg – 200-personersteamet tillbringade sex månader med att skapa kraven.
  • Skiftande prioriteringar – en katastrof inträffade en del av projektet, vilket resulterade i omfattande omfångsändringar – och ytterligare 300 personer arbetade i sex månader, vilket resulterade i 600 sidor med krav.
  • Bortkastad ansträngning och omarbetning ledde till missade tidsgränser och teamutbrändhet – 700 000 rader kod skrevs och skrevs om.

I december 2010 startades och samlokalades en Scrum Studio. Antalet anställda minskade från 400 på de ursprungliga projekten till 40. Designen gick från 600 sidor med krav till 670 användarberättelser. Teamet levererade kod och demonstrerade nya funktioner varannan vecka. Efter några sprintar blev det möjligt att prognostisera grova tidsskalor och planera inkrementella affärsförändringar. De var kodade i december 2011.

Men varför är det svårt att planera väl i detalj?

Alan Turing utvecklade en maskin under andra världskriget för att knäcka krypteringsenheten som kallas Enigma Machine.

Turing var tvungen att ständigt dechiffrera nya koder för att rädda liv. Istället för att ge upp på grund av den till synes oändliga komplexiteten visste Turing att han bara behövde knäcka små detaljer för att ge vika för större resultat:

" Vi kan bara se en kort sträcka framåt, men vi kan se mycket där som behöver göras."

Ambitiösa programvaruprojekt är alltid komplexa. Men låt inte komplexiteten överväldiga dig. Kör i stället där det finns klarhet: på kort sikt.

Planera kontinuerligt och effektivt med tydlig riktning, fokus och flexibilitet som förlitar sig på mål och viktiga resultat (OKR)

Innan vi definierar kontinuerlig planering måste vi introducera ett viktigt koncept och ramverk som hjälper dig att planera kontinuerligt och effektivt med tydlig riktning, fokus och flexibilitet.

Mål och viktiga resultat (OKR) är ett ramverk för målinställning som är utformat för att koppla samman strategiska mål som fastställts av ledningen med de dagliga aktiviteterna för körningsteam.

Viktigt!

OKR:er hjälper dig att identifiera bästa möjliga resultat och skapa klarhet kring hur verklig framgång ser ut.

OKR:er anges vanligtvis kvartalsvis för skarpt fokus och flexibilitet.

Målet är riktningen och det viktigaste resultatet måste vara mätbart. I slutändan kan du titta, och utan några argument, bestämma: Gjorde jag det, eller gjorde jag det inte? Ja? Nej? Enkel. Ingen bedömning i det.

OKR:er lokaliseras nedåt och i alla team i organisationen för att demonstrera anpassning och transparens.

Vad är OKR?

Det finns tre viktiga aspekter av OKR:

  • De utgör ett ramverk för att definiera tydliga mål, vilket ger klarhet om avsikten och riktningen på alla nivåer i organisationen.

  • De är förstärkta med mätbara viktiga resultat. Viktiga resultat är resultat som framgång mäts med.

  • De driver en resultattänkskultur , vilket möjliggör en tydlig övergång från ett utdatatänk till ett resultattänk.

OKR-exempel

Här är ett OKR-exempel:

Mål: placera en astronaut på månen 1970.

Viktiga resultat:

  1. Bygg ett rymdskepp under 40000 pund 1965.
  2. Träna astronauter för månlandning 1967.
  3. Framgångsrikt landa rymdskeppet på månen.
  4. Valv för astronauterna tillbaka till jorden.

I det här OKR-exemplet identifieras målet eller målet att placera en astronaut på månen 1970.

Kommentar

Målen måste vara lätta att förstå, ange en tydlig riktning och ge motivation.

I det här exemplet är viktiga resultat mått på framsteg som mäter målets framgång.

Kommentar

Viktiga resultat måste vara mätbara och identifiera hur målet ska uppnås.

Viktiga fördelar med OKR

Det finns fem viktiga fördelar med OKR:

  • Fokus: varje mål ska passa på en rad. När det gäller viktiga resultat bör du inte ha mer än fem per mål.
  • Anpassning: både chefer och deltagare kopplar sina dagliga aktiviteter till organisationens företagsomfattande vision. Termen för den här länkningen är justering och dess värde kan inte överskattas.
  • Åtagande: Scheman och resurser kommer att justeras för att säkerställa att alla överenskomna åtaganden uppfylls.
  • Att spåra OKR:er från utdata till resultat är anledningen till att hantering efter mål är så populärt bland toppföretag. Varje OKR bör kunna spåras via de mått som fastställdes när de skrevs.
  • Stretching: OKRs driver i sig organisationer att sträva vidare, för att eke ut lite mer än vad de trodde var möjligt.

Jämför kontinuerlig och statisk planering

Kontinuerlig planering är en praxis som kräver att planerare, arkitekter och agila team integrerar sina planer i hela företaget kontinuerligt.

I Kontinuerlig planering gör scrum-baserade planeringsmetoder och nya design att team kan förfina planeringen till körningsnivån.

Det är viktigt att ha en plan på hög nivå som är motståndskraftig mot förändring men som styrs av tydlig vision och syfte.

Järntriangeln av kompromisser för vattenfall kontra agila utvecklingsmetoder illustrerar jämförelsen mellan kontinuerlig och statisk planering.

I den statiska metoden är planeringen av omfånget fast. Du avgör hur lång tid projektet tar och hur mycket det kommer att kosta.

I agil metodik, som använder principer för kontinuerlig planering, är tiden fast för att uppfylla affärsmålen. Det enda som är förhandlingsbart är omfånget.

Diagram shows the iron triangle of tradeoffs for Waterfall vs. Agile development methodologies.

Järntriangeln visar vanligtvis tid, resurser och funktioner. Gartner har lagt till kvalitet i den här skildringen eftersom varaktighet och kostnad är korrelerade och kvaliteten ofta missas.

Men hur är det med framgången för de två metoderna?

Diagram shows a comparison between the success rates of Agile and Waterfall projects. 9% of the Agile projects failed, 39% succeeded, and 52% were challenged. 29% of the Waterfall projects failed, 11% were successful, and 60% were challenged.

En anledning till att agila projekt är mer framgångsrika är att små batchversioner ökar möjligheterna att få kunskap.

Det finns fyra saker att tänka på:

  • Affärsbehov förändras ständigt och gör det med kort varsel.
  • Agile har planeringsmekanismer för att hänga med i affärsförändringar.
  • Högpresterande team kan lika enkelt gå snabbt i fel riktning.
  • Att få kunskap minskar risken.

Både vattenfalls- och agila metoder utmanas. Agil råkar bara lyckas 30% mer av tiden.

Utforska de sex principerna för kontinuerlig planering

Det finns sex principer för kontinuerlig planering:

  1. Värde enkelhet
  2. Manifestet för flexibel programvaruutveckling
  3. Designtänk
  4. Iterativ och inkrementell utveckling
  5. Lean-hantering
  6. Uppskattningsnoggrannhet

Princip för kontinuerlig planering #1: Värde enkelhet

Den första principen för kontinuerlig planering är att värdesätta enkelhet.

"Om du inte kan förklara det helt enkelt, förstår du det inte tillräckligt bra."

-Albert Einstein

Princip för kontinuerlig planering #2: Manifest för flexibel programvaruutveckling

Den andra principen för kontinuerlig planering är manifestet för flexibel programvaruutveckling.

Manifestet handlar om att leverera programvara. Det handlar om programvaruutveckling – inte projekthantering eller design. Den är kärnan i kontinuerlig planering och DevOps.

Vi upptäcker bättre sätt att utveckla programvara genom att göra det och hjälpa andra att göra det. Genom det här arbetet har vi kommit att värdera följande:

  • Individer och interaktioner över processer och verktyg
  • Arbeta programvara över omfattande dokumentation
  • Kundsamarbete över avtalsförhandling
  • Svara på ändring över att följa en plan

Princip för kontinuerlig planering #3: Designtänkande

Den tredje principen för kontinuerlig planering är designtänkande.

Designtänkande har en mänskligt centrerad inställning till innovation. Den fokuserar på skärningspunkten mellan livskraft, genomförbarhet och önskvärdhet för att fastställa gränser och minska avfall.

Diagram explains design thinking. Design thinking establishes the boundaries of the product early (often called the minimal viable product or “MVP”). It focuses on the intersection between business viability, technical and budget feasibility, and desirability. This intersection is where innovation happens.

Princip för kontinuerlig planering #4: Iterativ och inkrementell utveckling

Den fjärde principen för kontinuerlig planering är iterativ och inkrementell utveckling.

Vissa fruktar att de inte vet vad de kommer att få. Iterativ utveckling löser det här problemet genom att lägga krav och prioritering i händerna på intressenterna i en iterativ feedbackloop. Varje iteration är fullständig, användbar och användbar för användarna. Det lägger till fler funktioner, helst de viktigaste funktionerna först.

Principer för kontinuerlig planering #5: Lean-hantering

Den femte principen för kontinuerlig planering är lean management.

Värdet definieras utifrån slutkundsperspektivet. I processen identifieras värdeströmmar och steg där värdet inte levereras till kunden identifieras som avfall och tas bort.

Processen börjar igen och strävar mot ett tillstånd av perfektion med kontinuerlig förbättring.

Diagram shows the stages of the process: identify value, map the value stream, create flow, establish pull, and seek perfection.

Princip för kontinuerlig planering #6: Uppskattningsnoggrannhet

Den sjätte principen för kontinuerlig planering är uppskattningsnoggrannhet.

En uppskattning är en analytisk förutsägelse av hur lång tid något kommer att ta, hur mycket det kommer att kosta eller hur många funktioner som kan levereras. Den har två attribut – noggrannhet och precision, som är helt orelaterade till varandra. Uppskattningar ägs av teknikteamet.

Ett mål är en instruktion om ett affärsbehov: hur lång tid vi vill att något ska ta, hur mycket vi vill att det ska kosta eller hur många funktioner vi vill ska levereras. Målen ägs av verksamheten.

Ett åtagande är ett löfte om att leverera funktioner och kvalitet vid ett visst datum. Åtaganden ägs gemensamt.

Viktigt!

Målet med kontinuerlig planering är att upprätthålla anpassningen mellan uppskattningar, mål och åtagande. Annars kommer vi inte att uppfylla förväntningarna inom och utanför organisationen.

Förklara relationen mellan OKR och Scrum

Nu när du förstår varför och vad av OKR, samt något om kontinuerlig planering, här är anslutningen mellan de två.

Genom att strukturera arbetet med tekniker som OKR minskar osäkerheten, åtminstone på kort sikt. Eftersom OKR:er är avsedda att definieras på ett sammanhängande sätt börjar detta ändra hur cheferna ska visa sin hanteringsstil.

Tekniker som OKR är ett snabbt och effektivt sätt att starta resan bort från den auktoritära hanteringsstilen.

Objectives and key results lead to epics. Epics help define features, which involve user stories, and result in a development task.