Posts Tagged ‘scrum’

h1

Agila verktyg och mallar

måndag, 5 juli, 2010

Under åren jag jobbat med Scrum i rollen som utvecklare, testare, produktägar-proxy men framförallt som Scrum Master och Scrum Coach  har jag skapat mig en liten portfölj med verktyg och mallar jag tänkte jag skulle dela med mig lite av.

Det döljer sig ingen rocket-science bakom något av dem och jag påstår inte heller att det är de bästa tänkbara, men förhoppningvis finner någon dem användbara eller blir inspirerad av dem.

.

Första verktyget är ”Team Thermometer”, en enkel övning för teamet att öppna upp Sprint Retrospectiven med. Läs mer om övningen i detta gamla inlägg: ‘Hur rolig var sprinten?”.

Jag kommer fylla på med fler verktyg och mallar allt eftersom. Länken till sidan ”Agila Verktyg och Mallar” hittar du i höger-spalten.

h1

”Slack” ger högre kvalitet och effektivitet!

torsdag, 24 juni, 2010

Bakom Agiles princip ”The sponsors, developers, and users should be able to maintain a constant pace indefinitely” döljer sig mycket visdom.

Det kanske mest uppenbara principen säger är ”Sprinta [som i att rusa fort framåt] inte”, se till att ha ett jämt tempo för alla inblandade.

.

Lagom tempo

  • Skapa inte falska förhoppningar om produktivitet (genom att t.ex. jobba för mycket övertid) som leder till att varje sprint blir en stressad kamp för teamet att hinna klart med alla löften.
  • Ha inte för långa Sprintar som tillåter teamet producera mera än verksamheten hinner absorbera och ge feedback på.
  • Ha en bra balans av kompetenser inom teamet så att det inte uppstår trafikstockningar i slutet (för t.ex. testning, integrering, dokumentation, etc).

Blir varje sprint stressad kommer snart vissa bränna ut sig, andra tröttnar på att anstränga sig och troligtvis kommer teamet så småningom att hitta ”hemliga” sätt att hantera detta på för att få en drägligare tillvaro. Detta i sin tur leder till att teamet kommer att prestera olika mycket varje sprint. Förutsägbarheten (och förmågan att planera framåt) och kvalitén undermineras och saboteras.

”Om du alltid spurtar så joggar du i själva verket bara!”

Pauser

Vidare ges ofta rådet att ha en paus mellan två sprintar, så kallad ”Slack Time”, dvs. ha inte Sprint demo på förmiddagen och Sprint planeringen på eftermiddagen. Ge teamet en chans att återhämta sig och vila upp sig. Både produktägare och teamet kan dessutom behöva en liten stund att fundera och smälta feedbacken och tankarna från Sprint demon och Sprint retrospective och för att samla sig för nästa iteration. Se till att åtminstone ha en natt eller en helg emellan.

.

Projekt-fria dagar!

Det kanske mest kontra-intuitiva rådet är att inte enbart ha en naturlig paus (som t.ex. en helg) mellan två sprintar, utan en eller två fria arbetsdagar under vilka teammedlemmarna får ägna sig åt precis vad de vill. Uppmuntra självstudier, laborationer, test av nya verktyg och tekniker osv. men ställ absolut inga krav på resultat! Låt kreativiteten, nyfikenheten och det personliga intresset stå i fokus.

Men, skulle det dock dyka upp buggrapporter på det teamet nyss levererat måsta de släppa det de håller på med och återgå till arbetsbänken till dess att problemen är lösta.

.

Kvalité blir heligt

Dessa projekt-fria dagar blir snart heliga för varje teammedlem. Teamet kommer att göra sitt yttersta för att inte riskera bli bestulna på sin ledighet!

Teamet kommer göra sitt allra bästa för att uppfinna metoder och tekniker för att bättre säkra kvalitén (genom t.ex. automatiserade tester, m.m.) och kommer att föra djupare och bättre dialoger med produktägaren, kund och beställare för att inte missförstå kraven. Ingen vill vara ”orsaken” till att resten av teamet fick avbryta sina projekt-fria dagar för att lösa ett problem man borde fångat upp under sprinten.

Jag låter det vara osagt om teamets arbete att höja kvaliten med detta grepp föds ur höjd teamkänsla eller grupptryck. Det lämnar jag öppet för diskussion…

.

