Thursday, August 28, 2008

Vi vill spela poker på jobbet!

Hur svårt kan det egentligen vara att gissa hur lång tid en arbetsuppgift tar att bli klar med? Vi som jobbar i IT-projekt brukar ju misslyckas med det här. Det har till och med gått så långt att våra misslyckanden av många betraktas som ett skämt!

Men det är ju en gissningslek och jag tror inte att det går att veta i förväg hur många timmar man behöver för en helt ny uppgift. Min erfarenhet är också att de som ska göra jobbet är bäst på att gissa och att fler personer gissar bättre än en person. Och det är här kortleken kommer in.

För att spela poker behövs en kortlek, som har en uppsättning av sifforna 1, 2, 3, 5, 8, 13 och 21 till varje person. Det går bra att riva papperslappar att skriva siffrorna på för att snabbt komma igång.

Innan man alls funderar på antalet timmar, pratar man lite om uppgifterna och försöker hitta den som verkar enklast. Den uppgiften får värdet en (1) poäng.

Nu är det dags att spela kort! Ta fram nästa uppgift och fundera en kort stund på hur mycket svårare den uppgiften är, i förhållande till den som var enklast. När alla med pokerfejs funderat klart: "Ett, två, tre!" och alla slänger samtidigt sina valda kort på bordet.

Man upptäcker snabbt att det ofta kastas kort med olika poäng och det är precis det som är poängen. Vi ser problem från olika håll och har kanske till och med tolkat arbetsuppgiften olika! Då korten skiljer sig, pratar man lite mer och berättar hur man tänkt. Sedan är det dags att spela igen - med samma uppgift. Så här håller man på till alla är överens.

När alla uppgifter är klara är det dags att prata om hur många timmar en poäng egentligen är. Är en poäng fyra timmar? Eller en dag? När korthajarna kommit överens har projektet nu en lista med uppgifter som tidsuppskattats. Troligtvis är den här typen av gissning bättre än då en ensam människa vid sitt skrivbord gör sina uppskattningar.

Den här metoden kallas planeringspoker och används ofta vid planeringsmöten i projekt som drivs med Scrum. Tro det eller ej, men det är också väldigt kul att tidsuppskatta med hjälp av poker.

Det ska vara kul att jobba!

Thursday, August 21, 2008

Från Fragile till Agile

Visst är IT-leveranser alltför ofta som ömtåliga paket och kanske till och med som skadat gods ibland? Kvalitet har länge varit en svår grej i vår bransch, men många av oss arbetar för att hela tiden bli bättre på det vi sysslar med.

Sedan en tid tillbaka arbetar vi i vårat lag så här:

Levererar ofta
Vi delar upp projekt i etapper om tre veckor, där varje etapp har en leverans. Det är faktiskt lättare att hantera, än att ha en enda jätte-leverans i slutet av ett projekt.

Testar ofta
Vi har skrotat den traditionella testfasen, som brukar vara i slutet av ett projekt. Då är det ju redan försent, eller hur? I varje etapp är istället test en naturlig del av utvecklingen.

Kompetens istället för fasta roller

För oss är det inte ett dugg kontroversiellt att inte ha någon i laget som vi kallar "projektledare". Projektledning sysslar vi däremot med i allra högsta grad, hela laget och varje dag.

Och vad får vi ut av det här då?

Personligen tycker jag att det är riktigt roligt att arbeta så här! Jag går till jobbet med ett leende. Glada projektmedlemmar är produktiva, det tror jag på.

Vi levererar bättre produkter med färre buggar. Tvärfunktionella lag hittar problem och löser dem snabbare, det är vår erfarenhet.

Vi har valt Scrum som arbetssätt och efter några projekt känns det som rätt vägval. I systemutvecklingsprojekt är också testdriven utveckling något som behövs; när man levererar var tredje vecka behövs automatisering. Läs gärna mer i tidigare inlägg.

Hur gör ni i er organisation för att leverera produkter med kvalitet, har du några tips?

Monday, August 18, 2008

Kan vi börja prata svenska, please?

Är svenska världens dåligaste språk, eller är kanske vi IT-folk dåliga på svenska? En presentation under en konferens om lättrörliga arbetssätt, fick mig att fundera på varför jag själv brukar ägna tid åt att förklara alla dessa uttryck som vi brukar slänga oss med om dagarna.

Jag gillar att prata om och arbeta enligt Scrum och vi som jobbar i projekt med hjälp av det här sättet, använder dagligen uttryck som Product Backlog, Sprint, Daily Scrum och Scrum Master.

Varför inte använda orden prioriteringslista, etapp, dagliga möten och lagkapten istället?

Jag tror inte att man behöver förklara vad ett dagligt möte är för något. De flesta av oss här i Sverige förstår nog också, på ett ungefär, vad som menas med en prioriteringslista. Hur många svenskar vet vad en Scrum Master är?

Jag brukar använda lättrörlig istället för det engelska ordet Agile, har du något annat förslag?

Friday, August 15, 2008

Börja dagen med att svara på tre frågor

