Archive for the ‘Scrum metodik’ Category

h1

En väldefinerad och välförankrad ”Definition of DONE” är ovärderlig!

tisdag, 16 mars, 2010

Fördelar med en bra DONE definition

En DONE definition beskriver som bekant vad som krävs för att teamet ska få lov att säga att dom är helt ”klara” med en User Story och för att de ska tillåtas demonstrera den på sprint demon. Typ en checklista för teamet när de utvecklar. Men…

.

En väldefinierad och förankrad DONE defintion som teamet följer disciplinerat är användbar och värdefull på så många fler sätt:

  • Underlättar vid User Story estimering av Product Backlog (så att man inte glömmer bort någon aspekt)
  • Hjälper teamet att bryta ner User Stories till tasks vid sprint planering
  • Gör det tydligt för Product Owner och stakeholders vad teamet menar när dom säger att dom är ”klara” men någonting
  • Beskriver önskad kvalitetsnivå (genom att teamet till exempel genom diskussion med Product Owner specificera vilka typer av tester som skall göras)
  • Hjälper teamet hålla den tekniska skulden låg
  • Ger kunden/beställaren möjlighet att vara ”nöjd” efter valfri sprint (då man vet att det som har blivit demat är helt klart och redo för paketering eller leverans)
  • Synliggör  för Product Owner och att det finns andra uppgifter utöver själva programmeringen som tar tidstakeholders.

Det går enkelt att komma på många fler fördelar! Någon som behöver ytterligare inspiration? 😉

Återkommer inom kort med vad jag tycker att en ”Definition of DONE” minst borde innehålla…

h1

Skälet till varför Agil utveckling lönar sig

fredag, 12 mars, 2010

Denna fem minuter långa video beskriver enkelt och övertygande varför det lönar sig att jobba agilt, dvs. varför levererat värde och ROI (Return Of Investment) blir högre när man…

  • arbetar i korta iterationer
  • ofta leverera små inkrement av systemet/produkten
  • leverar första versionen av systemet/produkten så tidigt som möjligt
  • har tät feedback från kund och verksamhet

Med andra ord, varför det lönar sig att jobba Scrum.

h1

Scrum på 10 minuter

torsdag, 11 mars, 2010

Hittade denna video på YouTube för en liten tid sedan. En riktigt ok sammanfattning av Scrum på endast tio minuter.

Håller kanske inte med om hans påstående att man är redo att tuta och köra efteråt men videon ger ändå en bra introduktion och förklar bra de grundläggande momenten och scrums roller.

h1

Belönar Scrum dåliga beteenden?

onsdag, 10 mars, 2010

En fråga jag ibland klurar på är om Scrum belönar vissa former av ”dåliga” beteenden? Dvs. finns det mekanismer i Scrum som uppmuntrar till fusk eller genvägar i någon form inom något område?

Jobbar jag exempelvis som utvecklare i ett vattenfallsprojekt vågar jag efter ett tag inte ge uppriktiga estimat då jag blir bestraffad om min arbetsprognos inte matchar den faktiska tid det tog för mig att göra jobbet. Konsekvensen blir att jag ger pessimistiska estimat med mycket luft. Detta blir jag såklart belönad för då jag nu lyckas hålla mina deadlines. Att jag får massa tid över för att klicka refresh på aftonbladet är ju iofs trevligt för mig – men ett ordentligt slöseri med tid och pengar. Detta är ett  exempel på när en process riskerar belönar ett dåligt beteende.

Frågan blir således: Om projektet drivs enligt Scrums alla regler skulle teammedlemmar kunna praktisera ”dåliga” beteenden som de senare belönas för?

Om svaret är ”nej” betyder det att Scrum är den magiska projektmodell som alla borde köra.

Är det så?

h1

Bygg inga pussel. Utveckla vertikalt!

tisdag, 9 mars, 2010

Vad innebär det att jobba inkrementellt? Hur levererar man en komplex lösning med en komplex arkitektur i små steg enligt en iterativ process såsom Scrum?

Iterativt = Upprepbar, lärande process. Små steg. Förvänta dig inte att få det rätt första gången. (Sprint = Iteration)

Inkrementellt = Bygg i vertikala tårtbitar (Stories) hellre än i lager, dvs. bygg inte en modul i taget för att i slutskedet försöka foga ihop dem. Bygg och leverera en liten del av helheten i varje iteration.

Så, vad är det man ska undvika?

  • Dela inte upp team efter applikationens lager.
  • Bygg inte en komponent i taget bara för att i projektets slutskede (under exempelvis integrationstestningen, eller än värre – efter leverans) upptäcka att bitarna inte passar ihop och måste skrivas om.
  • Bygg inte något under sprinten som inte resulterar i någonting som inte är av värde för slutanvändaren och som inte kan demonstreras på Sprint Demo.
  • Brodera inte ut komponenter med extra funktioner som kan ”vara bra att ha” eller som inte är nödvändiga just nu för den Story som ska levereras. (Med största sannolikhet är det antagligen ogjort jobb. ”Bra att ha”-funktioner visar sig ofta överflödig eller nödvändiga att skriva om när de väl ska anropas/användas.)

Hur ska vi göra istället?

  • Gruppera Stories i områden och bygg tvärfunktionella team runt varje område (som har kunskap som krävs för att utveckla och testa alla lager, exempelvis UI, server och databas).
  • Bygg en Story i taget och bygg alla funktioner som behövs (dvs. bygg det som behövs i UI, det som behövs på servern och det som behövs i databasen), och inget annat än det som behövs för Storyn.
  • Se till att Storyn som utvecklas under Sprint är tillräckligt avgränsad för att bli KLAR (dvs. kodad, testad, integrationstestad, dokumenterad, levererbar och installerbar)

Meh!?

…kanske någon tänker, ”Är det inte svårt att bygga något varje sprint som slutanvändaren kan använda och som har faktiskt värde för verksamheten?”

Svar ja.

De första Sprintarna kommer mycket energi och tid gå till att bygga skelettet och ramverket i arkitekturen. Och det måste det få göra annars riskerar man att få en slarvig struktur som inte går att bygga vidare från. Men ledordet även här måste vara – ”Bygg enbart och endast det du behöver, men gör det bra”. Försök inte förutse framtida behov utan bygg en arkitektur som är tillräckligt flexibel och stabil för att kunna anpassas, byggas ut och justeras i framtiden.

Balansgången är svår men däri ligger också nyckeln till förmågan att kunna leverera värdefull mjukvara efter varje Sprint och en av hemligheterna till hur man uppnår snabbhet och flexibilitet.

(Ursprungligen publicerad på blogg.sogeti.se)