Skip to main content
Key Takeaways

Syftet med projektledning: Projektledning hjälper till att hantera problem som missade krav och otydligt ansvar inom programvaruutveckling.

Projektperioder: Olika programvaruprojekt kräver olika ledningsfokus, från nyutveckling till uppdateringar och mobilapplikationer.

Att använda agila metoder: Agila metoder, Scrum och Kanban erbjuder olika fördelar för programvaruteam, där var och en passar olika projektbehov.

Viktiga risker: Vanliga risker omfattar okontrollerad utvidgning av projektomfattningen, teknisk skuld och otillräcklig testning, vilket allt kräver strategiska ledningsinsatser.

Om du inte använder projektledning för programvaruutveckling (eller rätt projektledningsprogramvara) stöter du förmodligen på alla möjliga problem som kan äventyra releaser: missade projektkrav, skenande omfattning, bristande kommunikation och otydligt ansvar. Projektledning hjälper dig att ta kontroll och leverera fler releaser i tid, inom budget och enligt planerad omfattning.

Den här guiden täcker allt du behöver veta om projektledning för programvaruutveckling. Du får lära dig praktiska ramverk för att leverera snabbare, minska risker och bygga en process som ditt programvaruutvecklingsteam kan upprätthålla. 

Vad är projektledning för programvara?

Projektledning för programvara är disciplinen att planera, samordna och övervaka skapandet eller vidareutvecklingen av programvaruprodukter genom programvaruutvecklingens livscykel. Den omfattar omfattning, tidsplan, budget, kvalitet, teamdynamik och kommunikation med intressenter för alla initiativ där fungerande programvara är den huvudsakliga leveransen.

Continue Reading for Free

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

Programvaruprojekt medför unika utmaningar som generiska projektledningsramverk inte fullt ut hanterar. Här är en sammanfattning av deras skillnader.

DimensionAllmän projektledningProjektledning för programvara
Omfattningens föränderlighetDefinieras tidigt, ändringar hanteras formelltKraven förändras kontinuerligt när användare ger feedback
Typ av leveransFysiska eller dokumentbaserade resultatImmateriell kod, API:er och användargränssnitt
ÅterkopplingslooparGranskning efter leverans eller inspektion vid en beslutspunktKontinuerlig integration, sprintgranskningar, betatestning
VerktygGantt-scheman, verktyg för resursutjämningÄrendehanterare, Git-arkiv, CI/CD-pipelines
TeamstrukturRollbaserad hierarkiTvärfunktionella grupper med gemensamt ansvar

Programvaruutveckling jämfört med projektledning för programvara

Programvaruutveckling är arbetet med att skriva, testa och distribuera kod. Projektledning för programvara är arbetet med att se till att koden skrivs, testas och distribueras på ett sätt som skapar värde enligt tidsplanen och inom budgeten.

Här är en jämförelse av målen för programvaruutveckling och projektledning som tydliggör de viktigaste skillnaderna.

UtvecklingsmålProjektledningsmål
Bygga funktioner som uppfyller tekniska specifikationerLeverera rätt funktioner vid rätt tidpunkt
Skriva ren och underhållbar kodHålla omfattning, budget och projekttidsplan i linje
Lösa buggar och minska antalet felHantera risker, beroenden och intressenternas förväntningar
Optimera systemets prestandaSamordna tvärfunktionella team och undanröja hinder

Typer av programvaruprojekt