.
Ursprungligen publicerad på sogeti.blogg.se

.

h1

De agila metodernas framfart

onsdag, 16 juni, 2010

I en rapport från tidigare i år framgår det att vattenfall och iterative metoder tappar mark till fördel för agila utvecklingsmetoder. Rapporten berättar att 35% använder agila utvecklingsmetoder och att 10% av dessa kör Scrum. Men i rapporten finns många fler spännande siffror.

Det här är kanske inte rykande färska nyheter eftersom rapporten publicerades i januari 2010. Men å andra sidan tycker jag det är så pass spännande att det är värt att repetera och det är säkert många som inte hört talas om den tidigare. Rapporten baserar sig på svaren från 1300 läsare till Dr. Dobb’s Journal och undersökningen genomfördes Juli till Augusti 2009.

.

I bilden ovan kan man utläsa att det är ungeför lika många som använder sig av agila utvecklingsmetoder som vattenfall och iterativa, ca 35% vardera. Vad läskigt värre är dock att de resterande 30% föredrar att inte arbeta efter någon metod alls!

Vidare trodde jag att det skulle skilja stort mellan stora och små företag med hänsyn till utvecklingsprocess. Icke. Spridningen är stor i båda fallen.

Däremot verkar det över lag vara så att teammedlemmar och chefer har gravt olika uppfattning om vilken process man kör, om det är agilt eller inte. Detta känner jag dock definitivt igen!

.

Läs hela rapporten ”Agile Development: Mainstream Adoption Has Changed Agility – Trends In Real-World Adoption Of Agile Methods” skriven av Dave West och Tom Grant, Ph.D (samt Mary Gerush och David D’Silva).

h1

Om att mäta det agila projektets framgång (2/6) – Resultat

tisdag, 15 juni, 2010

Hur vet man att investeringen i utvecklingen matchar förväntningarna? Hur håller man koll på att projektet levererar ”i tid”? Hur mäter vi att mottagarna och beställarna är nöjda? Scrum påstår sig leverera mera funktionalitet av högre kvalitet som bättre matchar förväntningar och behov. Men hur mäter man och följer upp detta? Detta är andra delen av min artikelserie om tips, trix och verktyg för att mäta det agila projekts framgång och status.

Nedan listar jag några verktyg och mätvärden användbara för projektets produktägare och styrgrupp (Meta-Scrum) för bland annat release- och resursplanering. Men som alltid ska man ställa sig frågan varför man mäter något? Vad ska statistiken användas till? För vem är mätvärdet värdefullt? Historisk statistik på ett mätvärde i sig har inget värde, det är först när vi omsätter det till kunskap, insikt och handling som det ger oss något tillbaka. Fram tills dess är insamlandet och sammanställandet waste och kanske t.o.m. kontraproduktivt. Vi riskerar att belysa fel saker och kanske luras försöka bota symptom istället för det bakomliggandet problemet.

.

Release Plan vs. Effektmål

Vilka effektmål/affärsmål har vi satt upp med nästa Release? Vilka verksamhetsproblem hoppas vi lösa? Kommer nästa Release nå dessa mål? Ser prognostiserad tidplan ut att hålla?

Med en Release Burndown kan man enkelt prognostisera när scoopet för releasen är klar. Release Burndownen är också ett enkelt verktyg för att anpassa release-scoopet för att nå önskat release datum. Finns tydliga mätbara effektmål kan Produktägaren också avgöra om tillräckligt många av dessa blir uppfyllda.

Release Burndownen ger en tidig indikation på hur projektet går. Produktägare och styrgrupp kan avgöra om release-scoopet ska justeras, deadline flyttas fram eller om teamet behöver förstärkas med ytterligare resurser.

.

ROI kontra Kostnad

Får vi valuta för pengarna? Är förväntad Return Of Investment (ROI) högre än sprintens kostnad? När ROI/Sprint sjunker under en viss gräns är det kanske dags att vara nöjd och avrunda projektet… eller se över Produktbackloggen, dvs. ta ett kreativt omtag och  klura ut nya funktioner som kan skapa högre affärsvärde än de som ligger i produktbackloggen just nu.

Att leverera enligt Scrum ger oss möjlighet att kontinuerligt försäkra oss om att teamet jobbar på just de saker som ger mest affärsvärde. Men det är inte bara en möjlighet utan även produktägarens skyldighet att se till att just så är fallet.

