Skip to main content
Key Takeaways

Formålet med projektledelse: Brug af projektledelse hjælper med at løse problemer som oversete krav og uklart ejerskab inden for softwareudvikling.

Projekttyper: Forskellige softwareprojekter kræver forskellige ledelsesfokusområder, fra nyudvikling til opdateringer og mobilapplikationer.

Brug af agile metodologier: Agile, Scrum og Kanban giver softwareteams forskellige fordele, og hver metode egner sig til forskellige projektbehov.

Vigtige risici: Almindelige risici omfatter ukontrolleret udvidelse af projektomfanget, teknisk gæld og utilstrækkelig testning, som alle kræver strategisk ledelse.

Hvis du ikke bruger projektstyring til softwareudvikling (eller den rigtige projektstyringssoftware), løber du sandsynligvis ind i alle mulige problemer, der kan få udgivelser til at mislykkes: oversete projektkrav, ukontrolleret scope, dårlig kommunikation og uklart ejerskab. Projektstyring hjælper dig med at tage kontrollen og levere flere udgivelser til tiden, inden for budgettet og det aftalte scope.

Denne guide dækker alt, hvad du har brug for at vide om projektstyring til softwareudvikling. Du lærer praktiske rammer, der hjælper dig med at levere hurtigere, reducere risici og opbygge en proces, som dit softwareudviklingsteam kan fastholde. 

Hvad er softwareprojektstyring?

Softwareprojektstyring er disciplinen med at planlægge, koordinere og føre tilsyn med skabelsen eller videreudviklingen af softwareprodukter gennem softwareudviklingens livscyklus. Det omfatter scope, tidsplan, budget, kvalitet, teamdynamik og kommunikation med interessenter for alle initiativer, hvor fungerende software er den primære leverance.

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Softwareprojekter medfører unikke udfordringer, som generiske projektstyringsrammer ikke fuldt ud tager højde for. Her er en opsummering af forskellene.

DimensionGenerel projektstyringSoftwareprojektstyring
ScopevariationFastlægges tidligt, ændringer håndteres formeltKrav ændrer sig løbende, efterhånden som brugerne giver feedback
LeverancetypeFysiske eller dokumentbaserede resultaterUhåndgribelig kode, API'er og brugergrænseflader
FeedbacksløjferGennemgang efter levering eller inspektion ved faseovergangeKontinuerlig integration, sprintgennemgange, betatest
VærktøjerGantt-diagrammer, værktøjer til ressourceudjævningProblemtrackere, Git-repositorier, CI/CD-pipelines
TeamstrukturRollebaseret hierarkiTværfunktionelle teams med fælles ejerskab

Softwareudvikling sammenlignet med softwareprojektstyring

Softwareudvikling er arbejdet med at skrive, teste og implementere kode. Softwareprojektstyring er arbejdet med at sikre, at koden bliver skrevet, testet og implementeret på en måde, der leverer værdi til tiden og inden for budgettet.

Her er en sammenligning af målene for softwareudvikling og målene for projektstyring, som illustrerer de vigtigste forskelle.

UdviklingsmålProjektstyringsmål
Byg funktioner, der opfylder de tekniske specifikationerLever de rigtige funktioner på det rigtige tidspunkt
Skriv ren kode, der er nem at vedligeholdeHold scope, budget og projektplan afstemt
Løs fejl og reducer antallet af defekterHåndter risici, afhængigheder og interessenternes forventninger
Optimer systemets ydeevneKoordiner tværfunktionelle teams og fjern blokeringer

Typer af softwareprojekter

