2.2

2.2 Flödesobjekt: funktioner, defekter, risker, och skuld

Översikt och motivation

Ett flödesobjekt är Flow Frameworks arbetsenhet, och varje flödesobjekt hör till exakt en av fyra typer: funktioner, nytt affärsvärde eller ny förmåga levererad till en kund; defekter, kvalitetsrättningar för buggar funna av användare eller testning; risker, säkerhets-, efterlevnads-, integritets-, och styrningsarbete som skyddar affären; och skuld, teknisk skuld, arkitektonisk förbättring, och infrastrukturarbete som möjliggör framtida hastighet. Ämne 2.1 introducerade ramverket de fyra kategorierna hör till; det här ämnet går djupt in på själva taxonomin, eftersom kategorierna bara levererar värde om ett team klassificerar sitt arbete i dem ärligt och konsekvent.

Den definierande egenskapen hos flödesobjekt är att allokeringen över de fyra typerna är ett nollsummespel: en fast mängd ingenjörskapacitet finns i varje given period, och varje timme spenderad på en funktion är en timme inte spenderad på skuld-, risk-, eller defektarbete. Det här är inget nytt faktum om mjukvaruleverans, varje ingenjörsledare vet redan att kapacitet är ändlig, men de flesta organisationer har inget konsekvent, ärligt sätt att se den faktiska uppdelningen. Sprinthastighet räknar storypoäng oavsett typ; en nedbrunnen backlogg ser identisk ut oavsett om arbetet bakom den var ett nytt kassaflöde eller tre månader av oglamoröst säkerhetsrättningsarbete. Flödesobjekt finns specifikt för att göra den osynliga uppdelningen synlig.

För stora team förändrar den här synligheten naturen hos en resurskonversation. Istället för att en ingenjörsledare gör ett okvantifierat argument att “vi behöver mer tid för teknisk skuld,” producerar flödesobjektsklassificering ett faktiskt tal, skuld konsumerade 30 % av förra kvartalets kapacitet, som kan diskuteras, försvaras, och justeras medvetet med affärsintressenter. Stora företag som driver många samtidiga produktlinjer och myndigheter som balanserar ny medborgarvänd funktionalitet mot risken i äldre system beror båda på den här sortens försvarbara, kvantifierade avvägning mycket mer än en privat, informell känsla av att “vi spenderar för mycket tid på underhåll.”

Nyckelprinciper

  • Varje flödesobjekt hör till exakt en typ. Att tvinga fram en enda klassificering, snarare än att tillåta en blandad eller tvetydig, är det som gör taxonomin användbar för aggregerad rapportering.
  • Allokering är nollsumma, inte additiv. Mer kapacitet för funktioner är nödvändigtvis mindre kapacitet för defekter, risk, och skuld under samma period.
  • Det finns ingen universellt sund fördelning. En ung produkt i en tillväxtfas bör legitimt luta mot funktioner; ett moget system som bär verklig teknisk risk bör legitimt luta mot skuld- och riskarbete.
  • Skuld- och riskarbete är kroniskt underrapporterat utan den här disciplinen. Det tenderar att ske tyst, absorberat i generiska “ingenjörsuppgifter,” tills flödesobjektsklassificering tvingar fram det i öppet.
  • Klassificeringskvalitet avgör taxonomins hela värde. En taxonomi tillämpad inkonsekvent eller manipulerad i efterhand producerar tal som aktivt vilseleder snarare än informerar.

Rekommendationer

Klassificera varje objekt vid intag, med en skriftlig definition för varje typ

Enas om en koncis, skriftlig definition för vad som räknas som en funktion, en defekt, en risk, och skuld i ert specifika sammanhang, och kräv att varje nytt arbete klassificeras mot den definitionen i det ögonblick det kommer in i värdeflödet, inte efter att det är slutfört. En definition överenskommen i förväg motstår frestelsen att klassificera retroaktivt baserat på hur ett arbete visade sig se ut, vilket är exakt den manipuleringsrisk det här ämnet namnger direkt nedan.

Rapportera flödesfördelning som en trend, inte ett enskilt ögonblick

En enskild periods fördelning berättar mindre än trenden över flera perioder. En stadig drift mot en objekttyp, funktioner som klättrar medan skuld tyst krymper kvartal för kvartal, är en mycket starkare signal än någon enskild periods tal, och det är vanligtvis mönstret värt att ta upp med intressenter innan det blir en kris snarare än efteråt.

Sätt en medveten måluppdelning med affärsintressenter, inte bara ingenjörsavdelningen