Här är en översikt över de vanligaste typerna av programvaruprojekt:

  • Ny programvaruutveckling: Du bygger från grunden utan begränsningar från äldre system. Projektledningens fokus ligger på att identifiera krav, fatta arkitekturbeslut och snabbt ta fram prototyper. Den största risken är att omfattningen sväller eftersom allt verkar möjligt.
  • Uppdateringar, korrigeringar och löpande underhåll: Det här är insatser med mindre omfattning och höga krav på korta leveranstider. Projektledningens fokus ligger på prioritering, regressionstestning och samordning av releaser. Risken här är att teknisk skuld byggs upp genom genvägar.
  • Projekt för mobilapplikationer: Mobilprojekt har snabba iterationscykler som drivs av tidsplanerna för granskning i appbutiker och mängden olika enheter. Projektledningens fokus omfattar plattformsspecifik kvalitetssäkring, beslut om funktionslikvärdighet och loopar för användaranalys.
  • Företagslösningar och SaaS-lösningar: Dessa har omfattande krav på regelefterlevnad och skalbarhet. Projektledningens fokus skiftar mot säkerhetsgranskningar, överväganden kring arkitektur för flera kunder och samordning med långa säljcykler. Intressenthanteringen blir mer komplex.
  • Systemintegrationer och datamigreringar: Arbetet är mycket tekniskt och starkt beroende av externa system. Projektledningens fokus ligger på kartläggning av beroenden, datavalidering och planering för återställning. Tidsplanrisken är högre än genomsnittet eftersom API:er från tredje part och äldre system medför oförutsägbara hinder.

Projektledningsmetoder för programvaruteam

Agilt arbetssätt

Agilt arbete är ett iterativt arbetssätt där arbetet levereras i små, användbara steg. Team planerar, bygger, testar och granskar i korta cykler och använder återkoppling för att kontinuerligt justera riktningen. De fyra värderingarna i det agila manifestet (individer och interaktioner framför processer och verktyg, fungerande programvara framför omfattande dokumentation, kundsamarbete framför avtalsförhandling och att reagera på förändring framför att följa en plan) utgör den filosofiska ramen.

En agil metod passar bäst när kraven sannolikt kommer att förändras, när slutanvändarnas återkoppling behöver forma produkten och när teamen arbetar på samma plats eller har välfungerande vanor för asynkron kommunikation. Den passar dåligt för projekt med strikt reglerade milstolpar eller avtal med fast omfattning, där ändringsbeställningar medför ekonomiska påföljder.

galen low headshot

Det här har jag lärt mig den hårda vägen

Agil projektledning kräver kulturella förutsättningar som de flesta organisationer underskattar. Det behövs psykologisk trygghet så att utvecklare kan signalera problem utan rädsla. Det behövs produktägare med verkligt mandat, som kan fatta beslut om prioriteringar utan att eskalera varje avvägning till en vice vd. Det behövs genuint tvärfunktionella team, inte specialister som sitter i en gemensam Slack-kanal.

 

Utan dessa grundförutsättningar börjar team ägna sig åt det jag kallar ceremonidriven utveckling – de håller dagliga avstämningar, fyller i sprinttavlor, genomför retrospektiv och levererar ändå sent eftersom de underliggande problemen inte har förändrats.

Scrum 

Scrum strukturerar agilt arbete i sprintar, som är iterationer med fast längd och vanligtvis varar mellan en och fyra veckor. Det finns tre centrala roller: Scrum Master, som faciliterar processen, produktägaren, som ansvarar för backloggen, och utvecklingsteamet, som utför arbetet.

Varje sprint börjar med sprintplanering, där teamet väljer ut de backloggposter som det åtar sig att genomföra. Varje dag samordnar en kort daglig avstämning teamet kring projektets framsteg och hinder. I slutet av sprinten demonstrerar teamet det som har byggts under en sprintgranskning och undersöker vad som kan förbättras i en retrospektiv.

Scrum fungerar bra när teamen har stabil bemanning, tydliga sprintmål och en produktägare som verkligen är tillgänglig. Det fungerar sämre i miljöer med mycket arbete som avbryter planeringen, delade resurser mellan flera Scrum-team eller organisationer där ”sprintåtagandet” behandlas som en avtalsmässig skyldighet snarare än en prognos.

Kanban

Kanban använder en visuell tavla (det vill säga en Kanban-tavla) med kolumner som representerar olika steg i arbetsflödet. Arbetsobjekt hämtas från vänster till höger när kapacitet blir tillgänglig. Den centrala mekanismen är WIP-begränsningar, som anger ett tak för hur många objekt som samtidigt får befinna sig i en enskild kolumn. WIP-begränsningar förhindrar överbelastning och synliggör flaskhalsar.