Utöver själva sprintens kostnad växer förvaltnings- och driftkostnader desto större och komplexare systemet blir. Denna aspekt återspeglas inte i illustrationen intill men bör finnas med som beslutsunderlag vid releaseplanering.

.

Rest/Släp

Hög rest-ratio (dvs. ration rest-tasks från föregående sprint/sprintar kontra ny funktionalitet) kan signalera många olika saker men framförallt en oförmåga att avsluta features och efter sprint demo ha en produkt som är ”klar”, dvs. redo för paketering och leverans. Ju fler features som är  ”work in progress” mellan sprintar desto mindre flexibilitet får produktägaren i sitt arbete med att prioritera produktbackloggen och desto mindre frihet över release-planeringen och större osäkerhet kring release-prognoser.

Vidare, om det alltid följer med rester från tidigare sprintar in i nästa sprint finns det en risk att man missa eventuella underliggande tekniska problem eller andra typer av hinder som gör att teamet har svårt att avsluta features. Inte nog med att produktägaren får allt mindre ”nytt” levererat per sprint, projektets sanna status blir allt svårare att utläsa.

.

Driftsättnings-/Packeteringsinsats

Hur stor är den faktiska insatsen att driftsätta (alt. paketera produkten) efter nästa Sprint Demo? Har projektet skjutit upp tasks rörande överlämning till förvaltning, dokumentation, acceptanstest, installationsscript, etc. betyder det inte att man är redo för leverans bara för att Release Burndownen närmar sig noll.

Så länge Scrum-projektet inte levererar en potentiellt installerbar/levererbar ny version av systemet/produkten varje sprint förlorar man den kontroll och flexibilitet som Scrum utlovar.

Skjuts vissa saker upp tills det ”är dags” måste detta förankras med produktägaren (och eventuellt styrgruppen) eftersom Release Burndownen inte längre berättar hela historien. (Alternativt lyfts dessa arbetsuppgifter in i produktbackloggen och görs till en del av releasen.)
.

Risk Burndown

Agila utvecklingsmetoder hanterar risk på daglig basis naturligt genom korta feedback-cykler, dagliga möten, öppen insyn i teamets progress, ärlighet, tät dialog osv. Trots detta kan det vara en god idé att synliggöra de risker som finns och hur de förändras och hanteras under projektets gång. När projektet närmar sig release ska självklart denna risk helst nått noll.

Läs mer om Risk Burndown Chart i ett tidigare inlägg.

.

Project Success Sliders

Project Success Sliders är ett enkelt men kraftfullt sätt för stakeholders och produktägaren att förmedla sina förväntningar till teamet. I projektets inledande fas defineras ett antal ”sliders” som var och en ger uttryck för hur projektets framgång kommer betygsättas och bedömas.

Hur bra (eller dåligt) stakeholders och produktägare upplever att projektet går i jämförelse med uppsatta ”kriterier” bör följas upp löpande så att projektet så ofta som möjligt får en chans till feedback och möjlighet att agera och reagera om så krävs.

.

Project Success Sliders beskrevs först av Rob Thomsett i sin bok ”Radical Project Managment”. Nyligen släppte Mountain Goat Software ett snyggt och enkelt webb-verktyg för att skapa och ställa in project sliders – ”Project Success Calculator”.

.

Detta är del 2 av 6. Läs vidare:

Om att mäta det agila projektets framgång (1/6) – Introduktion

Om att mäta det agila projektets framgång (2/6) – Resultat

Om att mäta det agila projektets framgång (3/6) – Produktivitet

Om att mäta det agila projektets framgång (4/6) – Kvalitet

Om att mäta det agila projektets framgång (5/6) – Teamets nivå

Om att mäta det agila projektets framgång (6/6) – Agera på kunskap

(Länkarna uppdateras allteftersom artiklarna publiseras.)

h1

Om att mäta det agila projektets framgång (1/6)

fredag, 11 juni, 2010

På den gamla goda tiden gick det enkelt att ta reda på om det går bra eller dåligt för ett projekt. Hur många procent av kravlistan har vi bockat av? Hur stora (eller små) är avvikelserna från budget och deadlines? Samma frågeställningar fungerar inte tillfredställande i det agila projektet.

Vilka verktyg och mätvärden finns till hands när man jobbar agilt?

