Denne artikel stammer fra det trykte Computerworlds arkiv. Artiklen blev publiceret den CTO d. 13. april 2007.
effektivisering Løbende måling og opfølgning sikrer, at agil systemudvikling kører i mål til minimal tid.
Har man prøvet at spilde tid på analyse og design af systemfunktionalitet, som aldrig bliver implementeret i et system, så er man villig til at prøve en anden systemudviklingsmetode. Det var blandt andet baggrunden for, at Bankdata valgte at skifte en traditionel faseopdelt vandfaldsmetode ud med en agil udviklingsmetode.
Bankdata havde anvendt en traditionel faseopdelt vandfaldsmetode, hvor en foranalyse fastlægger, hvilke forretningsfunktioner der skal indgå i projektet.
Foranalysen blev fulgt af en detaljeret analysefase, hvor det blev analyseret, hvad de identificerede forretningsfunktioner bestod af. Efter analysefasen fulgte en designfase, hvor det kommende systems design og funktionalitet blev defineret. Designfasen rummer en teknisk specifikation af systemkravene, og det er her, at nogle projekter kan blive tvunget til at skære funktionalitet væk. Det skete for Bankdata.
"Det var nødvendigt at skære op til 50 procent væk efter at have analyseret og designet for at kunne levere et system på et for forretningen acceptabelt tidspunkt. De resterende 50 procent fungerede fint og dækkede behovene. Vi havde dog spildt en del ressourcer på unødigt arbejde," siger Rasmus Sørensen, underdirektør i Bankdata.
Defor var Bankdata villig til at starte et forsøg med eXtreme Programming (XP).
"For fire til fem år siden startede vi med XP som forsøg. Vores erfaring var, at XP var spændende, men en kende for ustruktureret i forhold til vores strukturerede verden. Vi undersøgte derfor forskellige udviklingsmetoder og besluttede at basere os på en agil RUP (rational unified proces, red.) i stedet for," siger Rasmus Sørensen.
Bankdata bruger iterationer
I den agile RUP laver man ikke en fuldstændig analyse og design, inden man begynder at kode. Udgangspunktet er, at tingene kan ændre sig, og man derfor skal udvikle i små bidder. Bankdata anvender blandt andet såkaldte iterationer af fire-seks ugers varighed.
I en iteration fokuseres på at levere kørende kode af noget bestemt funktionalitet. Når iterationen er gennemløbet, skal resultatet af udviklingen, kaldet leverancen, præsenteres for brugerne eller internt i projektgruppen.
For Rasmus Sørensen er en af fordelene ved den agile udviklingsmodel, at hver iteration leverer noget konkret at forholde sig til.
"Hver eneste iteration har leverancer til projektdeltagerne eller slutbrugere. Der er ikke bare tale om en analyserapport, der er reel kode at forholde sig til," siger han.
Det var ikke kun den mistede tid på unødvendig analyse og design, som fik Bankdata til at ændre deres udviklingsmetode.
"Vi fik mere ny teknologi og forskellige tekniske komponenter, vi ikke havde anvendt før. Vi havde haft nogle uheldige forløb, hvor færdigudviklede systemer blev sat i produktion uden at hænge ordentligt sammen. Eksempelvis kunne der være problemer med performance. Det skyldtes, at den ny teknologi først blev rigtigt gennemprøvet, når det kom i produktion," siger Rasmus Sørensen.
Ifølge ham bygger principperne i RUP på at afdække risici tidligt i forløbet. Man kan starte med at se på teknikken, hvis det er nødvendigt. Hvis man følger en klassisk vandfaldsmetode, begynder man først at se på teknikken sent i forløbet.
Fastsættelse af pris og tid
Bankdata fastlægger omfanget af et nyt projekt i et såkaldt projektgrundlag.
"Projektgrundlaget sætter rammen for, hvad vi vil med projektet. Et af vores problemer med foranalysen i vandfaldsmodellen var, at projektet ikke var ordentligt afgrænset. Vi forsøger at gøre projekterne mere specifikke fra starten ved at dele op i delprojekter. Når et delprojekt er færdigt, vurderer vi om det giver mening rent forretningsmæssigt at gennemføre det efterfølgende delprojekt," siger Rasmus Sørensen.
Bankdata har således gode erfaringer med en agil udviklingsmodel, men der er også udfordringer i modellen, der blev indført for tre et halvt år siden.
"Fastlæggelse af deadline er en af de udfordringer, vi kæmper med. I vandfaldsmodellen sagde vi, hvornår vi startede analysefasen, og hvornår vi forventede at være færdige. Når vi var færdige med analysefasen, kom vi med et bud på, hvornår vi kunne levere. I dag vil kunderne gerne vide, hvornår vi er færdige, når projektgrundlaget er udarbejdet. Vi er kommet til at give afleveringstider, før vi reelt har været sikre på det," siger Rasmus Sørensen.
Ifølge Ole Jepsen, stifter af Danish Agile User Group og medindehaver af konsulentfirmaet GoAgile, kan det være svært at sætte pris på et projekt, inden første iteration er udført. Han mener dog, at agil udvikling er bedre end traditionelle vandfaldsmodeller.
"Diskussion på behovsplan giver en lige så god indikation af pris som en 500 siders kravspecifikation. Ved et tæt samarbejde med kunden og iterationer af en måneds længde kommer man nærmere på sandheden end ved vandfaldsmodeller," siger Ole Jepsen.
En anden erfaren udviklingskonsulent, Charlotte Malther fra projektoptimeringsfirmaet Charlotte Malther Consulting, fremhæver agil systemudviklings gode muligheder for måling af projektfremdrift.
"Jeg har arbejdet med måling af projekter i 20 år, og min erfaring er, at agile gør det meget let at måle fremdriften i et projekt. Forudsigeligheden er langt større end i vandfaldsmetoden," siger hun.
De korte udviklingsiterationer af fire-seks ugers varighed gør det muligt at foretage målinger af den reelle udviklingstid og sammenholde den med den estimerede tid. Med de korte iterationer kan den overordnede projektplan løbende justeres med udgangspunkt i de reelle udviklingserfaringer.
Modtagelse hos udviklerne
Hos Bankdata har man helt afskaffet vandfaldsmodellen. Udviklerne har reageret forskelligt på den nye udviklingsmodel.
"En tredjedel har virkelig taget den til sig, en trediedel synes den er ok, og endelig synes den sidste tredjedel, at det er noget bøvl," siger Rasmus Sørensen.
Han mener, det er fordi, den gamle udviklingsmodel gav en vis tryghed, da den lovede at afklare alle usikkerheder.
"Det var selvfølgelig en falsk tryghed, men havde man skrevet analyserapport og gennemført design, gav det indtryk af et fuldstændigt gennemspecificeret system. Den nye model fordrer, at man tør skubbe noget foran sig," forklarer Rasmus Sørensen.
Mere end 20 projekter i Bankdata er blevet gennemført eller er ved at blive gennemført efter de agile principper. Ifølge Rasmus Sørensen har det været en succes, især hvis projekternes krav fra starten har været relativt gennemskuelige.
Faktaboks:
Vandfaldsmodel
Vandfaldsmodellen opdeler et udviklingsprojekt i en række faser som gennemløbes sekventielt. Vandfaldsmetaforen anvendes for at understrege, at man løber ned igennem fasernes analyse, design og konstruktion uden mulighed for at vende tilbage til en tidligere fase.
Rational Unified Process (RUP)
RUP er en iterativ udviklingsproces. I modsætning til vandfaldsmodellen gennemløber man udviklingsfaserne flere gange. RUP er ikke én udviklingsproces men et rammesystem, hvor udviklere kan udvælge de elementer fra RUP, der passer bedst ind i det konkrete projekt. Derfor kan RUP anvendes til både at understøtte meget rigide processer og mere fleksible udviklingsprocesser.
Agil certificering
Den internationale organisation Agile Project Leadership Network (APLN) er i gang med at udvikle et certificeringsprogram i agil systemudvikling. I spidsen for arbejdet står danskeren Ole Jepsen, der har arbejdet som systemudvikler og projektleder i 25 år.
Han har sammen med andre agile udviklingseksperter udarbejdet en såkaldt kompetencematrix for agile projektledere.
Certificeringen omfatter tre kompetenceniveauer for en agil projektleder. Kompetencematrixen beskriver i detaljer de enkelte kompetencer for hvert niveau. De tre kompetenceniveauer er foundation, practioner og mentor. De første certificeringer ventes klar før sommerferien.
De tre agile kompetenceniveauer:
Foundation: Teamleader, som kender alle "mekanikkerne" i iterative og agile projekter, og som kan håndtere et team på op til seks personer.
Practioner: Projektleder, som ud over "foundation" ved en masse om facilitering, og som kan håndtere en projektgruppe på op til 15 personer.
Mentor: Programleder, som ud over "practioner" kan være mentor for andre projektledere, og som kan håndtere programmer, der består af flere projekter. Derudover kan mentoren håndtere mange forskellige projekter - og tilrette sin ledelse af dem, så det passer til det enkelte projekt.
Agil metode kan stresse udviklerne
I agil udvikling afsættes typisk fire-seks uger til at gennemføre en såkaldt iteration. Inden iterationen starter, er der opstillet nogle mål for iterationen. Det er meningen, at udviklerne skal nå så meget som muligt, men ofte prøver udviklerne at nå det hele. Det kan skabe en stresset tilstand.
De agile principper lyder, at man arbejder optimalt med en arbejdstid på 35-36 timer om ugen.
OriginalModTime: 12-04-2007 09:50:21