Kanban fungerar bra för förvaltningsteam, supportdrivet arbete och alla miljöer där prioriteringar ändras dagligen. Det fungerar också bra för team som lämnar ad hoc-projektledning, eftersom tavlan synliggör osynligt arbete utan att kräva en fullständig översyn av 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.

Hybrida arbetssätt

Hybridmetoder som Water-Scrum-Fall kombinerar den inledande planeringen från vattenfallsmodellen med den iterativa genomförandefasen från Scrum.

I vissa organisationer är ett hybridupplägg ett genomtänkt svar på projekt som faktiskt behöver både styrning och agilitet. Men om ditt hybridupplägg innebär att ni har sprintplanering men hoppar över retrospektiv, eller att ni skriver en projektstadga men aldrig uppdaterar den, undviker ni bara att ta ansvar.

Testet är enkelt: kan ni förklara varför varje del av ert hybridupplägg finns och vilket problem den löser? Om svaret är ”så har vi alltid gjort”, behöver er metodik en egen retrospektiv.

MetodikBäst förSprint-/faslängdFlexibilitetRiskprofil
Agilt arbeteFöränderliga krav, produktlett arbete1–4 veckorHögLåg till medel
ScrumTvärfunktionella team som bygger iterativt1–4 veckor (fast)HögLåg till medel
KanbanFörvaltning, drift och supportdrivet arbeteKontinuerligMycket högLåg
HybridFöretagsprojekt, blandade styrningsbehovVarierar mellan faserMedel till högMedel

Faser i livscykeln för programvaruutveckling (SDLC)

Varje SDLC-fas har specifika ansvarsområden, artefakter och risker inom projektledningen. Här ser du vad du som programvaruprojektledare ansvarar för i varje steg.

Planering och insamling av krav

Projektledaren definierar projektets omfattning, samlar in verksamhetsmässiga och tekniska krav, identifierar intressenter och skapar den första projektplanen. Artefakterna omfattar projektstadgan, kravdokumentet och det preliminära riskregistret.

Den största risken i den här fasen är ofullständiga krav. När kraven är vaga drabbas allt som följer. Genomför strukturerade upptäcktsworkshoppar och dokumentera acceptanskriterier för varje större funktion innan ni går vidare.

Acceptanskriterierna bör vara tillräckligt specifika för att två olika utvecklare som läser dem skulle bygga samma sak (acceptanskriterier enligt given-when-then är användbara för detta). Om dina kriterier kan tolkas på tre olika sätt är du inte klar med att skriva dem.

System- och arkitekturdesign

Projektledaren samordnar arkitekter, utvecklare och intressenter för att säkerställa att den föreslagna designen uppfyller verksamhetens behov och håller sig inom budgeten. Artefakterna omfattar systemarkitekturdiagram, beslut om teknikstack och godkännanden efter designgranskning.

Den största risken är överkonstruktion. Team utformar ibland lösningar för en skala som de ännu inte behöver och lägger tid och pengar på infrastruktur som inte kommer att ha betydelse på flera år. Jag har sett ett team lägga tre veckor på att bygga en mikrotjänstarkitektur för ett verktyg som aldrig skulle ha fler än 200 användare.

En monolit med bra avgränsningar hade kunnat levereras på en vecka. Projektledarens uppgift är att fråga "vilket problem löser detta idag?" och invända mot svaret "inget ännu".

Utveckling och bygge

Under byggfasen följer projektledaren sprintens framsteg, hanterar omfattningsändringar genom en process för ändringsbegäranden och undanröjer hinder. Artefakterna omfattar sprintbacklogg, nedbränningsdiagram och statusrapporter.

Den största risken är att projektets omfattning växer okontrollerat. Varje "snabbt tillägg" byggs på hög. En disciplinerad tavla för ändringsbegäranden med konsekvensanalys är ditt bästa försvar. Konsekvensanalysen behöver inte vara ett formellt dokument.

Även ett Slack-meddelande på tre rader (t.ex. "Att lägga till den här funktionen tar ungefär två dagar, skjuter upp omdesignen av inloggningen och kräver ytterligare kvalitetssäkring av betalningsflödet") tvingar beställaren att väga avvägningen i stället för att behandla varje tillägg som kostnadsfritt.

