Personal tools
You are here: Home hbg405

Lättrörlig utveckling i Helsingborg 18/5 2004

Var, när, hur är lättrörlig utveckling lämpligt?

Tid & Plats:

Helsingborg tisdag 18/5 2004
Kl 9:00-17:00
LTH Campus Helsingborg

Kartor
Parkering

Tema:

Lättrörlig utveckling av programvarubaserade system och produkter

För vem:

Utvecklare, testare, projektledare, produktchefer, projektsäljare, linjechefer

Presentatörer:

Erik Lundh, Compelcon AB
ULf Askund, LTH

Avgift:

500 kr (självkostnadspris)
Inklusive kaffe, lunch och dokumentation (i pdf-format)
Alla priser exklusive moms

Anmälan

Senast den 14/5 2004 Registrera dig här!

Arrangörer

LTH Campus Helsingborg
SPIN-SYD
Compelcon AB

Agenda

8:30 

Registrering

9:00

Inledning med Sten-Åke Tjärnlund
Sten-Åke Tjärnlund, näringslivsdirektör Helsingborgs Stad
"Jag kan inte ställa mig upp och gå i god för lättrörliga metoders förträfflighet. Allt jag vet, efter många års yrkesmässig kontakt med olika utvecklings­organisationer, är att de tunga metoderna alltför ofta inte fungerar"

 9:15 

Varför lättrörlig utveckling lyckas bättre
Erik Lundh, Compelcon AB
Om hur lättrörlig utveckling vänder upp och ner på den traditionella projektmodellen. Hur vi fryser tid och resurser istället för kravspecifikationen och låter innehållet bli det bästa vi förmår.

Du får också veta mer om några lyckade exempel på lättrörlig utveckling av produkter med hårdvara, telekom, webbutveckling, industriell styrning och medicinsk/säkerhetskritisk utrusning.

10:00 

Kaffe med smörgås

10:30 

Erfarenheter av XP i utbildning
Ulf Asklund, LTH
LTH har utbildat över 300 studenter i projektarbete med lättrörliga eXtreme Programming som arbetsform. Erfarenheterna är goda. Studenterna får en bra grundläggande förståelse för  programvaruutveckling, baserat på deras egna praktiska erfarenheter. De konfronteras med och får  själva lösa (med coachens och de övriga i teamets hjälp) problem inom  testning, inspektion, interaktion med kunden, krav, release, mm. Detta  gör att de får såväl en överblick över projektet som helhet, kunskap om  gruppdynamik,  som övning i detalj­programmering i Java.

12:00 

Lunch

13:00 

Lättrörliga utvecklingsmetoder
- En översikt över metoder och trender
Erik Lundh, Compelcon AB

Intresset för lättrörlig utveckling kom som en reaktion mot alltför tunga utvecklingsprocesser. En orsak var att namnkunniga experter var för sig hamnade i situationer där man fick mer än sin normala specialistroll. I regel hela projektet. Profiler som Kent Beck, Ken Schwaber och Jeff de Luca kom att formulera lättrörliga metoder som var snarlika men som hade olika utgångspunkt.

Kent Becks metod eXtreme Programming, XP , blev mest framgångsrik då den lyckades tala direkt till utvecklarna.  (Men XP misslyckas utan stöd från management.)

Några profiler lyckades samla de lättrörliga profilerna och få dem att samsas kring vissa grundprinciper som vi idag kalla Agile eller lättrörligt på svenska. Man bildade senare även internationella Agile Alliance

Agile-rörelsen har bl a fått industrifolk att adaptera Lean-synsättet från Toyota på programvaruutveckling.

Erik Lundh är Program Director i internationella Agile Alliance som informerar om, och stödjer, alla former av lättrörlig programvaru­utveckling

13:55 

Paus

14:00 

eXtreme Programming - En snabb väg till lättrörlig utveckling.
Erik Lundh, Compelcon AB
Hur man framgångsrikt inför extreme Programming(XP) som projektarbetsform.

  • Arbetsformer - 12 Best Practices
  • Timeboxing ger leverans på utsatt tid
  • Prioritering och planering
  • Utvecklarna - parjobb och testfirst
  • Kontinuerlig integration i praktiken
  • Kundrollen
  • Projektledare - behövs dom?

 

15:00 

Kaffe

15:30 