Her er en oversigt over de mest almindelige typer softwareprojekter:

  • Ny softwareudvikling: Du bygger fra bunden uden begrænsninger fra ældre systemer. Projektstyringen fokuserer på afdækning af krav, arkitekturbeslutninger og hurtig prototyping. Den største risiko er ukontrolleret scope, fordi alt føles muligt.
  • Opdateringer, patches og løbende vedligeholdelse: Dette er indsatser med et mindre scope og forventninger om korte leveringstider. Projektstyringen fokuserer på prioritering, regressionstest og koordinering af udgivelser. Risikoen her er ophobning af teknisk gæld gennem genveje.
  • Projekter til mobilapplikationer: Mobilprojekter har hurtige iterationscyklusser, der drives af tidsplaner for appbutiksgodkendelser og mange forskellige enheder. Projektstyringen omfatter platformspecifik kvalitetssikring, beslutninger om funktionsparitet og sløjfer med brugerdata.
  • Virksomhedsløsninger og SaaS-løsninger: Disse medfører omfattende krav til compliance og skalerbarhed. Projektstyringen skifter fokus til sikkerhedsgennemgange, overvejelser om arkitektur til flere lejere og koordinering med lange salgscyklusser. Interessenthåndteringen bliver mere kompleks.
  • Systemintegrationer og datamigreringer: Arbejdet er meget teknisk og i høj grad afhængigt af eksterne systemer. Projektstyringen fokuserer på kortlægning af afhængigheder, datavalidering og planlægning af tilbagerulning. Tidsplanrisikoen er over gennemsnittet, fordi tredjeparts-API'er og ældre systemer introducerer uforudsigelige blokeringer.

Projektstyringsmetoder til softwareteams

Agil

Agil er en iterativ tilgang, hvor arbejdet leveres i små, anvendelige trin. Teams planlægger, bygger, tester og gennemgår arbejdet i korte cyklusser og bruger løbende feedback til at justere retningen. De fire værdier fra Det Agile Manifest (individer frem for processer, fungerende software frem for dokumentation, kundesamarbejde frem for kontraktforhandling og reaktion på forandringer frem for at følge en plan) danner rammen om filosofien.

En agil metode passer bedst, når kravene sandsynligvis vil ændre sig, når slutbrugerfeedback skal forme produktet, og når teams arbejder samme sted eller har stærke vaner for asynkron kommunikation. Den passer dårligt til projekter med faste regulatoriske milepæle eller kontrakter med fast omfang, hvor ændringsordrer medfører økonomiske sanktioner.

galen low headshot

Her er, hvad jeg har lært på den hårde måde

Agil projektledelse kræver kulturelle forudsætninger, som de fleste organisationer undervurderer. I har brug for psykologisk tryghed, så udviklere kan gøre opmærksom på problemer uden frygt. I har brug for bemyndigede produktejere, som kan træffe beslutninger om prioritering uden at eskalere enhver afvejning til en vicepræsident. I har brug for reelt tværfunktionelle teams, ikke specialister, der sidder i en fælles Slack-kanal.

 

Uden disse fundamenter ender teams med at praktisere det, jeg kalder ceremonidrevet udvikling—de afholder daglige standupmøder, udfylder sprinttavlerne, holder retrospektiverne og leverer stadig for sent, fordi den underliggende dysfunktion ikke har ændret sig.

Scrum 

Scrum strukturerer agilt arbejde i sprint, som er iterationer af en fast længde på typisk én til fire uger. Der er tre centrale roller: Scrum-masteren, som faciliterer processen, produktejeren, som ejer produktbackloggen, og udviklingsteamet, som udfører arbejdet.

Hvert sprint begynder med sprintplanlægning, hvor teamet udvælger de backlogelementer, det forpligter sig til. Hver dag skaber et kort standupmøde fælles overblik over projektets fremdrift og blokeringer. Ved sprintets afslutning viser teamet det, der er bygget, ved en sprintgennemgang og undersøger, hvad der kan forbedres, i et retrospektiv.

Scrum fungerer godt, når teams har et stabilt medlemskab, klare sprintmål og en produktejer, der reelt er tilgængelig. Metoden bryder sammen i miljøer med meget arbejde, der opstår akut, delte ressourcer på tværs af flere Scrum-teams eller organisationer, hvor "sprintforpligtelsen" behandles som en kontraktlig forpligtelse snarere end en prognose.

Kanban

Kanban bruger en visuel tavle (dvs. en Kanban-tavle) med kolonner, der repræsenterer arbejdsgangens faser. Arbejdselementer trækkes fra venstre mod højre, efterhånden som kapaciteten bliver tilgængelig. Den centrale mekanisme er WIP-grænser, som begrænser, hvor mange elementer der kan befinde sig i en enkelt kolonne ad gangen. WIP-grænser forhindrer overbelastning og fremhæver flaskehalse.