Testning och kvalitetssäkring

Projektledaren planerar testtäckningen, följer upp lösningen av defekter och bekräftar att acceptanskriterierna är uppfyllda. Artefakterna omfattar testplanen, defektloggar och rapporter om godkännande från kvalitetssäkringen.

Den största risken är otillräcklig testtäckning, särskilt för specialfall och integrationer. Med testning tidigare i processen, där kvalitetssäkringen börjar skriva testfall under designfasen, upptäcks defekter tidigare och billigare. En bugg som hittas under designen kostar minuter att åtgärda. Samma bugg som hittas i produktion kostar timmar, anseende och ibland intäkter.

Driftsättning och lansering

Projektledaren samordnar tidpunkten för lanseringen, planer för återställning och kommunikation. Artefakterna omfattar lanseringsplanen, checklistan för driftsättning och dokumentation av beslut om att genomföra eller avstå.

Den största risken är att driftsättningen misslyckas i produktion. Blågröna driftsättningar och kanarieutgåvor låter dig först rulla ut till en delmängd av användarna och upptäcka problem innan de påverkar alla.

Underhåll och iteration efter lansering

Efter lanseringen övergår projektledaren projektet till en underhållscykel, prioriterar inkommande buggar och planerar iterativa förbättringar. Artefakterna omfattar genomgången efter lanseringen, incidentrapporter och en uppdaterad produktbacklogg.

Den största risken är att produkten försummas efter lanseringen. Skapa en plan för att samla in användarfeedback och agera utifrån den. Boka in en formell genomgång 30 dagar efter lanseringen med hela teamet och viktiga intressenter. Gå igenom användningsmått, supportärenden och funktionsförfrågningar. Prioritera sedan nästa iteration innan teamet omfördelas och den samlade kunskapen försvinner.

Hantering av teknisk skuld

Teknisk skuld är en av de mest betydelsefulla sakerna som en projektledare för mjukvaruprojekt ansvarar för, och en av de minst synliga. Det är den ackumulerade kostnaden för genvägar, uppskjuten refaktorering, föråldrade beroenden och arkitekturbeslut som var rätt när de fattades men inte längre passar.

Projektledarens roll är att synliggöra den tekniska skulden för intressenterna och se till att den får avsatt kapacitet i backloggen. I praktiken innebär detta tre saker.

  • Underhåll ett register över teknisk skuld vid sidan av funktionsbackloggen. Varje post bör innehålla en beskrivning av skulden, dess uppskattade påverkan på utvecklingstakten eller tillförlitligheten samt kostnaden för att åtgärda den. Utan detta förblir skulden osynlig tills den orsakar ett avbrott eller bromsar leveransen.
  • Avsätt sprintkapacitet för att minska skulden. Börja med 15–20 %. Vissa team föredrar en särskild "sprint för teknisk skuld", men enligt min erfarenhet förhindrar en jämn fördelning den dynamik där arbete med skulden ställs in varje gång en deadline närmar sig.
  • Koppla skulden till verksamhetsresultat när du kommunicerar med intressenter. Du kan till exempel säga "Den nuvarande arkitekturen för autentiseringsmodulen lägger till två dagar för varje funktion som berör inloggning, och tre av våra fem nästa funktioner berör inloggning" i stället för "Vi behöver refaktorera autentiseringsmodulen."
galen low headshot

Author's Tip

Det största misstaget jag ser projektledare göra med teknisk skuld är att behandla den som en teknisk fråga som inte kräver projektledningens medverkan. Om skulden bromsar ditt team är det ett projektledningsproblem.

Att leda distribuerade team och distansteam

Distribuerade team och distansteam skapar särskilda projektledningsutmaningar som du behöver ta hänsyn till.

Samordning av tidszoner

När ditt team finns i fler än fyra eller fem tidszoner krymper den synkrona överlappningen till ett kort tidsfönster. Skydda det fönstret och använd det endast för beslut som kräver diskussion i realtid, till exempel sprintplanering, designgranskningar och blockerare.