.

I ett agilt projekt finns det såklart oftast budget och deadlines men ingen detaljerad plan eller detaljerad kravlista att mäta avvikelser från. En av anledningarna till att man jobbar agilt är för att man insett att dessa måttstockar inte berättar något om hur bra produkt eller system man har byggt. Samt kommit till insikt om att planer bara är prognoser och inte något facit.

Detta betyder dock inte att vi ska sluta bry oss om hur bra eller dåligt ett Scrum-projekt går. En agil process som välkomnar förändringar och bygger på att skapar kunskap verkar dock slingra sig från att mätas. Vi måste ta till andra metoder och mätvärden än de vi kanske är vana med för att få en bra insyn i hur projektets sanna status är.

Först och främst borde vi förtydliga vad det är vi egentligen undrar när vi ställer oss frågan om ett projekt går bra? Kanske kan frågan styckas upp i följande, mer konkreta, frågeställningar:

  1. Är alla stakeholders nöjda? Tycker beställaren han/hon fått valuta för sina pengar?
  2. Upplever användaren att produkten/systemet är användbart och värdefullt?
  3. Håller produkten/systemet hög teknisk kvalitet och är fritt från buggar?
  4. Är systemet enkelt att förvalta/vidareutveckla?

.

Nedan listas förslag på mätvärden som kan användas för löpande utvärdering av ett projekts framgång och status och som beslutsunderlag under den löpande planeringen. I kommande artiklar (del 2-6) kommer jag beskriva var och en djupare och förklara vad dom syftar till och vad mätvärdet kan berätta om.

.

Agila mätvärden

.

Resultat
Projektets förmåga att göra stakeholders glada och leverera värdefull mjukvara enligt plan och prognoser…

  • Release Plan vs. Effektmål / ROI
  • Rest/Släp
  • Driftsättnings-/Packeteringsinsats
  • Risk Burndown
  • Project Success Factors

.

Produktivitet
Teamets förmåga att produktivt bygga och leverera funktioner…

  • Velocity – Trend
  • Velocity – Förutsägbarhet
  • Work In Progress
  • Focus Factor/DRAG
  • Time To Market

.

Kvalitet
Teamets förmåga att bygga kvalitativ mjukvara…

  • Buggar i produktion
  • Teknisk Skuld
  • Rest/Släp

.

Teamets nivå
Mår man bra och är motiverad gör man ett bättre jobb…

  • Agile/Scrum Mognadsgrad
  • Teamets välbefinnande

.

”You want the truth? You can’t handle the truth!”

Man får dock inte luras att tro att det finns egenvärde i något av ovanstående mätvärden! Eller än värre, ge sig i kast med att försöka sub-optimera med hänsyn till ett enskilt värde.

Alla former av suboptimeringar har en tendens att slå tillbaka och försök att belöna (eller bestraffa) team eller individer baserat på valfritt mätvärde riskerar sabotera projektet och kommer med tiden undergräva teamets effektivitet, moral och förmåga att bygga kvalitativ mjukvara.

Innan ni i ert projekt börjar föra statistik och historik fråga er varför ni mäter X, vilket problem hoppas ni kunna lösa och hur resultatet ska användas.

.

Detta är del 1 av 6. Läs vidare:

Om att mäta det agila projektets framgång (1/6) – Introduktion

Om att mäta det agila projektets framgång (2/6) – Resultat

Om att mäta det agila projektets framgång (3/6) – Produktivitet

Om att mäta det agila projektets framgång (4/6) – Kvalitet

Om att mäta det agila projektets framgång (5/6) – Teamets nivå

Om att mäta det agila projektets framgång (6/6) – Agera på kunskap

(Länkarna uppdateras allteftersom artiklarna publiseras.)

h1

Vår dagliga Sprint Burndown

tisdag, 1 juni, 2010

Dagens sprintplanering är precis avklarad. Lite bökigare än vanligt eftersom våra sprintmål denna sprint var väldigt spretiga men vi nådde i land till slut. Spretiga sprintmål riskerar sluta i att det blir svårt att fokusera och samlat och disciplinerat jobba mot en sprint demo. Dock borde vi kunna hålla bra koll på våra framsteg med hjälp av JIRA och vår dagliga Sprint Burndown, verktyg som vi blir allt bättre på att använda och utnyttja.