Bestäm, tillsammans med produkt- och affärsledning, hur en sund fördelning ser ut för ert specifika värdeflödes nuvarande fas, och revidera det målet periodiskt istället för att låta det driva som standard. En ung produkt i tillväxtfas och ett moget system i stabilitetsfas har legitimt olika sunda mål, och själva målet bör vara ett förhandlat affärsbeslut, inte något ingenjörsavdelningen tyst bestämmer ensam.

Korskontrollera flödesobjektsklassificering mot oberoende bevis

Jämför periodiskt er flödesfördelning mot mätetal som inte beror på självklassificering: andel läckta defekter (ämne 5.1), teknisk skuldmätning (ämne 4.5), och mätetal för sårbarhetshantering (ämne 6.4). Om defekter eller sårbarheter stiger medan “defekter”- och “risk”-flödesobjektsandelarna förblir platta eller krymper, är den missmatchningen den tydligaste tillgängliga signalen att klassificeringen har glidit från verkligheten.

Vaka specifikt för funktionsfabriksmönstret

När flödesfördelning visar funktioner konsekvent absorbera nästan all kapacitet, kvartal efter kvartal, med skuld- och riskarbete aldrig stigande över en symbolisk andel, betyder det mönstret (ibland kallat en “funktionsfabrik”) vanligtvis att skuld och risk svälts på kapacitet, inte att systemet genuint inte behöver underhåll. Det här mönstret är bekvämt på kort sikt och dyrt senare, och visar sig så småningom som en kvalitets- eller säkerhetskris som anländer utan varning i flödesfördelningsdiagrammet, eftersom den underliggande ackumuleringen aldrig var synlig.

Avvägningar: fördelar och nackdelar

TillvägagångssättFördelarNackdelar
Ingen formell klassificering (generisk backlogg)Ingen processomkostnadSkuld-, risk-, och defektarbete förblir osynligt; svårt att försvara resursbeslut
Fyrtyps flödesobjektsklassificeringGör kapacitetsallokering synlig och förhandlingsbar med intressenterKräver intagstidsdisciplin och en skriftlig, överenskommen definition per typ
Finare uppdelad klassificering (många undertyper)Mer diagnostisk detaljMer klassificeringsarbete; fler tal att förklara för intressenter
Retroaktiv klassificeringLättare att tillämpa, ingen processändring i förvägMycket exponerad för manipulation; klassificering driver mot vad som ser bäst ut

Den centrala spänningen är klassificeringsdisciplin kontra processomkostnad. En fyrtypstaxonomi är medvetet grov, grov nog att klassificera ett objekt tar sekunder, inte en debatt, men den grovheten håller bara om disciplinen att klassificera vid intag, mot en skriftlig definition, genuint upprätthålls. Lös spänningen genom att hålla taxonomin exakt så här enkel, fyra typer, inte fler, och investera all extra rigör i granskningssteget (korskontroll mot oberoende bevis) snarare än i ett mer utarbetat klassificeringssystem som eroderar under verklig arbetsbelastning.

Frågor att diskutera med ditt team

  1. Om vi klassificerade allt vårt team levererade förra kvartalet, hur skulle den faktiska uppdelningen mellan funktioner, defekter, risk, och skuld se ut, och skulle det överraska våra intressenter? De flesta team har aldrig gjort den här övningen ärligt. Försök den med verklig data innan ni antar att ni redan vet svaret.

  2. Har vi en skriftlig, överenskommen definition för vad som räknas som en funktion kontra skuld kontra risk i vårt specifika sammanhang, eller beror klassificeringen på vem som råkar märka ärendet? En informell, inkonsekvent definition producerar tal som ser precisa ut men faktiskt inte är jämförbara period för period.

  3. Har vår flödesfördelning någonsin drivit stadigt mot en objekttyp utan att någon bestämde det medvetet? En långsam drift är lätt att missa period för period men uppenbar när den väl plottas som en trend. Ta fram flera perioders data, om ni har det, och leta ärligt efter det här mönstret.

  4. Hur skulle en sund flödesfördelning se ut för vår produkts nuvarande fas, och har vi faktiskt enats om det målet med affärsintressenter? De flesta organisationer har aldrig gjort det här målet explicit, vilket betyder att det inte finns någon delad grund för att märka när den faktiska fördelningen driver bort från det.

  5. Matchar vår flödesfördelning oberoende bevis, som andel läckta defekter eller öppna sårbarhetsantal, eller finns det en missmatchning värd att undersöka? En missmatchning här är det tydligaste tillgängliga tecknet på att klassificeringen har glidit från vad arbetet faktiskt är.

  6. Skulle någon i vårt team kunna tyst omdöpa ett skuld- eller riskobjekt till en funktion under leveranspress, och skulle vi för närvarande märka det om de gjorde det? Det här är ämnets centrala manipuleringsrisk uttryckt direkt. Diskutera om er nuvarande process faktiskt skulle fånga det här, inte bara om någon medvetet skulle göra det.