Debatt: Är lättrörlig utveckling framtiden?
Erik Lundh, Ulf Asklund samt gäster med erfarenheter av lättrörlig utveckling.

16:30 

Sammanfattning och frågor

Registrera dig här!


Introduktion

Varför är val av utvecklingsmetod så kontroversiellt? Jo, pinsamt få IT-projekt lyckas. Dagens IT-konjunktur har inte gjort det lättare. Därför känner de flesta av oss pressen att hitta vettigare arbetsformer.

Medan de allra flesta känner att de behärskar teknikfrågor och kan redogöra för tekniska aspekter i ett projekt, är det långt färre som a) verkligen upplevt ett riktigt lyckat projekt och b) kan förklara varför. Vi har helt enkelt alltför få positiva erfarenheter av projekt, där vi begriper hur vi lyckades. De flesta stora och dyra metoder är, precis som överlastade programprodukter, svåra att överblicka och begripa. Det krävs omfattande konsultinsatser för utbildning och införande innan man ens börjar kunna räkna hem investeringen. Vissa metoder har dessutom fått en slags ISO-status på marknaden. Inte oväsentligt är att det är en gigantisk marknad att införa omfattande metoder och verktyg, särskilt så länge kunderna är osäkra och sökande.

Just därför tittar alltfler organisation på lättrörliga arbetsformer istället för dyra, komplicerade processprodukter, hyllvärmande designverktyg och projekt som hetsäter budgeten medan utbrändheten sprider sig som tomtebloss.

Varför lyckas vi inte bättre?

Det finns mängder med fantastisk teknik som vi kan utveckla programvara med. Massor. Det finns inga gränser för vad vi kan göra. Men vi känner samtidigt att kraven ökar på att man skall hänga med på allt fler plattformar, verktyg och "teknologier" (underbart begrepp för allt från kapsylöppnare till rymdskyttlar). Vi hinner alltmer sällan bli riktigt bekanta med våra verktygs alla möjligheter innan ett nytt teknikskifte kräver vår uppmärksamhet. Ändå skall vi samtidigt hinna utveckla rätt produkt till rätt pris.

Hur kul är det att vara kund, då? Som kund/beställare krävs det att vi skall ha "beställarkompetens", vilket ofta blir att agera arg konsument och slug avtalsjurist om vartannat. Vi skall minsann fixa fram valuta för företagets pengar. Men samtidigt skall vi göra tillräckligt bra förarbete för att kunna begära fast pris på vår kravspecifikation. Och priset måste vi pressa. Helst skall utvecklarna inte ha "gott mått", det kostar pengar. Man vill ha "högt tryck i projekten".

Vi har sökt lösningar i omfattande dokument- och verktygs-drivna utvecklingsprocesser där vi säkerhetsställer att vi vet vad vi ger oss in på, helst innan vi fått erfarenheter "den hårda vägen", eller kanske egentligen fått känsla för och kläm på vad vi egentligen skulle bygga.

För utvecklarna innebär det att allt mer tid går åt för att lära sig verktyg som istället för programvara producerar papper med tveksamt värde, åtminstone efter projektslutet. Få projekt har råd att hålla en "komplett" up-to-date detaljdokumentation.

För beställare, kund (eller produktchef om det gäller produktutveckling) innebär det att vi skall ta beslut och prioritera om vad som skall göras för "våra" pengar efter att ha tagit del av digra, ofta metertjocka, luntor med underlag.

Alla kan inte åka till månen

Men "tunga" utvecklingsprocesser fungerar ju inte av egen kraft! Det har dom aldrig gjort. Väl fungerande projekt bygger på att alla lever sig in i och får en klar bild av vad vi försöker åstadkomma.

"I believe that this nation should commit itself to achieving the goal before this decade is out of landing a man on the moon and returning him safely to the Earth."

John F. Kennedy
(Bild från NASA:s arkiv)

Kennedy kunde sina vision-statements! De flesta projekt-kickoff's ter sig bleka i jämförelse. Man satte dock inte människor på månen tack vare dokumentdriven utveckling. Utan med starkt fokus i hela landet från presidenten och neråt. Det var också yttre hot i form av kapplöpning med Ryssland. Det var dramatik. Hela världen följde mån-programmets misslyckanden och framgångar.