Då teamet sitter distribuerat har vi inga daglig Stand-Up Meeting utan kör istället med ”Daily Call-Up”. Strax innan telefonkonferensen mötet skickar jag också ut en fräsch och uppdaterad Burndown-chart för att vi ska kunna lyfta blicken och inte bara fokusera på ”här och nu”. Bäst hade såklart varit att träffas fysisk IRL runt en vägg med sprint planeringen och flytta runt på lappar istället för att uppdatera tasks i JIRA, men men, vi arbetar kontinuerligt med att göra det bästa av situationen.

Vår Sprint Burndown är absolut ingen rocket-sciense men tänkte att det alltid är någon som uppskattar att se exempel från verkligheten. Denna screenshot är några veckor gammal men passar ändå bra som exempel.

(Klicka på bilden för att se en större version)

.

Utöver att spåra återstående tid har vi längs med resan lagt till ytterligare dimensioner på vår burndown (information som extraheras från JIRA). Alla värden och estimat i tabellen ovan är i timmar.

Total – Summan av orginal-estimeringar för alla tasks. Vissa sprintar ”uppstår” arbete när vi lär oss mer om de tekniska utmaningarna. Ibland stryks detaljer funktioner (pga av det antingen blir inaktuellt att implementera dem eller för att de scoopas ut från sprinten). Vi har lärt oss att vår velocity ligger på ungefär 3,5 – 4,5 per dag och teammedlem och det är vi planerar efter.

Remaining – Återstående arbete, dvs. summan av uppskattad återstående tid (Remaining Estimate) för alla tasks som inte är ”Resolved”.

DONE – Avklarat arbete. När en tasks går från ”In Progress” till ”Resolved” ökar DONE med taskens ursprungliga estimat.

In Work – Original estimate summeras för de tasks som är ”In Progress” just nu. Denna försöker jag hålla så låg som möjligt så att det inte jobbas på för mycket parallellt.

.

Det jag saknar och eventuellt överväger att lägga till är:

Added/Removed Work – Möjlighet att se hur mycket arbete som läggs till eller tas bort under sprintens gång. Just nu ser vi bara hur totalen växer och minskar. Om en task tas bort och en annan läggs till syns ingen skillnad i grafen.

h1

Japan ♥ Lean & Agile?

torsdag, 27 maj, 2010

För några dagar sedan kom jag och min flickvän hem från en nästan två veckor lång visit till Japan.  Även om det var semester (och en riktigt bra sådan) kunde jag inte låta bli att reflektera över hur Lean och Agile passar ihop med den japanska kulturen och mentaliteten.

Fram tills nyligen trodde jag Leans hemland också kryllade av it-projekt som framgångsrikt kör Scrum eller andra agila utvecklingsmetoder. Men icke. Nyligen lärde jag mig att till och med Toytoa kör vattenfall på sin utvecklingsavdelning och efter att lärt känna Japan close-up så förstår jag att även om Lean fungerar perfekt i den japanska kulturen och mentaliteten så innehåller det agila manifestet och de agila principerna värderingar och utmaningar som för en japan kan ses som obegripliga, paradoxala eller till och med kanske förolämpande.

.

Ett välkänd japans ordspråk lyder ”Protect the Rules!”. Fundera över det en liten stund. Detta går helt stick i stäv med det agila manifestets ”Individuals and Interaction over Process and Tools”.

Individualism och självfötroende är skällsord. De äldre och dina ledarna är visare och utövar vist sin klokhet och makt. Ta inga initiativ själv utan att vänta på att ledaren i detalj beskriver uppgiften. Knappast en bra gryta för att koka ihop ett tight och kreativt team som upplever ”empowerment” och ”collective ownership”.

Vidare – precis som i Sverige, fast ännu mera, älskar man skyltar, områdeskartor, varningar och hänvisningar. Skulle du inte förstå skyltningen i tunnelbanan, gå vilse och sedan gå till kundtjänst och muttra på att det är svårt att hitta så kommer du självklart få fantastiskt artig och hövlig hjälp (på knacklig engelska). Vad du däremot inte får veta är huruvida personen som designade skyltningen och hänvisningarna kanske säger upp sig själv i skam över att han misslyckats att hjälpa dig hitta rätt. Detta sätt att se på ansvar och misslyckanden är inte något som uppmanar till kreativitet, mod eller viljan att ta initiativ.