Publicera en karta över "teamets arbetstider" som visar varje medlems arbetstider och överlappningsfönstren. Gör den synlig i det verktyg som teamet använder dagligen. 

Utformning av asynkrona ceremonier

Traditionella Scrum-ceremonier förutsätter att teamet arbetar på samma plats. Att anpassa dem för distribuerade team innebär att formatet måste tänkas om. Dagliga avstämningar kan vara asynkrona skriftliga uppdateringar som publiceras i en gemensam kanal före en daglig deadline. Varje uppdatering tar upp vad som har slutförts, vad som är planerat och vad som är blockerat. Projektledaren granskar och följer upp blockerare i stället för att vänta på ett möte.

Sprintgranskningar kan kombinera en inspelad demovideo med en direktsänd frågestund som schemaläggs under överlappningsfönstret. Då kan teammedlemmar som inte kan delta live titta på demon när det passar dem och skicka in frågor asynkront.

Retrospektiv är den svåraste ceremonin att genomföra asynkront eftersom de bygger på psykologisk trygghet och öppen dialog. Håll retrospektiven synkrona även om det innebär att de genomförs mer sällan.

Dokumentation som infrastruktur

I distribuerade team upphör dokumentation att vara valfritt. Om ett beslut inte skrivs ner har det inte hänt, eftersom de tre personer som inte var online under den Slack-tråden inte kommer att se det. Upprätthåll en enda källa till sanning för beslut, arkitekturval och prioriteringsändringar. Uppdatera den samma dag som beslutet fattas, inte en vecka senare när hälften av sammanhanget har gått förlorat.

Mätvärden och KPI:er för programvaruprojektledning

Mätvärden visar om processen fungerar eller bara känns som om den gör det. Här är de mätvärden jag följer i varje projekt:

KPIVad det mäterVarför mäta detIdealisk frekvensNär du ska agera
HastighetArbete som slutförs per sprint (t.ex. storypoäng eller uppgifter)Gör det möjligt att mäta den relativa arbetsinsatsen för varje sprint och hur snabbt teamet arbetarVarje sprintNär det minskar med 20 % eller mer under två sprintar i följd
CykeltidVaraktigheten för en enskild arbetsuppgiftHjälper till att synliggöra flaskhalsar i arbetsflödet så att du kan fokusera dina insatserVarje veckaNär genomsnittet överstiger teamets mål med 50 %
LedtidVaraktighet från backlogg till leveransGer en bild av hastigheten från början till slut och är lätt för intressenter att tolkaVarje veckaNär intressenter uppger att leveransen känns långsam
DefekttäthetBuggar per kodrad eller funktionHjälper till att upptäcka trender som signalerar kvalitetsproblem i utveckling eller testningPer leveransNär tätheten ökar under tre leveranser
Burndown-precisionPlanerat jämfört med faktiskt slutförande av sprintenHjälper till att upptäcka uppskattningsproblem, ändringar av omfattningen under sprinten eller bådaVarje sprintNär planerat och faktiskt resultat konsekvent skiljer sig med 30 % eller mer
Intressenternas nöjdhetIntressenternas förtroende för leveransenHjälper till att säkerställa projektets framgångVarje kvartalNär nöjdheten minskar eller återkopplingen helt upphör

Här är några användbara metoder för att följa upp framstegen:

  • Burndown-diagram visar återstående arbete över tid inom en sprint. De är användbara vid dagliga avstämningar och kontroller av sprintens hälsa.
  • Burnup-diagram visar slutfört arbete över tid i förhållande till den totala omfattningen, vilket gör ändringar av omfattningen synliga. Om linjen för den totala omfattningen fortsätter att stiga kan du se hur omfattningen växer okontrollerat i realtid.
  • Kumulativa flödesdiagram visualiserar hur många uppgifter som befinner sig i varje steg i arbetsflödet för att  synliggöra uppbyggnad av pågående arbete och trender i genomströmningen. Ett band som blir bredare i någon kolumn betyder att arbete samlas där.
  • Metoden för intjänat värde (EVM) jämför planerat värde, upparbetat värde och faktisk kostnad för att prognostisera budget- och schemaprestanda. Det är mer omfattande än vad de flesta agila team önskar, men värdefullt för projekt med fast budget och krav på extern rapportering.