Kanban fungerer godt for vedligeholdelsesteams, supportdrevet arbejde og ethvert miljø, hvor prioriteterne ændrer sig dagligt. Det fungerer også godt for teams, der bevæger sig væk fra ad hoc-projektledelse, fordi tavlen gør usynligt arbejde synligt uden at kræve en fuldstændig omlægning af processen. 

Get timely perspective on the shifts, decisions, and trade-offs shaping your role, plus practical resources you can put to work.

Get timely perspective on the shifts, decisions, and trade-offs shaping your role, plus practical resources you can put to work.

Hybride tilgange

Hybride metoder som Water-Scrum-Fall kombinerer den indledende planlægning fra vandfaldsmodellen med den iterative gennemførelse fra Scrum.

I nogle organisationer er en hybrid tilgang et velovervejet svar på projekter, der reelt har brug for både styring og agilitet. Men hvis jeres hybride tilgang betyder, at I laver sprintplanlægning, men springer retrospektiver over, eller at I skriver et projektkommissorium, men aldrig opdaterer det, undgår I blot at forpligte jer.

Testen er enkel: Kan I forklare, hvorfor hvert element i jeres hybride tilgang er der, og hvilket problem det løser? Hvis svaret er "sådan har vi altid gjort", har jeres metode brug for sit eget retrospektiv.

MetodeBedst tilSprint-/faselængdeFleksibilitetRisikoprofil
AgilKrav i udvikling, produktledet arbejde1–4 ugerHøjLav til middel
ScrumTværfunktionelle teams, der bygger iterativt1–4 uger (fast)HøjLav til middel
KanbanVedligeholdelse, drift, supportdrevet arbejdeKontinuerligMeget højLav
HybridVirksomhedsprojekter, blandede styringsbehovVarierer efter faseMiddel til højMiddel

Faser i softwareudviklingens livscyklus (SDLC)

Hver SDLC-fase har specifikke projektledelsesansvar, artefakter og risici. Her er, hvad du som softwareprojektleder ejer på hvert trin.

Planlægning og indsamling af krav

Projektlederen definerer projektets omfang, indsamler forretningsmæssige og tekniske krav, identificerer interessenter og udarbejder den indledende projektplan. Artefakterne omfatter projektkommissoriet, kravspecifikationen og det foreløbige risikoregister.

Den største risiko i denne fase er ufuldstændige krav. Når kravene er vage, lider alt efterfølgende. Afhold strukturerede afklaringsworkshops, og dokumentér acceptkriterier for alle større funktioner, før I går videre.

Acceptkriterierne bør være så specifikke, at to forskellige udviklere, der læser dem, ville bygge det samme (givet-når-så-acceptkriterier er nyttige til dette). Hvis dine kriterier kan fortolkes på tre måder, er du ikke færdig med at skrive dem.

System- og arkitekturdesign

Projektlederen koordinerer mellem arkitekter, udviklere og interessenter for at validere, at det foreslåede design opfylder forretningsbehovene og holder sig inden for budgettet. Artefakter omfatter systemarkitekturdiagrammer, beslutninger om teknologistak og godkendelser fra designgennemgange.

Den største risiko er overdesign. Team designer nogle gange til en skala, de endnu ikke har brug for, og bruger tid og penge på infrastruktur, der ikke vil have betydning i årevis. Jeg har set et team bruge tre uger på at bygge en mikrotjenestearkitektur til et værktøj, der aldrig ville betjene mere end 200 brugere.

En monolit med gode afgrænsninger kunne være blevet leveret på en uge. Projektlederens opgave er at spørge: "Hvilket problem løser dette i dag?" og sige fra over for "ingen endnu".

Udvikling og opbygning

Under opbygningsfasen følger projektlederen sprintets fremdrift, håndterer ændringer i omfanget gennem en proces for ændringsanmodninger og fjerner blokeringer. Artefakter omfatter sprintbackloggen, burndown-diagrammer og statusrapporter.

Den største risiko er ukontrolleret udvidelse af omfanget. Hver "hurtig tilføjelse" vokser sig større. En disciplineret tavle til ændringsanmodninger med konsekvensanalyse er dit bedste forsvar. Konsekvensanalysen behøver ikke at være et formelt dokument.

