2.3 Flödeshastighet och flödesfördelning
Översikt och motivation
Flödeshastighet är antalet flödesobjekt (ämne 2.2) slutförda över en given period, Flow Frameworks mått på genomströmning. Flödesfördelning är andelen av varje flödesobjekttyp, funktioner, defekter, risk, och skuld, bland objekten slutförda under den samma perioden. De två mätetalen är designade att läsas tillsammans: hastighet ensam besvarar “hur mycket levererade vi,” och fördelning ensam besvarar “vilken sorts arbete var det,” men ingen av frågorna betyder mycket utan den andra. Ett team kan höja sin hastighet medan dess fördelning tyst skiftar bort från funktioner och mot defektomarbete, vilket ser ut som acceleration på ett hastighetsdiagram och i verkligheten är ett symtom på minskande kvalitet.
Den här parningen är samma disciplin ämne 1.2 ber om för varje mätetalsfamilj i den här boken: rapportera aldrig ett hastighetstal utan skyddet som visar vad den hastigheten kostade. Flödeshastighet är den här delens mest direkta generalisering av ett genomströmningsmätetal, närmare i anda till driftsättningsfrekvens (ämne 2.10) än något annat enskilt tal i den här boken, men objekttypsmedveten på ett sätt driftsättningsfrekvens aldrig var. Driftsättningsfrekvens berättar hur ofta kod når produktion; flödeshastighet, parad med fördelning, berättar hur ofta värde når produktion och vilken sorts värde det är.
För stora team som driver många samtidiga värdeflöden avslöjar den här parningen ett mönster ett enskilt genomströmningstal helt döljer: ett värdeflöde vars hastighet ser sunt ut medan dess fördelning tyst har drivit mot nästan rent funktionsarbete, och tyst svälter den skuld- och riskkapacitet ämne 2.2 varnade behöver medvetet skydd. Stora företag som jämför genomströmning mellan produktlinjer, och myndigheter som rapporterar leveransoutput till tillsynsorgan, behöver båda den här parningen för att undvika att misstaga rå output för genuin, hållbar framsteg.
Nyckelprinciper
- Hastighet utan fördelning döljer vad som faktiskt levererades. Ett stigande objektantal säger ingenting om huruvida det antalet är sunt, manipulerat, eller tyst snedvridet mot det lättaste arbetet tillgängligt.
- Fördelning utan hastighet döljer skala. En sund-ut-seende procentuppdelning betyder lite om ni inte också vet hur mycket totalt arbete den representerar.
- De två mätetalen måste rapporteras tillsammans, alltid. Det här är en direkt tillämpning av ämne 1.2:s skyddsparningsprincip på flödesdata specifikt.
- Hastighet är exponerad för samma substitutionsmanipulation som alla objektantalsmätetal. Att dela svårt arbete i många små, lätta objekt blåser upp antalet utan att leverera proportionerligt mer värde.
- En sund fördelning är kontextberoende, inte ett fast mål. Ämne 2.2 täcker det här i djupet; hastighet och fördelning bör alltid tolkas mot målet den kontexten antyder.
Rekommendationer
Rapportera flödeshastighet som en trendlinje, aldrig ett enskilt periodtal
En enskild periods objektantal är brusigt och lätt feltolkat. Plotta flödeshastighet över flera konsekutiva perioder och titta på trenden, inte någon enskild datapunkt, samma disciplin ämne 1.6 rekommenderar för alla tidsseriemätetal benägna till naturlig variation.
Presentera aldrig flödeshastighet utan dess fördelning vid sidan av
Behandla det här som en strikt regel för varje instrumentpanel eller rapport, inte något trevligt att ha. Ett hastighetsdiagram visat ensamt bjuder in exakt den feltolkning det här ämnet öppnar med: stigande genomströmning som i verkligheten är en stigande andel omarbete eller lätt funktionsarbete som tränger undan skuld- och riskkapacitet. Sätt båda på samma vy, alltid.
Vikta hastighet efter storlek eller komplexitet när objektstorlekar varierar brett
Rått objektantal behandlar en enradig konfigurationsändring och en flerveckors arkitektonisk migrering som likvärdiga, vilket bjuder in samma substitutionsmanipulation den här boken redan namngett för driftsättningsfrekvens (ämne 2.10): att dela svårt arbete i många små objekt blåser upp antalet utan att leverera proportionerligt mer. Där objektstorlekar varierar brett, vikta hastighet efter en grov storleks- eller komplexitetsuppskattning, eller spåra genomsnittlig objektstorlek vid sidan av det råa antalet, så att en krympande genomsnittsstorlek bredvid ett stigande antal är synlig snarare än dold.
Vaka över flödesfördelning för drift, inte bara dess nuvarande ögonblick
Den mest användbara signalen i flödesfördelning är sällan den här periodens exakta procentandelar; det är riktningen av förändring över flera perioder. En stadig drift, funktioner som klättrar medan skuld och risk tyst krymper, är värt att ta upp med intressenter långt innan det blir den sortens kvalitets- eller säkerhetsproblem ämne 2.2 varnar ackumuleras osynligt under ett funktionsfabriksmönster.
Jämför flödeshastighet mellan värdeflöden bara med genuin omsorg
Två värdeflöden med olika objektgranularitet, olika teamstorlekar, eller olika produktfaser är inte direkt jämförbara på rå hastighet ensam, samma rättviseproblem ämne 2.10 namnger för driftsättningsfrekvens mellan team. Använd hastighet för ett värdeflödes egen trend först, och försök bara jämförelse mellan värdeflöden efter att ha bekräftat genuint jämförbara objektdefinitioner och granularitet.
Avvägningar: fördelar och nackdelar
| Tillvägagångssätt | Fördelar | Nackdelar |
|---|---|---|
| Rå objektantalshastighet ensam | Enkel att beräkna och förklara | Exponerad för substitutionsmanipulation; döljer vilken sorts värde som levererades |
| Hastighet parad med fördelning | Visar både skala och värdeblandning tillsammans | Kräver disciplinerad flödesobjektsklassificering (ämne 2.2) för att vara meningsfull |
| Storleksviktad hastighet | Motstår substitutionsmanipulation från objektstorleksdelning | Kräver en konsekvent, överenskommen storleksmetod över teamet |
| Jämförelse av hastighet mellan värdeflöden | Användbar för portföljnivåinvesteringsbeslut | Lätt orättvis utan att bekräfta genuint jämförbara objektdefinitioner |
Den centrala spänningen är enkelhet kontra motstånd mot manipulation. Rått objektantal är det enklaste talet att beräkna och förklara, men det är också det enklaste att blåsa upp genom att dela svårt arbete i många små bitar. Lös spänningen genom att hålla det primära mätetalet enkelt, rå hastighet parad med fördelning, och reservera storleksviktning för värdeflöden där objektstorlekar är kända att variera brett nog att det enkla antalet har blivit aktivt vilseledande.
Frågor att diskutera med ditt team
När vi rapporterar flödeshastighet, visas flödesfördelning alltid vid sidan av den, eller står hastighet ibland ensam? Ett hastighetstal utan dess fördelning är en inkomplett bild enligt det här ämnets egen centrala princip. Kontrollera era faktiska instrumentpaneler och rapporter för det här glappet.
Har vår genomsnittliga objektstorlek ändrats vid sidan av en stigande hastighet, och skulle vi veta om den hade det? En krympande genomsnittsstorlek bredvid ett klättrande antal är den specifika signaturen för substitutionsmanipulation tillämpad på flödesobjekt. Ta fram den faktiska datan istället för att anta att mönstret är frånvarande.
Har vi någonsin jämfört vår hastighet mot ett annat teams utan att bekräfta att våra objektdefinitioner och granularitet faktiskt matchar? En orättvis jämförelse här kan trycka ett team mot att manipulera sina egna tal bara för att se jämförbart ut, och ekar samma risk den här boken redan namnger för driftsättningsfrekvens.
Har vår flödesfördelning drivit i en riktning över de senaste perioderna, och bestämde någon det medvetet? En långsam drift är lätt att missa period för period. Plotta flera perioder tillsammans och leta ärligt efter en trend innan ni antar att den nuvarande uppdelningen är stabil.
Om någon ville blåsa upp vår flödeshastighet utan att göra mer verkligt arbete, vad är det enklaste sättet de kunde göra det, och skulle vår nuvarande rapportering fånga det? Gå igenom den specifika mekaniken att dela svåra objekt i lätta, och diskutera om er instrumentpanel faktiskt skulle avslöja det mönstret.
Når våra hastighets- och fördelningstal någonsin affärsintressenter tillsammans, eller reser bara hastighetsrubriken uppåt? Parningsprincipen skyddar bara mot feltolkning om båda halvorna faktiskt ses av personerna som fattar beslut från datan.
Sektorperspektiv
Startup. Flödeshastighet är vanligtvis lätt att spåra informellt på den här skalan, eftersom hela teamet redan har en ungefärlig känsla för genomströmning. Den användbara disciplinen är att para den med fördelning även informellt, så att en grundare inte misstar ett stigande ärendeavslutningsantal för genuint funktionsframsteg när antalet faktiskt domineras av tidig buggfixning.
Litet företag. Spåra hastighet och fördelning tillsammans från vilket lättviktigt verktyg ni redan använder för flödesobjektsklassificering (ämne 2.2); ingen dedikerad analysplattform behövs på den här skalan. Vanan att alltid se dem sida vid sida betyder mer än någon verktygssofistikering.
Stort företag. Jämförelse av hastighet mellan värdeflöden är frestande på den här skalan för portföljnivåprioritering, och det är också där rättviserisken är störst, eftersom olika produktlinjer legitimt har mycket olika objektgranularitet. Investera i att bekräfta jämförbara definitioner innan hastighetsjämförelser används för att motivera investeringsbeslut mellan team.
Myndighet. Flödeshastighet parad med fördelning ger en offentlig sektors teknikledare en mycket starkare bevisgrund för att rapportera leveransoutput till tillsynsorgan än rå genomströmning ensam, eftersom den kan visa inte bara hur mycket som levererades utan att blandningen återspeglar en medveten, försvarbar allokering mellan ny funktionalitet, defekträttning, och riskhantering.
Exempel
Stort företag. En mjukvaruleverantörs plattformsteam rapporterade stadigt stigande flödeshastighet under tre konsekutiva kvartal, en trend ledningen firade som accelererande leverans. En närmare titt på flödesfördelning, begärd bara efter en kundeskalering om återkommande buggar, avslöjade att “funktioner”-andelen av den stigande hastigheten faktiskt hade fallit från 70 % till 45 % över samma period, med defekträttningsobjekt som fyllde gapet. Teamet hade levererat fler objekt, men en krympande andel av dem var nytt värde; resten var omarbete hastighetsdiagrammet ensamt helt hade dolt.
Myndighet. En nationell statistikmyndighets dataplattformsteam spårade flödeshastighet som sitt primära leveransmätetal för en årsrapport till sin tillsynsnämnd. När en nämndmedlem frågade vilken andel av den hastigheten representerade ny medborgarvänd förmåga, upptäckte teamet att det aldrig hade brutit ner talet efter flödesobjektstyp och kunde inte svara direkt. Myndigheten antog därefter parad hastighet-och-fördelningsrapportering, vilket avslöjade att risk- och efterlevnadsarbete, drivet av en ny dataskyddsreglering, legitimt hade konsumerat en växande andel kapacitet, en försvarbar allokering nämnden accepterade villigt när den väl visades explicit snarare än lämnad implicit i en oförklarad hastighetsnedgång.
Verksamhetsnytta: motiv, ROI och TCO
Avkastningen på att para hastighet med fördelning är en mer ärlig, mer försvarbar redogörelse för leveransoutput än något tal ensamt ger. Mjukvaruleverantörsexemplet ovan, att upptäcka att stigande hastighet faktiskt återspeglade fallande funktionsoutput, är exakt den sortens feltolkning den här parningen förhindrar, och att fånga det mönstret tidigt är mycket billigare än att upptäcka det bara efter att ett kundvänt kvalitetsproblem tvingar fram frågan.
Den totala ägandekostnaden är minimal när flödesobjektsklassificering (ämne 2.2) redan är på plats: fördelning är en okomplicerad aggregering av redan klassificerade objekt, och disciplinen att visa båda mätetalen tillsammans är en rapporteringskonvention, inte en teknisk investering. Det mesta av kostnaden för det här ämnets rekommendationer var redan betald när organisationen antog ärlig flödesobjektsklassificering i första hand.
Antimönster och fallgropar
- Att rapportera flödeshastighet utan fördelning: manipuleringsvektorn i hjärtat av det här ämnet. Ett team under leveranspress kan höja objektantal genom att föredra litet, lätt funktionsarbete och undvika svårare skuld-, risk-, eller defektobjekt, eller genom att dela stora objekt i många små, och ett hastighetsdiagram visat ensamt läses som acceleration snarare än det faktiska skiftet i vad som levereras. Skyddet är samma parningsdisciplin ämne 1.2 ber om genom hela den här boken: visa aldrig hastighet utan fördelning, och kontrollera periodiskt genomsnittlig objektstorlek vid sidan av antalet för att fånga delning specifikt.
- Att jämföra hastighet mellan värdeflöden med olika objektgranularitet: producerar en orättvis, vilseledande jämförelse.
- Att behandla en enskild periods fördelning som stabil: missar en långsam, meningsfull drift bara en trendvy avslöjar.
- Att låta bara hastighetsrubriken nå affärsintressenter: förverkar hela parningsprincipens skyddande värde.
- Att ignorera genomsnittlig objektstorlek medan man firar stigande hastighet: missar den specifika signaturen för substitutionsmanipulation.
- Att sätta ett hastighetsmål utan referens till fördelning: bjuder in exakt den manipulation det här ämnet varnar om vid namn.
Mognadsmodell
- Nivå 1, Initiera: Flödeshastighet, om spårad, rapporteras ensam utan fördelningsdata, och ingen har kontrollerat för substitutionsmanipulation.
- Nivå 2, Utveckla: Vissa team spårar fördelning, men den paras inte konsekvent med hastighet i rapportering eller granskas som en trend.
- Nivå 3, Standardisera: Hastighet och fördelning rapporteras alltid tillsammans, visade som trender, med genomsnittlig objektstorlek övervakad för att fånga substitutionsmanipulation.
- Nivå 4, Hantera: Fördelningsdrift undersöks proaktivt innan den blir ett kvalitets- eller säkerhetsproblem, och jämförelser av hastighet mellan värdeflöden görs bara efter att ha bekräftat genuint jämförbara objektdefinitioner.
- Nivå 5, Orkestrera: Hastighet och fördelning informerar direkt portföljnivåinvesteringsbeslut, och organisationen kan peka på specifika fall där fördelningsdrift fångades och korrigerades innan den orsakade ett synligt misslyckande.
Diskussionsidéer
- Inkluderar vår rapportering av flödeshastighet alltid fördelning, eller har vi någonsin visat en utan den andra?
- Har vår genomsnittliga flödesobjektstorlek skiftat vid sidan av en förändring i hastighet nyligen?
- Skulle vi veta om vår flödesfördelning hade drivit stadigt över de senaste kvartalen?
- Vad skulle krävas för att någon skulle blåsa upp vår hastighet utan att leverera mer verkligt värde, och skulle vi märka det?
Viktiga slutsatser
- Flödeshastighet mäter genomströmning; flödesfördelning mäter vilken sorts arbete den genomströmningen representerar. Rapportera dem tillsammans, alltid.
- Den här parningen är en direkt tillämpning av ämne 1.2:s skyddsprincip: visa aldrig ett hastighetstal utan kontexten av vad det kostade.
- Ämnets centrala manipuleringsvektor är att rapportera hastighet ensam, vilket kan dölja ett skifte mot lätt funktionsarbete eller objektdelning som blåser upp antal utan att leverera proportionerligt värde.
- Fördelningsdrift är mest synlig som en trend över flera perioder, inte i någon enskild periods ögonblick.
- Jämförelser av hastighet mellan värdeflöden behöver genuint jämförbara objektdefinitioner för att vara rättvisa; utan det vilseleder de mer än de informerar.
Källor och vidare läsning
- Kersten, Mik. Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework. IT Revolution Press, 2018.
- Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate: The Science of Lean Software and DevOps. IT Revolution Press, 2018.
- Vacanti, Daniel S. Actionable Agile Metrics for Predictability. Actionable Agile Press, 2015.