11.0 Vattenfall vs. cyklisk projektledning (del 4) – Projektlivscykel och resultat

Metoder för projektledning som är cykliska #

På grund av de problem som diskuterats ovan har en mängd olika alternativa tekniker för projektledning utvecklats under de senaste åren. Dessa tekniker är särskilt väl lämpade för utvecklingsinitiativ inom informationsteknologi.

Cyklisk projektledning är en metod för att uppnå projektets mål via en serie korta, sekventiella cykler. Varje cykel är kort, helst på mindre än en månad. Varje cykel fullbordar en del av projektet. Varje cykel inkluderar analys, design, implementering och testning. Detta skiljer sig väsentligt från vattenfallsmetoden, där var och en av dessa uppgifter sker i sin egen distinkta fas. Dessutom specificerar vattenfallsmetoden ett begränsat antal distinkta ögonblick för koncept, design, implementering och testning. Detta händer många gånger i följd i det cykliska synsättet.

Förståelse Programvara för projektledning Cykel #

Olika mjukvarukomponenter implementeras under cyklerna, som därför är fristående. Varje cykel utvärderas efter avslutad. Om nya eller alternativa behov för projektet uppstår som ett resultat av ökad förståelse, anpassas aktiviteterna i framtida cykler för att inkludera dem.

En cykel börjar med upprättande eller ändring av ett schema. Därefter utvärderas cykelns outputbehov. En design utvecklas, kodas och valideras. Därefter sker utvärdering och i vissa fall implementeras det nya programmet. Därefter kan följande cykel påbörjas för att slutföra projektets efterföljande komponenter. (För en mer detaljerad diskussion om cykliska tekniker och deras distinktioner, se till exempel Kroll, 2004; Chromatic, 2003; Stapleton, 2002.)

Följande är de främsta fördelarna med att använda den cykliska metoden:

  • Förbättrad produktkvalitet och funktionalitetsimplementering;
  • Förbättrad produktkvalitet och funktionalitetsimplementering;
  • Mer realistiska tids- och kostnadsuppskattningar;
  • Mindre belastning på projektgruppen;
  • Högre kvalitet.

De föregående kapitlen visar hur svårt eller omöjligt det är att korrekt definiera de nödvändiga förmågorna i de tidiga faserna av ett projekt. Cykliska tekniker implementerar den nödvändiga funktionaliteten i en serie korta cykler. Varje cykel undersöker inte bara, utan designar, implementerar och testar också en liten del av den nödvändiga funktionaliteten. Den snabba följden av design, utförande och testning är avgörande för kvalitetsförbättring. Som ett resultat kan teamen göra förändringar. Om en design inte fungerar i verkligheten blir den uppenbar under hela cykeln, vilket möjliggör modifiering. Dessutom gör den här typen av operationer det möjligt för konsumenter att begära ändringar.

Upprätthålla kvalitet #

En annan anledning till att cyklisk projektledning förbättrar kvaliteten är att varje cykel kräver ett intensivt samarbete mellan beställare, designers och programmerare. Ett multidisciplinärt team utvecklar och utför lösningar tillsammans. Kunden är främst engagerad i början, i utvecklingen av krav; Därefter skapar designers en design, och sist, programmerare bygger programvaran. Projektledaren fungerar som en länk mellan alla de olika parterna och ansvarar för att informationen levereras till rätt mottagare. I verkligheten möter många programmerare och designers aldrig klienten, som bara dyker upp igen under hela mjukvaruutvecklingsprocessen.

Cykliska tekniker för projektledning är särskilt väl lämpade för projekt där slutmålet inte kan definieras tydligt i förväg, såsom konstnärliga eller forskningsinitiativ. Att arbeta i cykler med ett mångsidigt team som inkluderar slutanvändare gör det möjligt för teamet att avgöra det verkliga syftet med projektet och det bästa sättet att uppnå det. Varje cykel erbjuder en chans till reflektion och korrigering.

Ett mål är definierat i förväg för vattenfallsprojekt. Reflektion över det ursprungliga målet är mindre troligt. Det initialt utformade målet förverkligas aldrig (fullständigt), och varken det ursprungligen uttänkta eller det förverkligade målet är sannolikt exakt vad som var avsett.

Slutligen ger cykliska projektledningsmetoder överlägsna resultat eftersom kunden genomför acceptanstestning. Dessutom höjs kvaliteten genom att inkludera tester som kriterium för högpresterande funktionalitet från början. Därför måste programmerare skapa ”misslyckade tester” (eller enhetstester) innan de skriver sin kod. Endast kod som klarar det underkända testet anses vara acceptabel.

Konsekvent testning #

Testorienterat arbete kräver att programmerare visar att ny kod är felfri innan de skriver den. De gör detta genom att skapa ett test (misslyckat test) som kommer att identifiera eventuella brister innan de börjar koda. Tänk på fallet där en programvara måste utvecklas för att bestämma rätt mängd förändringar som ska tas emot från en godismaskin. Till att börja med måste närvaron av en funktion som kan orsaka förändring verifieras. Denna funktion kan kallas ”ge ändring”. Ett enkelt test kan köras och det skulle avslöja att funktionen ”ge ändring” inte existerar ännu. Testet kommer att godkännas om programmeraren skapar funktionen men ännu inte förser den med någon substans.

Nästa steg är att avgöra om maskinen returnerar rätt summa pengar när en vara köps. Sätt in sextio cent i maskinen och köp ett föremål för femtio cent. Testet kommer att misslyckas eftersom funktionen förblir tom. Efter det skriver programmeraren koden. Han specificerar i funktionen ”ge växel” att mängden växel som ska returneras är lika med summan pengar som lagts i maskinen, minus kostnaden för det valda godiset. Testet bör nu godkännas. Denna procedur måste upprepas för varje del av programmet.

Inte bara koden måste testas tekniskt; funktionerna ska också testas (dvs acceptanstest). Innan kodningen påbörjas fastställer klienten kriterierna för vilka funktionerna som ska utvecklas kan godkännas (t.ex. hur snabbt en dator måste reagera på en viss användaråtgärd). Dessförinnan visade det sig vara mycket komplicerat och tidskrävande att definiera kriterierna för att tilläggskapaciteten kan godkännas. Icke desto mindre är konsumenternas aktiva deltagande i tester avgörande för projektets framgång.

Uppskattningar av tid och pengar #

Att förstå de funktioner som ska implementeras är inte förutbestämt i början av ett cykliskt projekt. Mängden tillgänglig tid anges. Överenskommelser träffas om projektets inriktning och under hela processen slås det fast vad som verkligen krävs, är fördelaktigt och genomförbart med tanke på det program som ska skapas. Eftersom de funktioner som ska implementeras inte är fastställda mål, minimerar cykliska projekt risken för att de timmar som krävs, och därmed pengarna, kan gå utom kontroll. För att undvika detta scenario tas den tillgängliga tiden som utgångspunkt och vad som är rimligt att förutse under den tidsperioden fastställs under hela processen.

Dessutom är cykliska projektledningstekniker betydligt mer tilltalande för projektgruppen. Teamet gör allt det kan inom den tilldelade tidsramen, men är inte pressade att uppnå orimliga deadlines eller arbeta inom en otillräcklig budget.

Dessutom förenklar cykliska tekniker administrationen av utländska leverantörer. Med vattenfallsmetoden kan ett projekt växa beroende av en enda leverantör tills projektet är slutfört, oavsett leverantörens prestation. Det är teoretiskt möjligt att ingå nya avtal för varje cykel eller till och med för att varje komponent ska levereras under en cyklisk arbetsteknik och, vid behov, byta leverantör.