Vi har alltför länge försökt efterlikna de formella processerna i miltär- och rymd-industrins mest framgångsrika utvecklingsprojekt, men glömt bort att våra mål, behov och förutsättningar sannolikt är annorlunda.

För några år sedan fick Erik Lundh chansen att vara med och tänka till på hur team från olika företag med olika utvecklingstradition skulle kunna jobba tillsammans under samma tak, grannar med högskolan. Man kunde dock gissa att närmast religiösa strider kunde komma att utkämpas om vems formella utvecklingsprocess som var bäst.

Men på institutionen för datavetenskap i Lund hade man lärt känna Kent Beck som just då skrev på en första bok om en ny lovande metod som ställde många begrepp på huvudet, men levererade bra resultat. Utvecklare älskade den, kunder älskade den. Projekt som följde metoden levererade! Boken hette "Extreme Programming - Embracing Change". Becks metod, som redan väckt stor uppmärksamhet bland arkitekturintresserade och på konferenser som OOPSLA, kallades Extreme Programming, förkortat XP.
(Detta var innan Microsoft döpte sin Windows-version!)

Â

Kent Beck

Lättviktiga processer?

XP är en så kallad lättviktsprocess. På svenska låter det som om den väger lätt, men på engelska tänker man direkt på motpolen till de tungviktsmetoder som förlamat många utvecklingsorganisationer. Fram till 2001 var "light-weight processes" gängse samlingsnamn på XP och ett antal likasinnade processer.

Agile

Men lättviktsprocesser började inte med XP. Det fanns redan ett antal etablerade, dock med mindre genomslagskraft än XP kom att ha: DSDM , SCRUM, FDD etc.

Det blev ju en viss oro bland övriga, ofta utmärkta, agile-metoder när det visade sig att XP fick så stor genomslags-kraft på kort tid. Några välkända profiler inom de olika metoderna tog initiativ till en allians. Samlingsbegreppet light-weight sågs dock som ett PR-problem. Ingen ville bli kallad lättvikts-guru. Någon föreslog ordet "agile" som närbesläktat alternativ till light-weight. På svenska översätter vi agile med lättrörlig. Alliansen kan du läsa mer om på www.agilealliance.org

Ken Schwaber
Agile Alliance

Agile Development, lättrörlig utveckling är nu ett samlingsnamn på ett antal metoder som bygger på samma grundidé men med lite olika fokus

En översikt över olika agile-metoder och dess utövare finner du i boken Agile Software Development Ecosystems.

Däremot är Agile ingen egen metod. Det är ett samlingsbegrepp. Vi körde alltså agile-projekt redan år 2000, med agile-metoden eXtreme Programming som utvecklingsprocess. Jag vet att några på Ericsson började pröva XP redan 1999.

Design då?

Vi designar i Agile, precis som i all vettig programutveckling. Skillnaden är i hur mycket och när. Kanadensaren Scott Ambler har skrivit en bra bok om "just enough design" , kallad Agile Modeling. Scott är en oerhört produktiv herre och en stark profil vid sidan om Kent Beck. Scott hinner med att resa till sydpolen medan han skriver flera böcker och massor av artiklar. Han har också startat en rörelse Agile Data för databas- administratörer som vill jobba lättrörligt. Länkar finns på xpseminarie.nu


Scott Ambler, Agile Modeling

Så här kan livet te sig för ett team som börjar med lättrörlig utveckling:

Teamet har valt att arbeta enligt den lättrörliga metoden eXtreme Programming (XP). Man börjar projektet med ett planeringsmöte. En eller flera "kunder", dvs folk med kund eller beställar-perspektiv sitter på ena sidan bordet. Utvecklare på den andra sidan. Alla ingår dock i samma team. Kunderna skriver funktioner och egenskaper styckvis på kort som sorteras efter prioritet. Utvecklarna tidsuppskattar korten en första gång. Kunderna tar sig en funderar och eventuellt prioriterar om för att få med det viktigaste vägt mot tidsåtgång. Utvecklarna åtar sig vid varje planeringsmöte bara så mycket som ryms i normal arbetstid under två veckor. Men teamet, både kunder och utvecklare, anstränger sig för att hitta det som är värdefullast att få fram just nu. I andra steget bryter utvecklarna ner kund-korten i utvecklaruppgifter på nya kort. Man uppdaterar sina tidsuppskattningar med den nya detaljnivån och uppdaterar tidsuppskattningarna på kundkorten. Kunden får sedan åter avgöra vad som är viktigast att få fram till nästa leverans om två veckor.

