11.0 Vandfald vs. cyklisk projektledelse (del 4) – Projektlivscyklus og resultater

Metoder til projektledelse, der er cykliske #

På grund af de problemer, der er diskuteret ovenfor, er der i de senere år udviklet en række alternative teknikker til projektledelse. Disse teknikker er særligt velegnede til informationsteknologiudviklingsinitiativer.

Cyklisk projektledelse er en metode til at nå projektets mål via en række korte, sekventielle cyklusser. Hver cyklus er kort, ideelt set varer mindre end en måned. Hver cyklus fuldender en del af projektet. Hver cyklus inkluderer analyse, design, implementering og test. Dette er væsentligt forskelligt fra vandfaldstilgangen, hvor hver af disse opgaver opstår i sin egen særskilte fase. Derudover specificerer vandfaldstilgangen et begrænset antal distinkte momenter for koncept, design, implementering og test. Dette sker mange gange efter hinanden i den cykliske tilgang.

Forståelse Projektledelsessoftware Cyklus #

Forskellige softwarekomponenter er implementeret gennem cyklusserne, som derfor er selvstændige. Hver cyklus evalueres efter afslutning. Hvis der opstår nye eller alternative behov for projektet som følge af øget forståelse, justeres aktiviteterne i fremtidige cyklusser til at inkludere dem.

En cyklus starter med etablering eller ændring af en tidsplan. Herefter evalueres cyklussens outputbehov. Et design udvikles, kodes og valideres. Herefter sker der evaluering, og i visse tilfælde implementeres det nye program. Dernæst kan den følgende cyklus påbegyndes for at færdiggøre projektets efterfølgende komponenter. (For en mere detaljeret diskussion af cykliske teknikker og deres distinktioner, se for eksempel Kroll, 2004; Chromatic, 2003; Stapleton, 2002.)

Følgende er de primære fordele ved at bruge den cykliske metode:

  • Forbedret produktkvalitet og funktionalitet implementering;
  • Forbedret produktkvalitet og funktionalitet implementering;
  • Mere realistiske tids- og omkostningsestimater;
  • Mindre belastning af projektgruppen;
  • Højere kvalitet.

De foregående kapitler viser, hvor svært eller umuligt det er korrekt at definere de nødvendige kapaciteter i de tidlige faser af et projekt. Cykliske teknikker implementerer den nødvendige funktionalitet i en række korte cyklusser. Hver cyklus undersøger ikke kun, men designer, implementerer og tester også en lille del af den nødvendige funktionalitet. Den hurtige rækkefølge af design, udførelse og test er afgørende for kvalitetsforbedringer. Som et resultat er teams i stand til at foretage ændringer. Hvis et design ikke fungerer i virkeligheden, bliver det tydeligt gennem hele cyklussen, hvilket giver mulighed for modifikation. Derudover giver denne form for operation forbrugerne mulighed for at anmode om ændringer.

Vedligeholdelse af kvalitet #

En anden grund til, at cyklisk projektledelse forbedrer kvaliteten, er, at hver cyklus kræver intenst samarbejde mellem klienten, designere og programmører. Et tværfagligt team udvikler og eksekverer løsninger sammen. Kunden er hovedsageligt engageret i begyndelsen, i udviklingen af krav; Dernæst skaber designere et design, og til sidst bygger programmører softwaren. Projektlederen fungerer som bindeled mellem alle de forskellige parter og er ansvarlig for at sikre, at de afgivne oplysninger leveres til den rette modtager. I virkeligheden møder mange programmører og designere aldrig klienten, som kun dukker op igen under hele softwareudviklingsprocessen.

Cykliske teknikker til projektledelse er særligt velegnede til projekter, hvor slutmålet ikke kan defineres klart på forhånd, såsom kunstneriske eller forskningsinitiativer. At arbejde i cyklusser med et mangfoldigt team, der inkluderer slutbrugere, gør det muligt for teamet at bestemme det sande formål med projektet og den bedste måde at opnå det på. Hver cyklus giver mulighed for refleksion og korrektion.