Selv en Slack-besked på tre linjer (f.eks. "Det vil tage cirka to dage at tilføje denne funktion, skubbe redesign af login tilbage og kræve yderligere QA af betalingsforløbet") tvinger anmoderen til at vurdere afvejningen i stedet for at behandle enhver tilføjelse som gratis.

Test og QA

Projektlederen planlægger testdækningen, følger op på fejlrettelser og bekræfter, at acceptkriterierne er opfyldt. Artefakter omfatter testplanen, fejllogge og QA-godkendelsesrapporter.

Den største risiko er utilstrækkelig testdækning, især for kanttilfælde og integrationer. Tidlig test, hvor QA begynder at skrive testtilfælde under designfasen, opdager fejl tidligere og billigere. En fejl, der opdages under design, tager minutter at rette. Den samme fejl, der opdages i produktion, koster timer, omdømme og nogle gange indtægter.

Implementering og udgivelse

Projektlederen koordinerer tidspunktet for udgivelsen, tilbagerulningsplaner og kommunikation. Artefakter omfatter udgivelsesplanen, implementeringstjeklisten og registreringer af ja/nej-beslutninger.

Den største risiko er, at implementeringen mislykkes i produktion. Blå/grøn-implementeringer og gradvise udgivelser lader dig først rulle ud til en delmængde af brugerne og opdage problemer, før de påvirker alle.

Vedligeholdelse og iteration efter lancering

Efter lanceringen overfører projektlederen projektet til en vedligeholdelsesrytme, prioriterer indkommende fejl og planlægger iterative forbedringer. Artefakter omfatter evalueringen efter lanceringen, hændelsesrapporter og en opdateret produktbacklog.

Den største risiko er at forsømme produktet efter lanceringen. Udarbejd en plan for at indsamle brugerfeedback og handle på den. Planlæg en formel evaluering 30 dage efter lanceringen med hele teamet og de vigtigste interessenter. Gennemgå brugsmålinger, supportsager og funktionsanmodninger. Prioritér derefter den næste iteration, før teamet bliver omplaceret, og den organisatoriske viden forsvinder.

Håndtering af teknisk gæld

Teknisk gæld er noget af det mest betydningsfulde, en softwareprojektleder fører tilsyn med, og samtidig noget af det mindst synlige. Det er de akkumulerede omkostninger ved genveje, udskudt refaktorering, forældede afhængigheder og arkitekturbeslutninger, der var rigtige på det tidspunkt, men ikke længere passer.

Projektlederens rolle er at gøre den tekniske gæld synlig for interessenterne og sikre, at den får dedikeret kapacitet i backloggen. I praksis betyder det tre ting.

  • Vedligehold et register over teknisk gæld ved siden af funktionsbackloggen. Hvert punkt bør indeholde en beskrivelse af gælden, dens estimerede indvirkning på hastighed eller pålidelighed samt omkostningen ved at håndtere den. Uden dette forbliver gælden usynlig, indtil den forårsager et driftsstop eller bremser leveringen.
  • Af­sæt sprintkapacitet til at reducere gælden. Start med 15–20 %. Nogle teams foretrækker et dedikeret "sprint til teknisk gæld", men efter min erfaring forhindrer en løbende afsættelse den dynamik, hvor arbejdet med gæld bliver aflyst, hver gang en deadline nærmer sig.
  • Knyt gælden til forretningsresultater, når du kommunikerer med interessenter. Du kan for eksempel sige "Den nuværende arkitektur for godkendelsesmodulet tilføjer to dage til enhver funktion, der berører login, og tre af vores næste fem funktioner berører login" i stedet for "Vi er nødt til at refaktorere godkendelsesmodulet."
galen low headshot

Author's Tip

Den største fejl, jeg ser projektledere begå med teknisk gæld, er at behandle den som et teknisk anliggende, der ikke kræver projektledelsens involvering. Hvis gælden gør dit team langsommere, er det et projektledelsesproblem.

Ledelse af distribuerede og fjernarbejdende teams

Distribuerede og fjernarbejdende teams skaber særlige projektledelsesudfordringer, som du er nødt til at tage højde for.

Koordinering af tidszoner

Når dit team spænder over mere end fire eller fem tidszoner, bliver det synkrone overlap reduceret til et kort tidsvindue. Beskyt dette tidsvindue, og brug det kun til beslutninger, der kræver realtidsdiskussion, såsom sprintplanlægning, designgennemgange og blokeringer.