Sektorperspektiv

Startup. Formell klassificering känns ofta som en omkostnad när hela teamet redan vet vad alla arbetar med. Det användbara minimumet på den här skalan är helt enkelt att namnge de fyra kategorierna högt under planering, så att skuld- och riskarbete inte tyst depriorieras varje gång en funktionsdeadline skapar press, ett mönster som förstärks illa när både kodbasen och teamet växer.

Litet företag. Ett enda anpassat fält eller en etikett i ert befintliga spårningsverktyg räcker för att fånga flödesobjektstyp utan någon dedikerad verktygsinvestering. Disciplinen i att klassificera konsekvent vid intag betyder mycket mer än någon verktygssofistikering.

Stort företag. Flödesobjektsklassificering är där det här ramverket tjänar sitt värde i skala, eftersom en stor organisation som driver många samtidiga värdeflöden inte har något annat tillförlitligt, aggregerat sätt att se hur kapacitet faktiskt delas mellan funktioner, defekter, risk, och skuld. Investera i verktygsintegrerad klassificering och periodiska korskontroller mot oberoende bevis; manuell, ad hoc-klassificering överlever inte verklig organisatorisk skala.

Myndighet. Flödesfördelning ger en offentlig sektors teknikledare ett försvarbart, kvantifierat svar när de frågas varför fler nya medborgarvända funktioner inte levereras, när det ärliga svaret är att ett äldre systems risk- och skuldbörda konsumerar en genuin, motiverbar andel av kapaciteten. Att göra den avvägningen explicit och förhandlad, snarare än tyst absorberad, tenderar att bygga mer förtroende hos tillsynsorgan än en okvantifierad vädjan till “teknisk nödvändighet.”

Exempel

Stort företag. Ett stort detaljhandelsbolags e-handelsplattformsteam trodde, baserat på sprinthastighet, att det levererade stadig funktionsoutput. En första ärlig flödesobjektsklassificeringsövning fann att “funktioner” faktiskt bara utgjorde 40 % av slutfört arbete, med skuld, mycket av det kopplat till ett åldrande kassasystem, som konsumerade nästan en tredjedel av kapaciteten utan att någonsin ha namngivits som sådant i någon tidigare rapport. Att presentera den här uppdelningen för produktledningen, tillsammans med en stigande andel läckta defekter som bekräftade skuldbördan, säkrade en dedikerad moderniseringsbudget teamet förgäves hade begärt i två år med bara kvalitativa argument.

Myndighet. Ett delstatligt fordonsmyndighets digitala licensteam klassificerade sin backlogg för första gången efter att ett offentligt driftstopp drog granskning till det underliggande systemets stabilitet. Övningen avslöjade att “risk”-arbete, primärt säkerhetsrättning som upprepade gånger hade depriorierats till förmån för synliga medborgarvända funktioner, hade krympt till under 5 % av kapaciteten under det föregående året, ett mönster som aldrig hade varit synligt i teamets standardrapportering. Myndighetens ledning använde fyndet för att mandatera en minimum riskarbetsallokering framöver, backat av flödesfördelningsdatan snarare än bara en allmän policyförklaring.

Verksamhetsnytta: motiv, ROI och TCO

Avkastningen på flödesobjektsklassificering är en försvarbar, kvantifierad grund för resursbeslut som tidigare argumenterades kvalitativt och ofta förlorades till vad som helst arbete som var mest synligt för intressenter. Detaljhandelsexemplet ovan, att säkra en moderniseringsbudget med faktisk kapacitetsdata snarare än en allmän vädjan, är mönstret den här disciplinen tillförlitligt producerar: ett specifikt tal är mycket svårare att avfärda än ett allmänt intryck att “vi behöver mer tid för underhåll.”