Bästa praxis för programvaruprojekthantering

Här är några viktiga bästa metoder för att hantera programvaruprojekt.

Målformulering och tydliga krav

Använd SMART-mål som är anpassade till programvarans omfattning. Skriv i stället för ”förbättra kassaflödet” ”minska andelen övergivna kassor med 15 % senast under tredje kvartalet genom att göra om betalningssteget och lägga till stöd för Apple Pay”. Varje mål bör ha ett mätbart resultat, en tidsfrist och en ansvarig person.

Den mest underskattade delen av att formulera projektmål är att säga nej. Ett mål som försöker åstadkomma fyra saker lyckas inte bra med någon av dem. Begränsa varje sprint till högst två primära mål och ett utmanande mål. Om allt är prioriterat är inget prioriterat.

Kommunikationsstrategier

Välj ett kommunikationssätt där asynkron kommunikation prioriteras. Skriv statusuppdateringar i ett delat dokument eller ett projekthanteringsverktyg i stället för att boka ännu ett möte. Avsätt tid för synkron kommunikation till beslut, demonstrationer och retrospektiv.

Använd en veckovis sammanfattning för intressenter, dagliga avstämningar för leveransteamet (asynkront för distribuerade team) och en demonstration varannan vecka för en bredare grupp intressenter. Håll statusuppdateringarna korta och strukturerade. Börja med vad som har levererats, vad som är blockerat och vad som kommer härnäst.

Resursfördelning och resurshantering

Skapa en kompetensmatris som visar varje teammedlems styrkor, utvecklingsområden och tillgänglighet. Använd den under sprintplaneringen för att balansera arbetsbelastningen och undvika enskilda felpunkter. När teammedlemmar delas mellan projekt bör ni fastställa prioriteringsregler i förväg så att de inte ständigt behöver växla mellan olika sammanhang.

Kvalitetsstandarder

Definiera er definition av färdigt innan den första sprinten börjar. En bra definition av färdigt kan omfatta genomförd kodgranskning, godkända enhetstester, godkända integrationstester, uppdaterad dokumentation och produktägarens godkännande. Låt inte ”färdigt” betyda ”det kompilerar”.

Skriv ner er definition av färdigt, publicera den där teamet kan se den och tillämpa den utan undantag under de tre första sprintarna. Därefter kommer teamet att tillämpa den självt. Första gången ni låter en uppgift markeras som ”färdig” utan att kriterierna är uppfyllda på grund av tidspress har ni fastställt att definitionen är valfri. Det går aldrig att återställa.

Ständiga förbättringar

Genomför retrospektiv efter varje sprint och varje lansering. Fokusera på en eller två åtgärder per retrospektiv och följ upp dem under nästa cykel. Retrospektiv som resulterar i åtgärdspunkter men ingen uppföljning bryter snabbt ner förtroendet.

Börja varje retrospektiv med att gå igenom åtgärdspunkterna från det föregående. Genomförde vi dem? Hjälpte de? Om svaret är ”vi genomförde dem inte” är det själva ämnet för retrospektivet. Antingen var åtgärdspunkterna inte tillräckligt viktiga för att prioriteras, eller så saknar teamet kapacitet eller mandat att genomföra dem. Båda är värda att diskutera ärligt.

Vanliga utmaningar och beprövade lösningar

Här är några av de viktigaste utmaningarna som ni kommer att stöta på när ni hanterar programvaruprojekt och hur ni löser dem.

UtmaningGrundorsakLösning
OmfattningsglidningOtydliga krav, svag ändringshanteringEn styrgrupp för ändringsbegäranden med mall för konsekvensanalys
ResursflaskhalsarBristande överblick över kapacitetenKompetensmatris kombinerad med belastningsbalanserad sprintplanering
Problem med teamets samsynKommunikation i silosTvärfunktionella avstämningar och gemensamma OKR:er
KvalitetsriskerOtillräcklig testtäckningQA som flyttas åt vänster i utvecklingsprocessen med automatiserade regressionsspärrar
TidspressÖveroptimistiska uppskattningarJämförelser med historisk leveranstakt och buffertsprintar