Lean å andra sidan passar som fisken i handsken. Om man naivt och fördomsfullt tillåter sig förenkla kan man beskriva vissa aspekter av det japanska samhället som en effektiv och organiserad myrstack. Ingen är viktigare än någon annan och allt man gör är för kollektivets bästa. I fabriken ”myrstacken” är Lean (Toyota Production System) ett fantastiskt verktyg för effektivisering och förbättring, ett redskap som metodiskt och empiriskt analyserar och sedan formar om processen. Man behöver inte vara kreativ, blotta sina subjektiv åsikter eller ta initiativ för att applicera Lean, bara kunskap och analytisk förmåga krävs.

Japan har 0% arbetslöshet. ”Optimize the whole!”. Alla tar sitt jobb på största allvar och känner stor stolthet. Man jobbar långa dagar. Men vad man gör under timmarna på kontoret eller, om ett arbete går att göra mera effektivt, är nödvändigtvis inte alls lika intressant.

.

I Sverige har vi inga problem att klumpa ihop Agile och Lean. Vi ser massor med paralleller och likheter och för oss faller det sig naturligt att sträva efter båda värdegrunderna när vi formar vår utvecklingsprocess.

Utöver dessa reflektioner tog jag självklart med mig hem ett ton av andra intryck och upplevelser men dessa berättas någon annan gång, någon annan stans 🙂

.

PS. Jag ber om ursäkt i förväg om jag förargat någon med mitt naiva raljerande och smått fördomsfulla förenkling av det japanska samhället. Läs inlägget ovan med glimten i ögat och som en betraktelse som kanske berättar mer om mig själv än någon annan. DS.

h1

Teknisk Skuld är mera än bara ful-kod

måndag, 10 maj, 2010

Medvetenheten kring Teknisk Skuld och dess betydelse för ett projekts agilitet sprider sig till snabbt. Detta är såklart en önskvärd trend, och troligen en livsavgörande insikt för vissa företag. Men om du förringar Teknisk Skuld till att enbart handla om kodens kvalitet så lurar du dig själv och risken blir stor att du kommer att ta beslut på felaktiga grunder.

Jag brukar påstå att Teknisk Skuld är den största fienden mot ett agilit projekt, dvs. förmågan att varje sprint ta sig an nya krav, lika många som förra sprinten, och känna tillit till att det man nyss levererat uppfyller DONE kriterierna och är av hög kvalitet. Ju högre Teknisk Skuld, desto dyrare att förändra och bygga vidare på koden och underhålla produkten.

Teknisk Skuld är ryggsäcken av ogjort, slarvigt eller dåligt utfört arbete, en ryggsäck vars tyngd gör att utvecklingen av en produkt går allt långsammare. Teknisk Skuld kan introduceras oavsiktligt (arkitekturen visade sig vara fel och svår att skala, den överarbetade programmeraren introducerar många buggar pga slarv), eller avsiktlig (genvägar tas och delar av arbete, såsom t.ex. dokumentation och test, skjuts upp för att hinna klart med releasen).

Oavsett orsak och härkomst så är teknisk skuld som ett kreditkort, förr eller senare måste du betala tillbaka din skuld om du vill göra nya stora inköp med kortet. Betalar du inte tillbaka utan väljer att ta ett sms-lån för att finansiera nästa utbyggnad sitter du snart fast i ränte-fällan.

.

Teknisk Skuld kan grupperas i följande kategorier:

Programmerings skuld
Dålig kod kvalitet. Slarvigt skriven. Samma kod förekommer på flera ställen. Skör kod (dvs. svår att ändra på utan att något går sönder). Obegriplig för någon annan än utvecklaren själv. Krånglig och besvärlig att bygga vidare på.

Design skuld
Dålig eller ingen design. Stel arkitektur. Avsaknad av (eller felaktigt skurna) lager. En snårskog av klasser och moduler. Det är enklare att bygga den nya funktionen som ett plåster utanpå istället för att utnyttja arkitekturen som tänkt.

Test skuld
Delar av systemet har inte testats, testats dåligt eller på fel sätt. Okänd testtäckning. Fallerar ett gammalt automatiserat test är det svårt att veta om testet är fel eller om koden gömmer en defekt.