Under varje tvåveckors-period lär sig både kunder och utvecklare mer om det man håller på att bygga. Det kan bero på att man släpper ut den förra periodens produkt till en grupp testpiloter. Det kan bero på att man är ute och talar med de som möter konsumenten. Därför har perspektivet ofta förfinats efter två veckor. Man börjar också varje planeringsmöte (utom det första om det är en helt ny produkt) med att titta på leveransen av de två gångna veckorna. Man installerar gärna produkten från scratch , demonstrerar och kör acceptanstester. Först därefter, med ett färskt intryck av produkten, sätter man sig och jobbar fram vilka funktioner som är viktigast att få med de kommande två veckorna.


Planeringsmöte i lättrörligt pilotprojekt hos ABB

Själva utvecklingen sker så här:

Varje dag inleds med 5 min standup-möte kl 9.00 Alla står upp för att det inte skall dra ut på tiden. Man kollar av vad alla gjort sedan igår och tänker göra idag.

Alla utvecklare jobbar i par. En individ börjar med att plocka en utvecklaruppgift, ett löst kort. Man plockar alltid uppgifter i prioritetsordning utan hänsyn till egen kompetens eller svårighetsgrad. Sedan ber man en kollega jobba som parhäst enbart för denna uppgift. Pararbete är obligatoriskt för allt som blir skarp kod och går till leverans. En liknelse är kirurgen som gör en kritisk operation, då står det alltid en annan kirurg bredvid, följer varje snitt noga, ger råd och kan gripa in.

Paret börjar med att plocka ut produktens senaste integrerade kodbas från versionskontrollen och bekantar sig med problemet genom att skriva några testfall. Testfallen skrivs i det språk man utvecklar med, inte i specialverktyg som kräver inlärning. Därefter jobbar paret sig fram till en lösning på det problem som man formulerat som testfall. Kanske inser man efter ett tag att man inte förstått hela problemet och justerar eller lägger till fler testfall. När alla testfall är uppfyllda "städar man köket efter sig", dvs man gör en refactoring. Ibland blir det bättre om man gör testfall, kod och refactoring flera gånger fortlöpande. Vissa snitsiga kockar har t o m diskat klart grytorna när maten skall serveras.

När alla testfall kör och man städat efter sig skall koden integreras. Då kör man först fler testfall och acceptanstest. Därefter plockar man ner senaste kodbas, andra par har troligen hunnit slutföra och integrera några utvecklar-kort sedan paret började. Blir det för svårt att leverera in koden, dvs integrera i den gemensamma kodbasen, överväger paret att kasta bort koden och börja från början. Ibland vinner man mycket tid på det. Ingen kod är helig, det är tankar och insikter bakom som är värdet.

Vissa team integrerar, ett par i taget, med en fysisk stafettpinne, kanske en tung gammal manual, eller går bort till en speciell integrationsmaskin. Andra team har teknikstöd i form av verktyg för automatisk kontinuerlig integration, ex populära CruiseControl, ett gratisverktyg som finns för både Java och .NET. De flesta verktyg bevakar en gren i versionskontrollen. Denna gren skall man bara checka in i när man blivit klar med integration. Verktyget startar ett bygge för varje integrerad incheckning, bygger sedan installationskit, installerar i en nollställd testmiljö, och kör stora sviter automatiska acceptanstester. När allt är på plats kan teamet veta att man alltid har ett installationskit för produkten klart med alla de funktioner som passerat alla tester och byggen. Det kan finnas mer funktioner uppströms i systemet, men det som passerat så långt att det kommit ur sista testen är mycket säkrare att demonstrera för utomstående.

Teamet undviker övertid, för att i längden orka jobba intensivt och entusiastiskt på ordinarie arbetstid. Regeln "40 hour week" tillämpar vi i praktiken så att man inte jobbar övertid mer än någon enstaka gång. Vi jobbar aldrig över två veckor i följd.

Leverans varannan vecka