Budgethantering och kostnadsberäkningar

Det finns flera metoder du kan använda för att uppskatta kostnader och arbetstimmar för programvaruutvecklingsprojekt.

  • Analoga uppskattningar använder faktiska kostnader från liknande tidigare projekt. Det går snabbt, men bygger på att det finns jämförbara historiska data. Noggrannheten beror helt på hur likt det tidigare projektet faktiskt var, och människor tenderar att överskatta likheten.
  • Parametriska modeller tillämpar statistiska samband mellan historiska data och projektvariabler. Om den genomsnittliga kostnaden per storypoäng är $1,200 kan du prognostisera budgeten utifrån det uppskattade antalet storypoäng. Detta fungerar bra för organisationer med mogna rutiner för uppföljning.
  • Uppskattning nerifrån och upp prissätter varje uppgift och räknar samman dem till en totalsumma. Den är noggrann men också tidskrävande. Reservera den för projekt där budgetprecision är avgörande (t.ex. kontrakt med fast pris, bidragsfinansierat arbete eller situationer där en kostnadsöverskridning på 20% får allvarliga konsekvenser).
  • Trepunktsuppskattning använder optimistiska, mest sannolika och pessimistiska värden för att ta fram ett genomsnitt. Den tar hänsyn till osäkerhet och har den extra fördelen att tvinga teamet att fundera över vad som kan gå fel, vilket kan bidra till riskhanteringen.

Oavsett vilken metod du använder kan programvara för tidsregistrering ge faktiska timmar som lagts på uppgifter och projekt, så att de kan jämföras med uppskattningarna.

Budgetuppföljning under hela projektets livscykel

Följ planerade respektive faktiska utgifter minst varannan vecka. Mätetal för intjänat värde, som kostnadsprestandaindex (CPI) och tidsprestandaindex (SPI), ger tidiga varningar. Ett CPI under 1,0 innebär att du spenderar mer per arbetsenhet än planerat. Om du upptäcker det tidigt kan du justera omfattningen, tidsplanen eller resurserna innan budgeten är slut.

En användbar budgetvana som jag har utvecklat är en enkel genomgång av utgiftstakten varannan vecka. Jämför din aktuella förbrukningstakt med din återstående budget och det återstående arbetet. Om matematiken inte går ihop har du exakt tre alternativ: minska omfattningen, förläng tidsplanen eller lägga till resurser. 

Förebyggande av kostnadsöverskridanden

De största kostnadsöverskridandena kommer från tre källor: omfattningsändringar utan budgetjusteringar, underskattad komplexitet och upptäckt av fel i ett sent skede.

En formell process för ändringsbegäran som omfattar en analys av kostnadspåverkan hanterar den första. När en intressent begär ett tillägg bör svaret alltid innehålla ”det här kostar det och det här tränger det undan.” 

Trepunktsestimering hanterar den andra genom att bygga in osäkerhet i prognosen i stället för att ignorera den. Skillnaden mellan de optimistiska och pessimistiska värdena är i sig användbar information. En uppgift där den optimistiska uppskattningen är två dagar och den pessimistiska uppskattningen är tre veckor visar att projektteamet inte förstår arbetet tillräckligt väl för att kunna uppskatta det.

Testning tidigare i utvecklingsprocessen hanterar den tredje. Kostnadskurvan för felkorrigering är väl dokumenterad: ett fel som upptäcks i kravfasen kostar 1x att åtgärda, i utvecklingsfasen 6x, i testfasen 15x och i produktion 100x. Varje dollar som investeras i tidig testning betalar sig själv.

Vad händer härnäst?

Rätt projektledningsprogramvara för programvaruutveckling kan göra det mycket enklare att införa dessa bästa metoder. Du kan också få mer vägledning om hur du väljer rätt projektledningsverktyg för dina behov.