Udgiv et kort over "teamets arbejdstider", der viser hvert medlems arbejdstider og tidsvinduerne med overlap. Gør det synligt i det værktøj, dit team bruger dagligt. 

Design af asynkrone ceremonier

Traditionelle Scrum-ceremonier forudsætter, at teamet er samlet samme sted. Tilpasning af dem til distribuerede teams betyder, at formatet skal gentænkes. Daglige statusmøder kan være asynkrone skriftlige opdateringer, der offentliggøres i en fælles kanal inden en daglig deadline. Hver opdatering omhandler, hvad der blev færdiggjort, hvad der er planlagt, og hvad der er blokeret. Projektlederen gennemgår og følger op på blokeringer i stedet for at vente på et møde.

Sprintgennemgange kan kombinere en optaget demovideo med en live-session med spørgsmål og svar, der er planlagt i tidsvinduet med overlap. Det giver teammedlemmer, som ikke kan deltage live, mulighed for at se demoen, når det passer dem, og indsende spørgsmål asynkront.

Retrospektiver er den sværeste ceremoni at afholde asynkront, fordi de afhænger af psykologisk tryghed og åben dialog. Hold retrospektiver synkrone, selv hvis det betyder, at de afholdes mindre hyppigt.

Dokumentation som infrastruktur

I distribuerede teams holder dokumentation op med at være valgfri. Hvis en beslutning ikke er skrevet ned, er den ikke truffet, fordi de tre personer, der ikke var online under den Slack-tråd, ikke får den at se. Oprethold én fælles kilde til sandheden for beslutninger, arkitekturvalg og ændringer i prioriteter. Opdater den samme dag, som beslutningen træffes, ikke en uge senere, når halvdelen af konteksten er gået tabt.

Målinger og KPI'er for softwareprojektledelse

Målinger fortæller dig, om din proces fungerer, eller om det bare føles sådan. Her er dem, jeg følger på hvert projekt:

KPIHvad den målerHvorfor måle denIdeel hyppighedHvornår der skal handles
HastighedArbejde færdiggjort pr. sprint (f.eks. story points eller opgaver)Gør det muligt at måle det relative indsatsniveau for hvert sprint, og hvor hurtigt teamet arbejderHvert sprintNår den falder med 20 % eller mere i to sprint i træk
CyklustidVarigheden af et enkelt arbejdselementHjælper med at afsløre flaskehalse i din arbejdsgang, så du kan fokusere din indsatsUgentligtNår gennemsnittet overstiger dit teams mål med 50 %
GennemløbstidVarighed fra backlog til leveringGiver indblik i hastigheden fra ende til anden og er let for interessenter at fortolkeUgentligtNår interessenter rapporterer, at leveringen føles langsom
DefekttæthedFejl pr. kodelinje eller funktionHjælper med at identificere tendenser, der signalerer kvalitetsproblemer i udvikling eller testPr. udgivelseNår tætheden stiger over tre udgivelser
Nøjagtighed af burndownPlanlagt kontra faktisk færdiggørelse af sprintetHjælper med at identificere estimeringsproblemer, ændringer i omfanget midt i sprintet eller begge deleHvert sprintNår planlagt og faktisk resultat konsekvent afviger med 30 % eller mere
InteressenttilfredshedInteressenternes tillid til leveringenHjælper med at sikre projektsuccesHvert kvartalNår tilfredsheden falder, eller tilbagemeldingerne stopper helt

Her er nogle nyttige metoder til at følge fremskridt:

  • Burndown-diagrammer viser det resterende arbejde over tid inden for et sprint. De er nyttige til daglige statusmøder og kontrol af sprintets tilstand.
  • Burnup-diagrammer viser det færdiggjorte arbejde over tid i forhold til det samlede omfang, hvilket gør ændringer i omfanget synlige. Hvis linjen for det samlede omfang bliver ved med at stige, kan du se, at der sker omfangsglidning i realtid.
  • Kumulative flow-diagrammer visualiserer, hvor mange elementer der befinder sig på hvert trin i arbejdsgangen, så  du kan identificere ophobning af WIP og tendenser i gennemløbet. Et bredere bånd i en kolonne betyder, at arbejdet hober sig op dér.
  • Styring af optjent værdi (EVM) sammenligner planlagt værdi, optjent værdi og faktiske omkostninger for at forudsige budget- og tidsplanresultater. Det er mere omfattende, end de fleste agile teams ønsker, men værdifuldt for projekter med fast budget og krav om ekstern rapportering.

