Refinement – tre filter som förbättrar backloggen
Jag brukar konstatera att min hjärna klarar endast av att räkna till 1-2-3 och därefter blir det bara många. På något sätt tyder det säkert på bristande fokus, begränsat tålamod, eller kanske svag utveckling av min temporallob. Men så funkar jag… och enligt erfarenhet så fungerar många andra. 1-2-3-många…
Refinement av user stories (eller features/epics/krav…) är en konst och en viktig sådan i agilt arbete. Syftet med refinement är ”finare user stories”, någon form av bearbetning där man filtrerar tills bara de tydligaste, mest konkreta, viktigaste och mest managerbara user stories trillar ut.
Vad har detta med 1-2-3-många att göra? Jo, jag tänker 1-2- 3 filtren i refinement såklart. Vilka filter skall vi nyttja när vi bedriver refinement? Låt oss börja…
1 – ett FÖRSTÅ-filter
Kravbildens första form är ofta rätt grov. Man har en idé eller aning om förbättring. Eller kanske inte ens förbättring – det kan hända att allt man har är en problembild. Här krävs refinement och filterarbete.
FÖRSTÅ-filtret applicerar vi här för att bättre greppa vad saken handlar om. Här ställs många frågor mot kravet för att bättre förstå:
- Vad är problemet/möjligheten?
- Vem/vilka ska använda detta?
- Varför blir detta en förbättring? Vilket värde skapas om vi lyckas?
- Vilken nivå av prestandaförbättring krävs? Hur mycket mer? Hur mycket snabbare?
- Vad är kontexten eller miljön för detta?
- Finns det garanti- eller icke-funktionella-krav som måste uppnås?
- Kan vi uttrycka detta som en user story eller value statement?
Filtrerar vi effektivt så trillar det ut svar från ovanstående, svar som syftar till att såklart förklara kravet och hjälpa oss att begripa dess syfte, kontext, och slutligen värde. Refinement helt enkelt. Utan ökad förståelse blir nästan all vidarebearbetning en gissningslek. Och med ökad förståelse, kan vi arbeta vidare och ta fram nästa filter…
2 – ett PRIORITERA-filter
Då vår backlog är oftast större än tillgänglig tid/resurs blir prioritering ett ständigt behov, vårt andra filter i refinement. Värdet skall oftast vara det som driver prioritering – dvs ovanstående fråga ”vilket värde skapas?” bör ha en signifikant korrelation till prioritet. Och här kommer timing in också – ibland måste en tidpunkt mötas, annars blir det ingen nytta. Med värde och timing ser vi egentligen att vårt prioriteringsfilter går tillbaka till den beprövade ”bråttom-viktigt”-skalan. Ju mera bråttom-viktigt, desto högre prioritering såklart.
(Skalad agilitet/SAFe bidrar även med WSJF även här – vill du fördjupa dig så kanske detta kan vara av intresse.)
Bara de bästa, mest nödvändiga, mest värdefulla krav får bli högst prioriterade. Vi gynnar vår refinement om vi är selektiva här. Att ”våga säga nej”, eller åtminstone pröva ibland, kan vara ett fantastiskt medel för prioritering. Hjälpsamma frågor kan vara:
- Vad händer om vi inte gör detta?
- Vilka krav kan vi helt enkelt ta bort?
- Kan inte detta vänta?
Kom ihåg, när vi säger ”nej” till ett krav säger vi de facto ”ja” till kvarvarande. För vi har begränsad tid och resurs såklart.
3 – ett SIZING-filter
Det tredje filtret i refinement är sizing, det vill säga minimering eller slicing. Detta filter tvingar oss till att bryta ned kraven i ”bite size pieces”. Här styckar vi helt enkelt upp elefanten i bitar. Vi letar efter logiska gränser där vi kan dela upp kraven och det arbetet som krävs för att möta kravet. Helst vill vi att sizing resulterar i kravdelar som är små nog för att planeras in och levereras klart i EN leveranscykel (sprint).
Här kan man även slå ett slag för slicing techniques, där vi inte bara styckar upp i små delar, men i möjligaste mån försöker bryta ner så att resultatet är små delar som ändå står för sig själv och ger konkret värde. Slicing är en bloggpost i sig, men några typiska metoder att utgå ifrån är:
- Workflow – först utvecklar vi beställningsfunktion, senare kommer betalning
- Roll/användartyp – först fixar vi för kundtjänst, därefter för sälj, sedan finans
- Teknik eller device – först ordnar vi för PC, sedan för Mac
- Happy/unhappy path – låt oss utveckla en transaktion som är happy (inga avvikelser) innan vi hanterar unhappy paths (med avvikelser)
Refinements resultat av sizing-aktivitet ger oss hanterbara krav och därmed enklare planering och produktion.
1-2-3 refinement bringar klarhet
Kom ihåg nu att refinement-arbete med dessa 3 filter mot vår backlogg är inte en linjär process, men såsom allt annat agilt, cykliskt. Ökad förståelse skapar bättre prioritering som i sin tur möjliggör sizing. Eller var det så att sizing skapar förståelse som i sin tur möjliggör prioritering? Eller prioritering till förståelse till sizing? Svaret är ja, ja, ja – filtren samspelar, och filtrering på förstå-prioritera-sizing hoppar fram och tillbaka sinsemellan för att skapa bättre och bättre krav (refined user stories).
Refinement bringar klarhet och 1-2-3 filter klarar även min hjärna av. Filtreringsresultat syns konkret i form av tydlighet och ordning. User stories fylls på med innehåll, inklusive svar på förstå-frågorna. Vässad och dokumenterad prioritet läggs till, samt slicing där stora kort fördelas till hanterbara små. Det blir ännu bättre och bättre när de samspelar, dessa filtren 1-2-3. Ta fram dem och testa själv att filtrera dig fram till en bättre backlogg!
Certifierad Produktägare
Vill du kunna driva refinement som de bästa POs och lära dig andra knep för att lyckas? Läs mer om vår utbildning som rustar dig för utmaningen som PO och inkluderar även erkänd certifiering.