Varför är det så komplicerat att jobba i team då man sysslar med IT? Är det våra verktyg som hindrar oss - skärm, tangentbord, skrivbord och mus - som inte direkt bjuder in till samarbete? Varför kan det inte vara som i datortillverkarnas annonser i tunnelbanan? Där några personer i fräsch kontorsmiljö ler stort och pekar på något spännande på datorskärmen.

De där annonserna är ju bluff, men jag har en idé: vi lämnar datorerna en stund och pratar med varandra istället!

Så här kan man göra
Alla som är med i projektet deltar i ett kort möte varje dag, som är max en kvart långt och förslagsvis klockan nio på morgonen. Under mötet svarar varje person på de här tre frågorna:

Vad har jag gjort sedan förra mötet?

Vad ska jag göra till nästa möte?

Har jag några problem som hindrar mig att lösa uppgiften?

Frågorna svarar jag på till hela laget och inte bara till chefen, projektledaren eller bästa jobbarkompisen. Eftersom mötet varar i en kvart, gäller det att vara kortfattad och hålla sig till ämnet. Eventuella problem löser man inte under denna kvart, men de personer i laget som kan hjälpa till träffas direkt efter mötet för att tillsammans komma fram till något bra.

Men blir det inte samma sak man står och pratar om varje morgon?

"Ja, jag sysslar fortfarande med dokumentationen..." eller "jag håller på med login-sidorna...".

Ja, det blir så om arbetsuppgiften är för omfattande.

Ett nytt problem har snabbt synliggjorts: vi behöver dela upp uppgifter till mindre delar. Allra helst deluppgifter som man kan göra klart på en arbetsdag. Dokumentationsuppgiften kan man ju dela upp till att skriva enskilda kapitel och systemutveckling är mycket enkelt att dela upp till mindre delar. Som login-exemplet ovan: ett formulär för att fylla i uppgifter, anrop till en användardatabas och så vidare.

Som projektmedlem känns det bra att berätta vad jag gjort klart under gårdagen och vad jag ska göra idag. Varje dag gör jag och laget små framsteg och kommer allt närmare ett avslut. På köpet får vi i laget dagligen en uppfattning om hur vi ligger till i projektet.

Det jag beskriver här är en av delarna i Scrum och kanske det enklaste att börja med i ett projekt. Vilka erfarenheter har du av att arbeta i team?

Thursday, August 14, 2008

Några vanliga missförstånd om Scrum

Det verkar som att Scrum och andra lättrörliga (agile) arbetssätt provocerar många i vår IT-bransch. Vad beror det på? Kan det vara så att vi, som gillar att prata om sådant här, helt enkelt fokuserar på fel grejer? Jag tror att vi argumenterar för mycket och ofta ställer metod ett mot metod två: "så här dåligt fungerar det idag och så här fantastiskt blir det med Scrum!".

Jag tror att många slutar att lyssna när argumenten haglar och nyfikna frågor trycks ner av ännu mer agile-hagel. Det här bäddar för missuppfattningar.

Här är några vanliga missförstånd som jag ofta stöter på och förhoppningsvis lyckas jag med att reda ut dem.

I Scrum sysslar man inte med dokumentation
Den här nivån av detaljstyrning finns inte i processen. Dokumentation är ju uppgifter i att-göra-listan, oftast som en självklar del av en leverans och det är projektet som avgör vad som ska finnas dokumenterat.

Varifrån kommer den här uppfattningen? Jag tror att det kan vara just den där jämförelsen vi ofta gör mellan metod ett (till exempel RUP) och metod två, där man tar upp tung dokumentation som en dålig grej som inte behövs och är tråkig. Det kanske inte är så konstigt att tro att man inte jobbar med dokumentation i Scrum, när man lägger upp det så här.

Scrum är en hetsjakt mot projektledare
Varför kallas projektledaren för Scrum Master, var en av mina första frågor? När jag förstod att Scrummästaren inte är en projektledare, undrade jag då vem som styr och planerar projektet när man tagit bort rollen. Är projektledarens uppgifter onödiga?

Självklart inte! I Scrum har hela teamet leveransansvar. Laget planerar tillsammans, tidsuppskattar dagligen och varje individ tar själv uppgifter att göra: "jag tar den här pucken!". Scrummästaren är en del av laget och är i princip en person som ser till att alla arbetar enligt processen.

Man kanske kan säga att den traditionella projektledarrollens uppgifter finns både i ett team och hos beställaren (som brukar kallas produktägare i Scrum). Uppgifterna har alltså inte tagits bort, utan snarare fördelats om.

Scrum har hittats på av en dyr IT-konsult i kostym
Scrum är en variant av Lean, kan man kanske säga. Och Lean Production hittades på i Japan för mer än femtio år sedan! På Toyota har man sysslat med det här sättet att arbeta på i många år och vi som jobbar i IT-branschen ligger tyvärr hopplöst efter resten av världen. Här i Sverige: inom bank & finans, bilindustri och läkemedel är Lean ett välkänt begrepp. Men hur står det till bland dessa företags IT-avdelningar?

Vilka fler missförstånd tycker du finns?