Varje tvåveckorsperiod avsluta med ett nytt planeringsmöte där man börjar med att titta på produkten som den ser ut efter de två senaste veckornas utveckling. Enbart funktioner som passerat alla tester ingår. Man installerar om möjligt från scratch, kör acceptanstester och demonstrerar de nya funktionerna. Först därefter, när alla har ett färskt intryck av dagsläget, börjar man plocka fram de kund-kort som är vikigast att få införda de kommande två veckorna. Förloppet är detsamma som vid planeringsmötet två veckor tidigare.

Varannan vecka får man en reality-check i form av en release. Utvecklarna kan inte skjuta på releasen, kunder kan inte inbilla sig att mer skall magiskt komma in än vad man faktiskt kan få in på 14 dagar. Marknadsfolk och projektsäljare är utmärkta i kundrollen. Utvecklarna retar ofta sig på att säljarna lovar för mycket.

Är säljaren med som kund kan man inte blunda för vad som krävs för att erbjuda en viss funktion. Man måste själv vara med och prioritera fram rätt. Till utvecklarnas förvåning älskar de flesta på säljsidan att vara med som kunder. Man får mer känsla för vad som är möjligt att erbjuda sina kunder och kan fortlöpande prioritera fram funktioner från färska marknadssignaler.

Men det blir väldigt synligt om någon medlem, kund eller utvecklare, prioriterar annat och uteblir från den gemensamma, viktiga, release-och-planerings-dagen varannan vecka.

Andra projekt kan lita på att vi har en ny integrerad produktversion att släppa, exakt på dagen, var 14:e dag. Man kan lita på dessa releasedatum var 14:e dag, de är huggna i sten, det kallas ibland time-boxing. Projektledare i större projekt älskar delprojekt som tillämpar strikt time-boxing!

Workshop under ett seminarium om lättrörlig utvekcling med XP i Stockholm


Erik Lundh

Erik Lundh har jobbat med produktorienterad utveckling av programvara i 20 år, sedan 90-talet med fokus på bättre sätt att utveckla. År 2000 fick Erik kontakt med eXtreme Programming(XP) och lättrörlig utveckling(Agile) via arbete med ett svenskt tvärindustriellt designcentrum. Erik var med på den första internationella XP-konferensen XP2000 och har deltagit varje år sedan dess. Designcentret lades på is, men XP väckte stort intresse. Sedan dess har Erik varit fullt upptagen med att propagera för bättre arbetsformer med XP som konkret metod, samt agera coach i nyckelprojekt när team och företag anammar XP som lättrörlig arbetsmetodik.

Erik har de senaste åren varit coach i ett antal XP-projekt med hög profil samt utbildat 100-tals utvecklare, testare, projektledare och linjechefer i lättrörlig utveckling med XP.

Eriks arbete med spridning och införande av XP och lättrörlig utveckling har uppmärksammats internationellt. På senare tid har han blivit inbjuden till flera expertpaneler på olika internationella konferenser tillsammans med bl a Kent Beck, Ron Jeffreis, Ward Cunningham, Mary Poppendieck och Gary Pollice (Rational)

Erik är också en mycket aktiv medlem i det sydsvenska kostnadsfria förbättrings-nätverket SPIN-SYD med ett 40-tal företag (Ericsson, ABB, IKEA, mfl ) samt Lunds Tekniska Högskola som medlemmar.

Publikationer:

www.compelcon.se/publications

Mer om Erik:

www.compelcon.se

 

Erik Lundh

OOPSLA 02: Erik i panel med Kent Beck, Ron Jeffreis, Rob Mee mfl

TCRE02 workshop under RE02

XP2002: Erik presenterade sitt sätt att sprida XP via nätverk och satt i panel med Kent Beck

Ulf Asklund

Ulf Asklund

Ulf Asklund är lektor vid Institutionen för Datavetenskap, Lunds Tekniska Högskola.

Ulfs forskningsområde är versionshantering och konfigurationsstyrning vid programvaruutveckling (SCM) samt software engineering i allmänhet. Ulf är speciellt intresserad av software engineering ur utvecklarens perspektiv, med fokus på verktyg och utvecklingsmiljöer. Ulfs forskar också på kollaborativa arbetsformer med datorstöd samt verktyg och processer för att hantera strukturer och data för produkter (PDM) Ulf undervisar och handleder både studenter och doktorander.

Ulf Asklund är författare till ett antal artiklar, medförfattare till boken " Implementing and Integrating Product Data Management and Software Configuration Management"