Kunskapsskuld – Det finns isolerad och odokumenterad kunskap. Kod är svår att förstå pga av avsaknad av kommentarer. Samma fel upprepas pga att lessons learned inte sprids. Isolerad kunskap skapar resurs-flaskhalsar. Nya teammedlemmar har svårt att komma upp till ett produktivt tempo. Förvaltning står handfallen när något går galet pga avsaknad av rätt teknisk dokumentation.

.

Farliga och fördummande förenklingar

Dessvärre verkar vissa ”agila experter” enbart rikta in sig på kod-aspekten av teknisk skuld. En farlig och fördummande förenkling. Vissa försöker till och med göra pengar på detta. Bara för att programmeringsskulden är enklare att mäta (med hjälp av olika  analytiska verktyg) än de andra aspekterna betyder det inte att man får glömma bort test-, design- och kunskapsskulden, aspekter som tillsammans kan gömma betydligt högre kostnader än programmeringsskulden.

För att ta ett exempel; ”The Agile Executive” är en blogg jag följer. Den tar bland annat upp teknisk skuld från en mängd olika och spännande vinklar och har skrivit en radda mycket bra artiklar om ämnet. Grytan bubblade dock över för mig när de häromdagen annonserade ut och hyllade Cutter Consortiums nya tjänst, ”New service boils down technical debt to $$; ties it to cost and value”, i en artikel. Tjänsten fokuserar enbart kring kodens kvalitet och genom att förenkla ner detta till några mätetal extraherar Cutter sedan priset på den tekniska skulden i pengar eller man-dagar.

Här är ett annat exempel på när den tekniska skulden reduceras till kod-kvalitet:
http://www.infoq.com/news/2010/03/monetizing-technical-debt

.

Nödvändiga förenklingar?

Missförstå mig dock rätt, jag tycker det är en vacker och eftersträvansvärde tanke att kunna åskådliggöra teknisk skuld med ett konkret pris. Kanske t.o.m. nödvändig för att få förståelse och mandat från Produktägare och beställare för att adressera och förebygga tillväxten av Teknisk Skuld.

Jag anser dock att förenkla det till några enstaka kod-tekniska faktorer är dock farligt förenklande, till snudd på fördummande, och svaret blir inget annat än en delmängd av sanningen.

h1

9 besvärliga Scrum-teammedlemmar…

torsdag, 6 maj, 2010

Den bluffande optimisten ”Det där är superenkelt att bygga! Det slänger jag ihop på några timmar. Nemas problemas!” Uppgiften visar sig sedan ta fem gånger så lång tid. Det låga ursprungliga estimatet visar vara en vit lögn för att få tillåtelse att bygga en rolig funktion (alternativt testa på ny spännande teknik). ”Meh! Hade jag sagt <Insert realistiskt estimat> timmar då hade jag ju aldrig fått koda det!”

Den beskyddande experten ”Absolut inte! Jag var med och byggde upp <Insert namn på en viktig modul i systemet> och jag tolererar inte att någon annan är där inne och meckar runt och saboterar utan att veta vad dom pysslar med. Och nej, jag tänker inte hjälpa till med att <Insert random uppgift som ligger strax utanför personens expertområde> – det ingår inte i min arbetsbeskrivning.”

Den nervöse lögnaren – Vågar inte berätta om hinder för teamet och Scrum Master pga av rädsla för att ”avslöjas”. Säger dagligen ”Jag är nästan klar, bara några timmar kvar…” istället för att ärligt berätta hur många timmar han/hon faktiskt tror återstår. Kanske av rädsla för att få skäll för att han/hon inte jobbar snabbare…

Problemhittaren ”Oj oj oj. Nej, nej. Det där är svårt. Oj, oj. Nä, alltså – kan jag inte få göra något annat, jag vet inte ens var jag ska börja…” Problemhittaren förvandlar bekymmer och utmaningar till problemberg istället för att se lösningar och metoder för att stegvis bestiga berget. Superhjälteförmåga: Energislukare.

Den gamle i gemet ”Vadå inte dök upp på Daily Stand-Up? Vad kallar ni det sa ni? Scrum? Ja, ja. Jag har sett allt. Vart annat år omorganiseras det. Var fjärde år skiftar vi process. Igår var det RUP, idag Scrum. Jag bryr mig inte längre vad ni kallar det. Kör på som ni vill. Jag sitter hur som helst och jobbar på som jag alltid gjort på mitt kontor här borta.”