Bedste praksisser inden for softwareprojektledelse

Her er nogle vigtige bedste praksisser til styring af softwareprojekter.

Målsætning og tydelige krav

Brug SMART-mål, der er tilpasset softwarens omfang. I stedet for "forbedr betalingsforløbet" skal du skrive "reducer antallet af afbrudte betalinger med 15 % inden Q3 ved at redesigne betalingstrinnet og tilføje understøttelse af Apple Pay." Hvert mål bør have et målbart resultat, en deadline og en ansvarlig.

Den mest undervurderede del af målsætningen for et projekt er at sige nej. Et mål, der forsøger at opnå fire ting, opnår ingen af dem godt. Begræns dig til højst to primære mål pr. sprint og ét udvidet mål. Hvis alt er en prioritet, er intet en prioritet.

Kommunikationsstrategier

Indfør en asynkron-først-kommunikation. Skriv statusopdateringer i et delt dokument eller et projektstyringsværktøj i stedet for at planlægge endnu et møde. Reserver synkron tid til beslutninger, demonstrationer og retrospektiver.

Brug en ugentlig opsummering til interessenter, daglige statusmøder for leveranceteamet (asynkrone for distribuerede teams) og en demo hver anden uge for en bredere gruppe af interessenter. Hold statusopdateringer korte og strukturerede. Begynd med, hvad der er leveret, hvad der er blokeret, og hvad der kommer herefter.

Ressourceallokering og -styring

Udarbejd en kompetencematrix, der kortlægger hvert teammedlems styrker, udviklingsområder og tilgængelighed. Brug den under sprintplanlægningen til at afbalancere arbejdsbyrden og undgå enkeltstående fejlkilder. Når teammedlemmer deles på tværs af projekter, skal I fastlægge prioriteringsregler på forhånd, så de ikke hele tiden skal skifte kontekst.

Kvalitetsstandarder

Definer din definition af færdig, før det første sprint begynder. En god definition af færdig kan omfatte, at kodegennemgangen er afsluttet, enhedstestene består, integrationstestene består, dokumentationen er opdateret, og produktejeren har godkendt det. Lad ikke "færdig" betyde "det kompilerer".

Skriv din definition af færdig ned, hæng den op, hvor teamet kan se den, og håndhæv den uden undtagelser i de første tre sprints. Derefter vil teamet selv håndhæve den. Første gang du lader en opgave blive markeret som "færdig" uden at opfylde kriterierne på grund af tidspres, har du fastslået, at definitionen er valgfri. Det kommer sig aldrig.

Løbende forbedringer

Afhold retrospektiver efter hvert sprint og efter hver udgivelse. Fokuser på én eller to handlinger pr. retrospektiv, og følg op på dem i den næste cyklus. Retrospektiver, der resulterer i handlingspunkter uden opfølgning, nedbryder hurtigt tilliden.

Begynd hvert retrospektiv med at gennemgå handlingspunkterne fra det seneste. Gjorde vi det, vi skulle? Hjalp det? Hvis svaret er "vi gjorde det ikke", er det emnet for retrospektivet lige dér. Enten var handlingspunkterne ikke vigtige nok til at blive prioriteret, eller også har teamet ikke kapaciteten eller beføjelsen til at gennemføre dem. Begge dele er værd at drøfte ærligt.

Almindelige udfordringer og gennemprøvede løsninger

Her er nogle af de vigtigste udfordringer, du vil møde, når du styrer softwareprojekter, samt hvordan du løser dem.

UdfordringGrundlæggende årsagLøsning
Udvidelse af omfangetUklare krav, svag ændringsstyringUdvalg til ændringsanmodninger med skabelon til konsekvensanalyse
RessourceflaskehalseDårligt overblik over kapacitetenKompetencematrix kombineret med belastningsafbalanceret sprintplanlægning
Problemer med teamets fælles retningKommunikation i siloerTværfunktionelle statusmøder og fælles OKR'er
KvalitetsrisiciUtilstrækkelig testdækningKvalitetssikring tidligt i processen med automatiserede regressionstests som adgangskrav
TidspresOptimismebias i estimeringenBenchmarking af historisk hastighed med buffer-sprints