Et mål er defineret på forhånd for vandfaldsprojekter. Refleksion over det oprindelige mål er mindre sandsynligt. Det oprindeligt dannede mål bliver aldrig (fuldstændigt) realiseret, og hverken det oprindeligt udtænkte eller det realiserede mål er sandsynligvis præcis, hvad der var hensigten.

Endelig giver cykliske projektledelsesmetoder overlegne resultater, da kunden udfører accepttest. Derudover forbedres kvaliteten ved at inkludere test som kriterium for højtydende funktionalitet fra starten. Derfor skal programmører oprette ‘mislykkede tests’ (eller enhedstests), før de skriver deres kode. Kun kode, der består den mislykkede prøve, anses for acceptabel.

Konsekvent test #

Testorienteret arbejde kræver, at programmører demonstrerer, at ny kode er fejlfri, før de skriver den. De gør dette ved at lave en test (fejlende test), der vil identificere eventuelle potentielle fejl, før de begynder at kode. Overvej det tilfælde, hvor en software skal udvikles for at bestemme den korrekte mængde ændringer, der skal modtages fra en slikmaskine. Til at begynde med skal tilstedeværelsen af en funktion, der er i stand til at forårsage forandring, verificeres. Denne funktion kan omtales som ‘give ændring’. En simpel test kunne køres, og den ville afsløre, at funktionen ‘giv ændring’ endnu ikke eksisterer. Testen vil bestå, hvis programmøren opretter funktionen, men endnu ikke forsyner den med noget stof.

Det næste trin er at afgøre, om maskinen returnerer det korrekte beløb, når en vare købes. Indsæt tres cents i maskinen og køb en halvtreds cents genstand. Testen mislykkes, da funktionen forbliver tom. Derefter skriver programmøren koden. Han specificerer i funktionen ‘giv vekslepenge’, at mængden af vekslepenge, der skal returneres, er lig med det beløb, der er lagt i maskinen, minus prisen på det valgte slik. Testen skulle nu bestå. Denne procedure skal gentages for hver del af programmet.

Ikke kun koden skal testes teknisk; funktionerne skal også testes (dvs. accepttest). Inden kodningen påbegyndes, fastlægger klienten kriterierne for, hvilke kapaciteter, der skal udvikles, kan godkendes (f.eks. hvor hurtigt en computer skal reagere på en bestemt brugerhandling). Inden da har det vist sig at være meget komplekst og tidskrævende at definere de kriterier, hvorefter den ekstra kapacitet kan godkendes. Ikke desto mindre er forbrugernes aktive involvering i test afgørende for projektets succes.

Tids- og pengeoverslag #

Forståelse af de funktioner, der skal implementeres, er ikke forudbestemt ved starten af et cyklisk projekt. Mængden af ledig tid er angivet. Der indgås aftaler om projektets retning, og gennem hele processen fastlægges, hvad der reelt er påkrævet, gavnligt og gennemførligt i forhold til det program, der skal laves. Fordi de funktioner, der skal implementeres, ikke er fastsatte mål, minimerer cykliske projekter faren for, at de nødvendige timer, og dermed penge, kan komme ud af kontrol. For at undgå dette scenarie udnyttes den tilgængelige tid som udgangspunkt, og hvad der er rimeligt at forudse i den tid, fastlægges gennem hele processen.

Derudover er cykliske projektledelsesteknikker betydeligt mere velsmagende for projektteamet. Teamet gør alt, hvad det kan inden for den tildelte tidsramme, men er ikke presset til at opnå urimelige deadlines eller operere inden for et utilstrækkeligt budget.

Derudover forenkler cykliske teknikker administrationen af udenlandske udbydere. Med vandfaldstilgangen kan et projekt vokse sig afhængigt af en enkelt udbyder, indtil projektet er afsluttet, uanset leverandørens præstation. Det er teoretisk muligt at indgå nye aftaler for hver cyklus eller endda for hver komponent, der skal leveres under en cyklisk arbejdsteknik og om nødvendigt at skifte leverandør.