Den totala ägandekostnaden är låg när taxonomin och dess definitioner väl är överenskomna: klassificering lägger till sekunder vid intag, inte en meningsfull processbörda, och verktygsintegrationen som behövs för att spåra den är vanligtvis ett enda anpassat fält eller en etikett. Den verkliga, löpande kostnaden är disciplinen att upprätthålla ärlig klassificering under leveranspress, vilket är varför den periodiska korskontrollen mot oberoende bevis betyder lika mycket som det initiala antagandet.

Antimönster och fallgropar

  • Att klassificera arbete retroaktivt, efter att utfallet är känt: manipuleringsvektorn i hjärtat av det här ämnet. Under leveranspress kan ett team tyst märka skuld- eller riskarbete som en funktion i efterhand, eller runda av ett tvetydigt objekt mot vilken typ som helst som ser bättre ut på fördelningsdiagrammet, utan att något enskilt beslut någonsin ser oärligt ut på egen hand. Skyddet är intagstidsklassificering mot en skriftlig definition, kombinerat med periodiska granskningar som jämför flödesfördelning mot oberoende bevis som andel läckta defekter (ämne 5.1) och sårbarhetsmätetal (ämne 6.4), samma gransknings-mot-oberoende-bevis-disciplin ämne 1.2 ber om för varje mätetal i den här boken.
  • Att låta funktioner konsekvent absorbera nästan all kapacitet (funktionsfabriksmönstret): svälter skuld- och riskarbete tyst tills det dyker upp som en kris.
  • Att behandla en enskild periods fördelning som hela bilden: missar den långsamma, kumulativa driften en trendvy avslöjar tydligt.
  • Att sätta en målfördelning utan affärsintressenter: förverkar ramverkets huvudvärde, en delad, förhandlad förståelse av avvägningen.
  • Att använda en inkonsekvent eller odokumenterad definition per typ: producerar tal som ser precisa ut men faktiskt inte är jämförbara över tid.
  • Att överkonstruera taxonomin med många undertyper: lägger till klassificeringsomkostnad som eroderar disciplin utan att lägga till proportionerlig insikt.

Mognadsmodell

  • Nivå 1, Initiera: Arbete spåras generiskt, utan flödesobjektsklassificering; skuld- och riskarbete är osynligt i rapportering.
  • Nivå 2, Utveckla: Vissa team klassificerar flödesobjekt informellt, men definitioner är inkonsekventa och klassificering sker ofta retroaktivt.
  • Nivå 3, Standardisera: Alla team klassificerar vid intag mot en delad, skriftlig definition, och flödesfördelning spåras som en trend.
  • Nivå 4, Hantera: Flödesfördelning korskontrolleras periodiskt mot oberoende bevis, och målfördelningar sätts medvetet med affärsintressenter.
  • Nivå 5, Orkestrera: Flödesobjektsdata informerar direkt resurs- och investeringsbeslut över organisationen, och ledningen kan peka på specifika beslut fattade eftersom klassificering gjorde en tidigare osynlig avvägning explicit.

Diskussionsidéer

  1. Vad skulle en ärlig flödesobjektsuppdelning av förra kvartalets arbete visa, och skulle det överraska någon?
  2. Har vi en skriftlig definition för var och en av de fyra flödesobjekttyperna, eller beror klassificering på vem som märker arbetet?
  3. Har vår flödesfördelning någonsin drivit mot en objekttyp utan ett medvetet beslut bakom det?
  4. Vilket oberoende bevis skulle vi kunna korskontrollera vår flödesfördelning mot idag?

Viktiga slutsatser

  • Ett flödesobjekt hör till exakt en av fyra typer, funktioner, defekter, risker, eller skuld, och kapacitetsallokering mellan dem är nollsumma.
  • Det finns ingen universellt sund fördelning; den rätta blandningen beror på en produkts fas och bör vara ett medvetet, förhandlat mål med affärsintressenter.
  • Ämnets centrala manipuleringsvektor är retroaktiv klassificering, att tyst omdöpa skuld- eller riskarbete till en funktion i efterhand; skyddet är intagstidsklassificering plus periodiska granskningar mot oberoende bevis.
  • Vaka specifikt för funktionsfabriksmönstret, funktioner som konsekvent absorberar nästan all kapacitet, vilket svälter skuld- och riskarbete tills det dyker upp som en kris.
  • Flödesfördelning är mest värdefull som en trend, och dess största utdelning kommer från att dela den direkt med affärsintressenter.

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.
  • Kim, Gene, Kevin Behr, and George Spafford. The Phoenix Project. IT Revolution Press, 2013.
  • Reinertsen, Donald G. The Principles of Product Development Flow: Second Generation Lean Product Development. Celeritas Publishing, 2009.