Ulf har ofta talat om SCM och PDM på svenska och utländska konferenser och är en aktiv medlem i sydsvenska SPIN-SYD, ett nätverk med 40-talet företag/organisationer. Ulf blev civilingenjör vid LTH 1990 och teknologie doktor 2002 vid samma högskola.

De tre senaste åren har LTH låtit studenter lära sig eXtreme Programming (XP) som arbetsform i deras allra första projektkurs. Ulf har hållit i årets omgång med ca 100 studenter. Totalt har 300 studenter genomgått kursen. Ulf berättar om erfarenheterna av detta.

Ulf Asklund, LTH

Registrera dig här!


Agenda

8:30 

Registrering

9:00

Inledning med Sten-Åke Tjärnlund
Sten-Åke Tjärnlund, näringslivsdirektör Helsingborgs Stad
"Jag kan inte ställa mig upp och gå i god för lättrörliga metoders förträfflighet. Allt jag vet, efter många års yrkesmässig kontakt med olika utvecklings­organisationer, är att de tunga metoderna alltför ofta inte fungerar"

 9:15 

Varför lättrörlig utveckling lyckas bättre
Erik Lundh, Compelcon AB
Om hur lättrörlig utveckling vänder upp och ner på den traditionella projektmodellen. Hur vi fryser tid och resurser istället för kravspecifikationen och låter innehållet bli det bästa vi förmår.

Du får också veta mer om några lyckade exempel på lättrörlig utveckling av produkter med hårdvara, telekom, webbutveckling, industriell styrning och medicinsk/säkerhetskritisk utrusning.

10:00 

Kaffe med smörgås

10:30 

Erfarenheter av XP i utbildning
Ulf Asklund, LTH
LTH har utbildat över 300 studenter i projektarbete med lättrörliga eXtreme Programming som arbetsform. Erfarenheterna är goda. Studenterna får en bra grundläggande förståelse för  programvaruutveckling, baserat på deras egna praktiska erfarenheter. De konfronteras med och får  själva lösa (med coachens och de övriga i teamets hjälp) problem inom  testning, inspektion, interaktion med kunden, krav, release, mm. Detta  gör att de får såväl en överblick över projektet som helhet, kunskap om  gruppdynamik,  som övning i detalj­programmering i Java.

12:00 

Lunch

13:00 

Lättrörliga utvecklingsmetoder
- En översikt över metoder och trender
Erik Lundh, Compelcon AB

Intresset för lättrörlig utveckling kom som en reaktion mot alltför tunga utvecklingsprocesser. En orsak var att namnkunniga experter var för sig hamnade i situationer där man fick mer än sin normala specialistroll. I regel hela projektet. Profiler som Kent Beck, Ken Schwaber och Jeff de Luca kom att formulera lättrörliga metoder som var snarlika men som hade olika utgångspunkt.

Kent Becks metod eXtreme Programming, XP , blev mest framgångsrik då den lyckades tala direkt till utvecklarna.  (Men XP misslyckas utan stöd från management.)

Några profiler lyckades samla de lättrörliga profilerna och få dem att samsas kring vissa grundprinciper som vi idag kalla Agile eller lättrörligt på svenska. Man bildade senare även internationella Agile Alliance

Agile-rörelsen har bl a fått industrifolk att adaptera Lean-synsättet från Toyota på programvaruutveckling.

Erik Lundh är Program Director i internationella Agile Alliance som informerar om, och stödjer, alla former av lättrörlig programvaru­utveckling

13:55 

Paus

14:00 

eXtreme Programming - En snabb väg till lättrörlig utveckling.
Erik Lundh, Compelcon AB
Hur man framgångsrikt inför extreme Programming(XP) som projektarbetsform.

  • Arbetsformer - 12 Best Practices
  • Timeboxing ger leverans på utsatt tid
  • Prioritering och planering
  • Utvecklarna - parjobb och testfirst
  • Kontinuerlig integration i praktiken
  • Kundrollen
  • Projektledare - behövs dom?

 

15:00 

Kaffe

15:30 

Debatt: Är lättrörlig utveckling framtiden?
Erik Lundh, Ulf Asklund samt gäster med erfarenheter av lättrörlig utveckling.

16:30 

Sammanfattning och frågor

Registrera dig här!