Budgetstyring og estimater

Der er flere metoder, du kan bruge til at estimere omkostninger og timer for softwareudviklingsprojekter.

  • Analog estimering bruger faktiske omkostninger fra lignende tidligere projekter. Det går hurtigt, men afhænger af, at der findes sammenlignelige historiske data. Nøjagtigheden afhænger helt af, hvor ens det tidligere projekt faktisk var, og folk har en tendens til at overvurdere ligheden.
  • Parametriske modeller anvender statistiske sammenhænge mellem historiske data og projektvariabler. Hvis jeres gennemsnitlige omkostning pr. historiepoint er $1,200, kan I forudsige budgettet ud fra det estimerede antal historiepoint. Det fungerer godt for organisationer med modne praksisser for registrering.
  • Nedefra-og-op-estimering prissætter hver opgave og summerer dem til en total. Det er nøjagtigt, men også tidskrævende. Brug det til projekter, hvor budgetnøjagtighed er afgørende (f.eks. kontrakter til fast pris, arbejde finansieret af tilskud eller projekter, hvor en omkostningsoverskridelse på 20% har alvorlige konsekvenser).
  • Trepunktsestimering bruger optimistiske, mest sandsynlige og pessimistiske værdier til at beregne et gennemsnit. Det tager højde for usikkerhed og har den ekstra fordel, at teamet tvinges til at overveje, hvad der kan gå galt, hvilket kan hjælpe med risikostyringen.

Uanset hvilken metode du bruger, kan software til tidsregistrering levere det faktiske antal timer brugt på opgaver og projekter, så de kan sammenlignes med estimaterne.

Budgetopfølgning gennem hele projektets livscyklus

Følg planlagte kontra faktiske udgifter mindst hver anden uge. Målinger af optjent værdi som omkostningspræstationsindeks (CPI) og indeks for tidsplanens præstation (SPI) giver dig tidlige advarsler. En CPI under 1,0 betyder, at du bruger mere pr. arbejdsenhed end planlagt. Hvis du opdager det tidligt, kan du justere omfang, tidsplan eller ressourcer, før budgettet er opbrugt.

En nyttig budgetvane, jeg har udviklet, er en enkel gennemgang af forbrugstakten hver anden uge. Sammenlign din aktuelle forbrugstakt med dit resterende budget og det resterende arbejde. Hvis tallene ikke hænger sammen, har du præcis tre muligheder: reducér omfanget, forlæng tidsplanen, eller tilføj ressourcer. 

Forebyggelse af budgetoverskridelser

De største budgetoverskridelser kommer fra tre kilder: ændringer i omfanget uden tilsvarende budgetjusteringer, undervurderet kompleksitet og for sen opdagelse af fejl.

En formel proces for ændringsanmodninger, der omfatter en analyse af omkostningspåvirkningen, løser det første problem. Når en interessent anmoder om en tilføjelse, bør svaret altid indeholde: "her er, hvad det koster, og hvad det fortrænger." 

Trepunktsestimering løser det andet problem ved at indarbejde usikkerhed i prognosen i stedet for at ignorere den. Forskellen mellem de optimistiske og pessimistiske værdier er i sig selv nyttig information. En opgave, hvor det optimistiske estimat er to dage, og det pessimistiske estimat er tre uger, fortæller dig, at projektteamet ikke forstår arbejdet godt nok til at kunne estimere det.

Test tidligt i processen løser det tredje problem. Omkostningskurven for fejlrettelse er veldokumenteret: En fejl, der opdages i kravene, koster 1x at rette, i udviklingen 6x, under test 15x og i produktion 100x. Hver krone, der investeres i tidlig test, tjener sig selv ind.

Hvad er det næste?

Den rette projektstyringssoftware til softwareudvikling kan gøre det meget nemmere at implementere disse bedste praksisser. Du kan også få mere vejledning i, hvordan du vælger det rette projektstyringsværktøj til dine behov.