Flöde betyder att "röra sig i en jämn och kontinuerlig ström". I kunskapsarbete är förmågan att visualisera och hantera ditt flöde avgörande för att uppnå snabbare och mer konsekventa leveranser. Det gör det möjligt för dig att förstå din kapacitet, enkelt identifiera problem och förbättra flödet.
I ett system som är utformat för att hantera flödet av konkreta leveranser, t.ex. ett bilmonteringsband, är det relativt enkelt att se var flaskhalsar uppstår och bromsar utvecklingen. När det gäller kunskapsarbete är det inte lika lätt att se flödesproblem. Detta är en viktig anledning till att vi använder Kanban-tavlor för att visualisera vårt arbete.
Men vad är egentligen flow?
Låt oss använda ett exempel som vi alla känner till: säkerhetskontrollen på en flygplats. Precis som en Kanban-tavla är flygplatssäkerheten ett system. Människor flödar genom systemet, från steg till steg, från det att de kontrollerar sitt ID och boardingkort till det att de går från kontrollstationen till det flyg som ska avgå.
Systemets kapacitet, dvs. hur många personer som kan behandlas effektivt, kan påverkas av många faktorer - antalet tillgängliga säkerhetsagenter, hur många banor som är öppna, vilken teknik som används vid säkerhetskontrollen osv.
När antalet personer som passerar genom kontrollstationen är lågt jämfört med systemets kapacitet, passerar människor relativt lätt. En paus för att kontrollera ID-handlingar, gå till transportbandet, ta av dig bältet och skorna, lägga väskan på bandet, gå genom skannern, plocka upp väskan, ta på dig skorna och bältet, och sedan är du på väg.
Många saker kan avbryta det flödet. Kanske tar någon lång tid på sig att ta av sig skorna och bältet. Eller så utlöser någon metalldetektorn och måste gå tillbaka, tömma sina fickor och försöka igen. Eller om någons väska måste genomsökas. Eller om någon behöver extra hjälp för att ta sig igenom kön.
När det är relativt få personer som passerar kontrollstationen orsakar dessa avbrott i flödet endast mindre förseningar. Men när systemet närmar sig sin kapacitet blir ett litet avbrott i flödet mångdubbelt större. Ju fler människor som rör sig genom systemet, desto större är risken att något tar längre tid än normalt, vilket ger upphov till en spridningseffekt.
Flöde i kunskapsarbete
Låt oss nu fundera på hur flödet kan tillämpas på kunskapsarbete, med ett programvaruutvecklingsteam som exempel. Arbetet flödar genom systemet, från det att en kund begär en produktfunktion till att det lämnar systemet när den har levererats till kunden och faktiskt fungerar och skapar värde. Vårt system för programvaruutveckling har en kapacitet som baseras på hur många utvecklare, chefer/analytiker, testare, designers och andra roller som fylls av de personer vi har tillgängliga.
Arbetets komplexitet och svårighetsgrad varierar vanligtvis ganska mycket. Vissa saker tar längre tid att utforma, vissa är svårare att bygga och andra tar längre tid att testa. När arbetet flödar genom systemet uppstår avbrott i flödet, t.ex. tester som misslyckas och omarbetning, arbete som ligger och väntar på att testas långt efter att det är färdigt, eller konstruktionsarbete som tar flera iterationer innan det blir rätt.
Om systemet fungerar med mindre än sin kapacitet för arbete som rör sig i "normal" hastighet, har dessa avbrott kanske inte någon större effekt på den hastighet med vilken arbetet levereras. Men om systemet körs nära sin kapacitet orsakar alla variationer en kaskad effekt på flödet. Ännu värre problem kan uppstå när du börjar få flödesproblem vid en punkt i systemet och fortsätter att belasta systemet med mer och mer arbete.
Identifiering av flödesproblem i kunskapsarbete
Flödesproblemen på flygplatsen är lätta att se. När du ser en kö som försvinner runt ett hörn vet du att du kommer att få vänta länge och att den mesta tiden kommer att gå åt till att stå stilla. När det gäller kunskapsarbete är det inte lika lätt att se flödesproblem. Detta är en viktig anledning till att vi använder Kanban-tavlor för att visualisera vårt arbete.
När vi kartlägger stegen i vår process på tavlan representerar korten det arbete som flödar genom systemet. När det bildas stora grupper av kort i ett område på tavlan är det ett tydligt tecken på att det finns problem med att ta sig förbi den punkten i processen. När det finns stora tomma områden på tavlan kan vi också anta att arbetet på något sätt fastnar i den delen av processen och inte kommer igenom i ett fint och jämnt flöde.
I det här exemplet fastnar arbetet i designen och går inte stadigt vidare till utvecklingsdelen av processen.
Det finns två viktiga sätt att påverka flödet: att hantera köer och begränsa pågående arbete.
Influera flödet genom att hantera köer
I exemplet med säkerhetskontrollen är det som vi ofta ser som en lång kö egentligen en rad köer. Först står du i en kö för att säkerhetsvakten ska kontrollera ditt ID och boardingkort. När den aktiviteten är utförd väntar du i en annan kö på plastbehållarna, där du kan lägga dina skor, ditt bälte och dina småpengar.
När du har tömt fickorna placerar du din väska på transportbandet tillsammans med plastbehållarna och väntar tills du ser dem gå in i röntgenbilden - det är kö #3, om du räknar. Nu väntar du i en (vanligtvis kort) kö för att gå igenom metalldetektorn eller millimetervågsdetektorn.
Slutligen väntar du på andra sidan för att hämta din väska och klä på dig. Det är fem köer. De två första stegen är vanligtvis de längsta, men förseningar i de sista stegen kan få spridningseffekter hela vägen tillbaka till början av kön.
Kunskapsarbete har också köer. I ett programvaruutvecklingsteam sker designarbetet och ligger sedan i en kö i väntan på att utvecklarna ska vara tillgängliga för att påbörja arbetet. När utvecklingen är klar kan arbetet ligga i en annan kö i väntan på ytterligare tester. När testningen är klar kan det vänta i en annan kö för att distribueras till produktionen.
I verkligheten finns det ofta mycket fler köer, särskilt om arbetet måste överlämnas till någon på en annan avdelning eller i ett annat team för att utföra nästa åtgärd i arbetsflödet. Varje gång arbete överlämnas från en person till en annan finns det vanligtvis en kö.
Så för att visualisera hur mycket av vårt arbete som finns i köer måste du utforma din Kanban-tavla så att du uttryckligen nämner dessa köer.
På tavlan ovan är kolumnen "Done" en kö. När utvecklingsarbetet är klart placeras det till exempel i kön "Done" så att QA-testarna vet att de ska hämta nästa arbetsmoment från kön när de har kapacitet.
Nu när vi kan se köerna på tavlan kan vi börja se deras effekter. Om ett arbete hamnar i "Development:Done"-kön och ligger där i flera dagar i väntan på testning kan flera saker hända. För det första kan ytterligare arbete läggas till i kön under den tiden, och köens storlek kommer att fortsätta att öka.
Om testteamet hittar fel och arbetet måste återgå till utvecklingsteamet för att rättas, kan kostnaden för att byta sammanhang från det nya arbetet till att gå tillbaka och rätta trasig kod från en vecka sedan bli mycket hög. Detta orsakar minst två avbrott i flödet, där arbetet med felet går bakåt och det pågående utvecklingsarbetet pausas medan felen åtgärdas.
Påverka flödet genom att begränsa det pågående arbetet (WIP)
När du börjar se effekten av köer kan du börja begränsa storleken på köerna explicit för att hålla arbetet igång på ett smidigt sätt. Detta kan ibland innebära att en viss person i systemet blir overksam under en kortare tid, i stället för att lägga mer arbete i kön. Genom systemtänkandets lins är det bättre med tomgångstid än att belasta systemet med mer arbete som saktar ner allt annat.
"Men vänta!" säger du. "Hur kan jag begränsa mitt arbete i processen? Projektplanerna, kundernas efterfrågan, den växande backloggen - dessa saker upphör inte bara för att jag säger till. På flygplatsen kan personalen inte bara säga åt folk att inte ställa sig i kö för att de "begränsar deras WIP"."
Det kan de faktiskt. Och det gör de redan.
På flygplatsen tillbringas den mesta tiden i de två första köerna, innan du kommer fram till transportbandet och skannern. De håller avsiktligt köerna långa och låter endast ett begränsat antal personer passera de sista stegen så att de sista stegen flyter smidigt. De har också många säkerhetsagenter vid de sista stegen som leder dig framåt och ser till att flödet är så smidigt som möjligt. Vi kan göra samma sak med våra lag.
Förbättra ditt flöde
Genom att begränsa inte bara den mängd arbete vi påbörjar utan också det arbete vi åtar oss att utföra kan vi förbättra vårt flöde och uppnå bättre kvalitet, bättre genomströmning och större enhetlighet. Det kan innebära att det blir en längre backlog eller kö för förfrågningar, men fördelarna med snabbare och mer konsekventa leveranser gör att du kan bevisa att det faktiskt är mer fördelaktigt för dina kunder att arbeta med färre saker samtidigt än att säga "vi har börjat med det" och sedan ta mycket längre tid på sig att leverera efter att du har gjort det åtagandet.