Den kreative ”Jo, jag satt och jobbade på det där sprintmålet förra veckan… och då kom jag på att jag med liten ansträngning kunde bygga den här funktionen istället! Sedan tänkte jag att den där featuren blir mer kraftfull och flexibel om jag gjorde så här. <Insert lång förklaring.> Och det är anledningen till att vi inte kan visa upp den nya dialogen här idag på Sprint Demon.”

Den självutnämnde agile-gurun ”Knappast. Vi jobbar agilt, vilket betyder att jag inte behöver dokumentera någonting. Vidare tycker jag vi borde byta till KanBan, det skulle lösa alla våra problem och konflikter. Bara min ödmjuka åsikt.”

Den paranoide emeriten – Längtar tillbaka vattenfallsland då arbetsuppgiften var väldefinierad, förväntningarna tydliga och var och ens ansvarområden knivskarpt uppdelade. En tid då man tilläts bygga gedigna saker i sin egen verkstad, ostört tills dom var klara, utan att dagligen tvingas avrapportera till projektledningssubstitutet [Scrum Mastern]. Gör sitt bästa för att simulera vattenfall i Scrum genom isolation och diffusa summeringar på Daily Scrum (om han/hon dyker upp alls).

Hulken – Fixar allt och tar på sig att hjälpa alla tills han eller hon en vacker dag förvandlas till en gigantisk flaskhals och single-point-of-failure för teamet.

.

.

h1

Ligger KY-utbildningarna före högskolan?

tisdag, 4 maj, 2010

Igår hittade jag några bloggar från studenter på en KY-utbildning som studerade och praktiserar Scrum i sina projektarbeten. Men varför verkar högskolor och universitet ignorera den revolution som pågår i sverige och i mjukvaru- utvecklingsbranchen?

Jag tror att alla företag förr eller senare kommer tvingas bemästra agila utvecklingsmetoder och styra mot en lean organisation. Desto hårdare konkurrens desto tidigare kommer det ske (eller så dukar de långsamt under). Att det inte finns fler universitets- eller högskoleutbildningar som lyfter fram agila utvecklingsmetoder idag handlar antingen om okunskap eller att de inte förstått att de konkurrerar med KY-utbildningarna runtom i landet.

Vidare, jag känner flera nyutexaminerade kollegor i branschen som nyligen tagit språnget ut i yrkeslivet. Under utbildningen har de lärt sig klassisk projektstyrning och ett visst sätt att angripa planering och utveckling (och med lite tur också hört ordet ”test”). Nu ”tvingas” de ut i projekt och företag som lever enligt agiles och leans principer och värderingar, varav vissa går rakt emot all rim och fason de lärt sig under sin fleråriga utbildning.

Även om detta säkert en spännande resa (och troligtvis också lite förvirrande och frustrerande) för dem tycker jag ändå det är mycket underligt att högskolor och universitet inte gör mera för att förbereda dem inför den rådande verkligheten.

Sedan är det i och för sig inte så underligt att KY utbildningen som lär ut Scrum är just ”Projektledning med inriktning spel” då Scrum nästan är standard inom spelindustrin. Tv- och dataspelsindustrin är som bekant extremt konkurransutsatt och omsätter dessutom lika mycket pengar (om inte mera) som film och musik. Spel måste träffa hårda deadlines och kunden (dvs. spelarna) är extrema kritiker och har ett stort utbud av andra tillgängliga spel. Inte konstigt att man har anpassat sig för att snabbt kunna möta och matcha marknades förväntningar och snabba svängningar.

.

KY-Utbildningar

Läs mer om AcadeMedia Masters KY-utbildning Projektledning med inriktning spel (2 årig), eller få en inblick i hur studenterna på utbildningen har det genom att t.ex läsa Jonas Tolfs eller Finn Lydänges bloggar.

Ett annat exempel på KY-utbildning är Agile Developer, Webb-& systemutveckling (2 årig,  Stockholm och Göteborg)

.

Högskola/Universitet

En snabb sökning avslöjar att det några kurser:

  1. Informatik B, systemutvecklingsprojekt med SCRUM och eXtreme Programming (Örebro)
  2. Agile development processes (Chalmers tekniska högskola och Göteborgs universitet)

.

PS. Finns det fler kurser därute så tipsa mig gärna så kompletterar jag ovanstående sammanställning. DS