Thursday, November 15, 2007

Produktägare - i Scrum och agil systemutveckling

Eftersom jag inte hittat någon svensk beskrivning av rollen som Produktägare och alla inte är anglofiler kommer här en sammanfattning av den utmanande och engagerande rollen. Baserat på info från bl.a:
www.scrumalliance.org
Kent Beck - Extreme Programming, Embracing change.
Kent Beck - User stories applied
och egen erfarenhet.

Produktägare
I Scrum och agil systemutveckling generellt, utses alltid en person som har yttersta ansvaret att representera kundens intressen, produktägaren. Denne utför sitt ansvar genom att identifiera och prioritera "user stories" (funktioner) inför varje inkrement av funktionalitet som skall byggas (iteration) . Produktägaren svarar på frågor från utvecklingsteamet under iterationen om vad som skall byggas och hjälper teamet att anskaffa nödvändig information från verksamheten . Produktägaren svarar inför verksamheten på frågor om systemets funktionalitet och prioritering.

Det är en förutsättning att vara tillgänglig för utvecklingsteamet, på plats, särskilt under iterationsplanering och demonstrationer.

Produktägaren hjälper teamet att vid behov lyfta ut funktionalitet ur en iteration eller skala ner åtagandet. Denna person kan komma från olika discipliner och kan naturligtvis använda sig av omgivande kompetenser och kundrepresentanter för att fatta beslut eller för att förstå innebörden av olika vägval och prioriteringar.

Produktägaren skall uppmuntra att systemet växer på ett sådant sätt att det möter speciella behov hos kunderna och marknaden.

Produktägaren ansvarar för ROI och att den funktionalitet som byggs motsvarar ett faktiskt och aktuellt behov hos verksamheten. Inom disciplinen Lean utökas denna roll till att ofta vara både initiativtagare, marknadsförare och del av teknisk utveckling av produkten, detta brukar kallas Produkt-champion.

Produktägaren är inte ensam
Produktägare är en ansvarsfylld roll som innefattar att försöka tillgodose och prioritera mångas intressen. Därför är det vanligt att produktägare omger sig med ett representativt kundteam och användbarhetsexperter där så möjligt. En användbarhetsexpert kan vara ett ovärderligt stöd i att förstå och tillvarata användares verkliga behov, vilket brukar vara nyckeln till en produkts framgång.

Utvecklingsteamet är också ett viktigt stöd till produktägaren genom att vara de som förklarar konskekvenser av olika vägval och prioriteringar, och att komma med förslag, idéer och ifrågasättanden och ständigt hjälpa produktägarens arbete framåt.

ScrumMaster/Projektledare är också ett stöd till produktägaren som beskrivs nedan.

Vad gör projektledaren då?

En projektledare som verkar i ett agilt utvecklingsprojekt har som huvudsaklig uppgift att undanröja hinder för teamet, att vara ett stöd för produktägaren att kommunicera med omvärlden och resten av organisationen, att stimulera och verka för metodförbättring och teamstärkande aktiviteter.

Projektledaren ansvarar för att synkronisera planering med verkligheten och kommunicera detta med intressenter. Projektledare underlättar kommunikation från kunder, användare, sponsorer, ledning mm till teamet och också kommunikationen internt i teamet, den som sker mellan produktägare och utvecklare exempelvis.

Inom Scrum kallas detta ScrumMaster för att rollen inte skall förväxlas med den traditionellt beskrivna projektledarrollen.

Vad som skett är ett skifte av vissa uppgifter till produktägaren, såsom vad som faktiskt skall utvecklas. Vissa uppgifter som traditionellt utförts av projektledare, som detaljplanering av aktiviteter har skiftats till utvecklingsteamet som gör detta under iterationsplaneringar. Inom agil systemutveckling har den kontrollerande uppgiften hos projektledaren ersatts med ofta och regelbundna demonstrationer av den utvecklade produkten, som hålls av utvecklingsteamet själva.

Produktägaren som kund
Produktägaren kan vara ensam kundrepresentant eller ta hjälp av flera kundrepresentanter genom exempelvis ett utvalt kundteam som kan innehålla testare, riktiga användare (inklusive drifts- och supportpersonal) och användbarhetsexperter.

Som kund finns uppgiften att skriva "user stories" (korta funktionsbeskrivningar) som sedan utvecklingsteamet kommer använda i sina planeringsmöten. Det finns flera anledningar till att kunden och inte utvecklarna skriver dessa.

Den ena är att user stories skall skriva på kundens och verksamhetens språk, inte på teknikernas språk. Det gör att kundteamet förstår vad som skall prioriteras och att produktägare och team kan förstå det verkliga värdet och syftet med en user story.

För det andra faller det sig naturligt att produktägaren och kundteamet som de primära visionärerna för produkten är de bästa att uttrycka produktens beteende.

För att skriva bra user stories behövs övning och erfarenhet. ScrumMaster och utvecklingsteam eller andra personer som har tidigare erfarenhet av detta kan assistera produktägare och kundteam för detta.

Det är också kunden som tillsammans med utvecklare skall formulera acceptanstester. För det är kunden som vet vad det förväntade resultatet av en user story är, vilka test som skall passeras för att den utvecklade funktionen skall anses som klar (för denna gång). Utvecklaren hjälper kunden att specificera och implementera testet.

Utmaningar för produktägaren
Att vara produktägare är en ansvarsfull roll. Några utmaningar som kan finnas är:
  • Motstå frestelsen att lägga till mer viktigt arbete under iterationen
  • Att vara inställd på att göra svåra och hårda prioriteringar under iterationsplaneringen
  • Balansera avnämares olika och ibland motstridiga intressen
Produktägaren är enligt min uppfattning den mest centrala personen i ett utvecklingsprojekt. Utan produktägare - ingen produkt.

No comments: