Doel van projectmanagement: Het gebruik van projectmanagement helpt problemen zoals gemiste vereisten en onduidelijk eigenaarschap bij softwareontwikkeling aan te pakken.
Projecttypen: Verschillende softwareprojecten vereisen verschillende managementaandachtsgebieden, van nieuwe ontwikkeling tot updates en mobiele applicaties.
Agile-methodologieën gebruiken: Agile, Scrum en Kanban bieden softwareteams elk andere voordelen en zijn geschikt voor verschillende projectbehoeften.
Belangrijkste risico's: Veelvoorkomende risico's zijn onder meer scope-uitbreiding, technische schuld en onvoldoende testen. Voor al deze risico's zijn strategische managementinspanningen nodig.
Als je geen projectmanagement voor softwareontwikkeling gebruikt (of niet de juiste projectmanagementsoftware), loop je waarschijnlijk tegen allerlei problemen aan die releases kunnen laten mislukken: gemiste projectvereisten, een onbeheersbare scope, gebrekkige communicatie en onduidelijk eigenaarschap. Met projectmanagement krijg je de controle terug en kun je meer releases op tijd, binnen budget en binnen scope opleveren.
Deze gids behandelt alles wat je moet weten over projectmanagement voor softwareontwikkeling. Je leert praktische frameworks om sneller te leveren, risico's te beperken en een proces op te bouwen dat je softwareontwikkelingsteam kan volhouden.
Wat is softwareprojectmanagement?
Softwareprojectmanagement is de discipline van het plannen, coördineren en toezicht houden op het creëren of doorontwikkelen van softwareproducten gedurende de levenscyclus van softwareontwikkeling. Het omvat scope, planning, budget, kwaliteit, teamdynamiek en communicatie met belanghebbenden voor elk initiatief waarbij werkende software het belangrijkste resultaat is.
Softwareprojecten brengen unieke uitdagingen met zich mee die generieke projectmanagementframeworks niet volledig aanpakken. Hier volgt een samenvatting van de verschillen.
| Dimensie | Algemeen projectmanagement | Softwareprojectmanagement |
|---|---|---|
| Volatiliteit van de scope | Vroeg gedefinieerd, wijzigingen formeel beheerd | Vereisten veranderen voortdurend naarmate gebruikers feedback geven |
| Type resultaat | Fysieke of documentgebaseerde resultaten | Ontastbare code, API's en gebruikersinterfaces |
| Feedbacklussen | Evaluatie na oplevering of inspectie bij een faseovergang | Continue integratie, sprintreviews, bètatests |
| Tooling | Gantt-diagrammen, tools voor resourcebalancering | Issue-trackers, Git-repositories, CI/CD-pijplijnen |
| Teamstructuur | Op rollen gebaseerde hiërarchie | Multidisciplinaire teams met gedeeld eigenaarschap |
Softwareontwikkeling versus softwareprojectmanagement
Softwareontwikkeling is het schrijven, testen en implementeren van code. Softwareprojectmanagement zorgt ervoor dat die code wordt geschreven, getest en geïmplementeerd op een manier die waarde volgens planning en binnen budget oplevert.
Hier volgt een vergelijking van de doelen van softwareontwikkeling en de doelen van projectmanagement om de belangrijkste verschillen te illustreren.
| Ontwikkeldoelen | Doelen van projectmanagement |
|---|---|
| Functies bouwen die aan technische specificaties voldoen | De juiste functies op het juiste moment opleveren |
| Schone, onderhoudbare code schrijven | Scope, budget en projectplanning op elkaar afgestemd houden |
| Bugs oplossen en defecten verminderen | Risico's, afhankelijkheden en verwachtingen van belanghebbenden beheren |
| Systeemprestaties optimaliseren | Multidisciplinaire teams coördineren en blokkades wegnemen |
Typen softwareprojecten
Hieronder vind je een overzicht van de meest voorkomende typen softwareprojecten:
- Nieuwe softwareontwikkeling: Je bouwt vanaf nul, zonder beperkingen van legacysoftware. De focus van projectmanagement ligt op het ontdekken van vereisten, architectuurbeslissingen en snel prototypen. Het grootste risico is scope-uitbreiding, omdat alles mogelijk lijkt.
- Updates, patches en doorlopend onderhoud: Dit zijn inspanningen met een kleinere scope en strakke verwachtingen rond de doorlooptijd. De focus van projectmanagement ligt op prioritering, regressietests en releasecoördinatie. Het risico hierbij is de opeenstapeling van technische schuld door snelkoppelingen.
- Projecten voor mobiele applicaties: Mobiele projecten kennen snelle iteratiecycli, gedreven door beoordelingsdeadlines van appstores en de versnippering van apparaten. De focus van projectmanagement omvat platformspecifieke kwaliteitsborging, beslissingen over functiepariteit en lussen voor gebruikersanalyses.
- Bedrijfs- en SaaS-oplossingen: Deze brengen zware vereisten op het gebied van compliance en schaalbaarheid met zich mee. De focus van projectmanagement verschuift naar beveiligingsbeoordelingen, overwegingen rond architectuur voor meerdere tenants en afstemming op lange verkoopcycli. Stakeholdermanagement wordt complexer.
- Systeemintegraties en datamigraties: Het werk is zeer technisch en sterk afhankelijk van externe systemen. De focus van projectmanagement ligt op het in kaart brengen van afhankelijkheden, gegevensvalidatie en het plannen van terugdraaiacties. Het planningsrisico ligt boven het gemiddelde, omdat API's van derden en legacysystemen onvoorspelbare blokkades introduceren.
Projectmanagementmethodologieën voor softwareteams
Agile
Agile is een iteratieve aanpak waarbij werk in kleine, bruikbare stappen wordt opgeleverd. Teams plannen, bouwen, testen en beoordelen in korte cycli en gebruiken feedback om de koers voortdurend bij te stellen. De vier waarden uit het Agile Manifesto (individuen boven processen, werkende software boven documentatie, samenwerking met de klant boven contractonderhandelingen en reageren op verandering boven het volgen van een plan) geven richting aan de filosofie.
Een agile methodologie past het best wanneer vereisten waarschijnlijk zullen veranderen, wanneer feedback van eindgebruikers het product moet vormgeven en wanneer teams op dezelfde locatie werken of sterke gewoonten hebben op het gebied van asynchrone communicatie. De aanpak past slecht bij projecten met strikte wettelijke mijlpalen of contracten met een vaste scope, waarbij wijzigingsopdrachten financiële boetes met zich meebrengen.
Scrum
Scrum structureert agile werk in sprints: iteraties met een vaste lengte van doorgaans één tot vier weken. Er zijn drie kernrollen: de Scrum-master, die het proces faciliteert; de producteigenaar, die verantwoordelijk is voor de werkvoorraad; en het ontwikkelingsteam, dat het werk uitvoert.
Elke sprint begint met sprintplanning, waarbij het team werkvoorraaditems selecteert waaraan het zich committeert. Elke dag brengt een korte dagelijkse bijeenkomst het team op één lijn over de voortgang van het project en blokkades. Aan het einde van de sprint demonstreert het team wat er is gebouwd tijdens een sprintbeoordeling en onderzoekt het tijdens een retrospectief wat er kan worden verbeterd.
Scrum werkt goed wanneer teams een stabiele samenstelling hebben, duidelijke sprintdoelen hanteren en een producteigenaar hebben die daadwerkelijk beschikbaar is. De aanpak loopt vast in omgevingen met veel werk dat door onderbrekingen wordt gestuurd, gedeelde middelen over meerdere Scrum-teams of organisaties waarin een "sprinttoezegging" wordt behandeld als een contractuele verplichting in plaats van een prognose.
Kanban
Kanban gebruikt een visueel bord (oftewel een Kanbanbord) met kolommen die de fasen van de werkstroom vertegenwoordigen. Werkitems worden van links naar rechts verplaatst zodra capaciteit beschikbaar komt. Het belangrijkste mechanisme zijn WIP-limieten: grenzen aan het aantal items dat op een bepaald moment in één kolom mag staan. WIP-limieten voorkomen overbelasting en maken knelpunten zichtbaar.
Kanban werkt goed voor onderhoudsteams, ondersteuningswerk en elke omgeving waarin prioriteiten dagelijks verschuiven. Het werkt ook goed voor teams die overstappen van ad-hocprojectmanagement, omdat het bord onzichtbaar werk zichtbaar maakt zonder dat een volledige procesrevisie nodig is.
Hybride aanpakken
Hybride methoden zoals Water-Scrum-Fall combineren de voorafgaande planning van de watervalaanpak met de iteratieve uitvoering van Scrum.
In sommige organisaties is een hybride aanpak een weloverwogen reactie op projecten die daadwerkelijk zowel bestuur als wendbaarheid nodig hebben. Maar als je hybride aanpak betekent dat je wel sprintplanning doet maar retrospectieven overslaat, of dat je een projecthandvest opstelt maar het nooit bijwerkt, vermijd je simpelweg verantwoordelijkheid.
De test is eenvoudig: kun je uitleggen waarom elk element van je hybride aanpak aanwezig is en welk probleem het oplost? Als het antwoord "zo hebben we het altijd gedaan" is, heeft je methodologie zelf een retrospectief nodig.
| Methodologie | Geschikt voor | Sprint-/faselengte | Flexibiliteit | Risicoprofiel |
|---|---|---|---|---|
| Agile | Veranderende vereisten, productgestuurd werk | 1–4 weken | Hoog | Laag tot gemiddeld |
| Scrum | Multifunctionele teams die iteratief bouwen | 1–4 weken (vast) | Hoog | Laag tot gemiddeld |
| Kanban | Onderhoud, operationeel werk, ondersteuningswerk | Doorlopend | Zeer hoog | Laag |
| Hybride | Bedrijfsbrede projecten, gemengde bestuursbehoeften | Verschilt per fase | Gemiddeld tot hoog | Gemiddeld |
Fasen van de softwareontwikkelingslevenscyclus (SDLC)
Elke SDLC-fase heeft specifieke verantwoordelijkheden, artefacten en risico's op het gebied van projectmanagement. Dit zijn de zaken waarvoor jij als softwareprojectmanager in elke fase verantwoordelijk bent.
Planning en verzamelen van vereisten
De projectmanager bepaalt de projectscope, verzamelt bedrijfs- en technische vereisten, identificeert belanghebbenden en stelt het eerste projectplan op. Artefacten zijn onder meer het projecthandvest, het vereistendocument en het voorlopige risicoregister.
Het grootste risico in deze fase is het ontbreken van volledige vereisten. Wanneer vereisten vaag zijn, lijdt alles wat daarop volgt eronder. Organiseer gestructureerde ontdekkingsworkshops en documenteer acceptatiecriteria voor elke belangrijke functie voordat je verdergaat.
Acceptatiecriteria moeten zo specifiek zijn dat twee verschillende ontwikkelaars die ze lezen hetzelfde zouden bouwen (gegeven-wanneer-dan-acceptatiecriteria zijn hiervoor nuttig). Als je criteria op drie manieren kunnen worden geïnterpreteerd, ben je nog niet klaar met schrijven.
Systeem- en architectuurontwerp
De PM coördineert de samenwerking tussen architecten, ontwikkelaars en belanghebbenden om te valideren dat het voorgestelde ontwerp aan de bedrijfsbehoeften voldoet en binnen het budget blijft. Artefacten omvatten systeemarchitectuurdiagrammen, beslissingen over de technologiestack en goedkeuringen van ontwerpbeoordelingen.
Het grootste risico is onnodige complexiteit. Teams ontwerpen soms voor een schaal die ze nog niet nodig hebben en verspillen tijd en geld aan infrastructuur die pas over jaren relevant wordt. Ik heb meegemaakt dat een team drie weken besteedde aan het bouwen van een microservicesarchitectuur voor een hulpmiddel dat nooit meer dan 200 gebruikers zou bedienen.
Een monolithisch systeem met goede scheidingen zou binnen een week zijn opgeleverd. Het is de taak van de projectmanager om te vragen: "Welk probleem lost dit vandaag op?" en weerstand te bieden tegen het antwoord: "Nog geen enkel probleem."
Ontwikkeling en bouw
Tijdens de bouwfase houdt de projectmanager de voortgang van sprints bij, beheert hij wijzigingen in de scope via een wijzigingsverzoekproces en neemt hij blokkades weg. Artefacten omvatten de sprintbacklog, burndowndiagrammen en statusrapporten.
Het grootste risico is ongecontroleerde scope-uitbreiding. Elke "snelle toevoeging" stapelt zich op. Een gedisciplineerd bord voor wijzigingsverzoeken met impactanalyse is je beste verdediging. De impactanalyse hoeft geen formeel document te zijn.
Zelfs een Slack-bericht van drie regels (bijvoorbeeld: "Deze functie toevoegen kost ongeveer twee dagen, schuift het herontwerp van de inlogpagina op en vereist aanvullende QA voor de betaalstroom") dwingt de aanvrager om de afweging te maken in plaats van elke toevoeging als gratis te beschouwen.
Testen en QA
De projectmanager plant de testdekking, houdt het oplossen van defecten bij en bevestigt dat aan de acceptatiecriteria is voldaan. Artefacten omvatten het testplan, defectlogboeken en QA-goedkeuringsrapporten.
Het grootste risico is onvoldoende testdekking, vooral voor randgevallen en integraties. Testen vanaf het begin, waarbij QA al tijdens de ontwerpfase testgevallen begint te schrijven, detecteert defecten eerder en goedkoper. Een bug die tijdens het ontwerp wordt gevonden, kost minuten om op te lossen. Dezelfde bug die in productie wordt gevonden, kost uren, reputatie en soms omzet.
Implementatie en release
De projectmanager coördineert de releasetiming, terugdraaiplannen en communicatie. Artefacten omvatten het releaseplan, de implementatiechecklist en registraties van go/no-go-beslissingen.
Het grootste risico is dat de implementatie in productie mislukt. Blauw-groene implementaties en canaryreleases maken het mogelijk om eerst naar een deel van de gebruikers uit te rollen en problemen te ontdekken voordat iedereen er last van heeft.
Onderhoud en iteratie na de lancering
Na de lancering brengt de projectmanager het project onder in een onderhoudsritme, beoordeelt binnenkomende bugs en plant iteratieve verbeteringen. Artefacten omvatten de evaluatie na de lancering, incidentrapporten en een bijgewerkte productbacklog.
Het grootste risico is dat het product na de lancering wordt verwaarloosd. Maak een plan om feedback van gebruikers te verzamelen en ernaar te handelen. Plan een formele evaluatie 30 dagen na de lancering met het volledige team en de belangrijkste belanghebbenden. Bekijk gebruiksstatistieken, ondersteuningstickets en functieverzoeken. Geef vervolgens prioriteit aan de volgende iteratie voordat het team opnieuw wordt toegewezen en institutionele kennis verdwijnt.
Beheer van technische schuld
Technische schuld is een van de meest ingrijpende zaken waarop een softwareprojectmanager toezicht houdt, en een van de minst zichtbare. Het is de opgebouwde kostprijs van kortetermijnoplossingen, uitgestelde herstructurering van code, verouderde afhankelijkheden en architectuurbeslissingen die destijds juist waren maar niet langer passen.
De rol van de projectmanager is om technische schuld zichtbaar te maken voor belanghebbenden en ervoor te zorgen dat er specifieke capaciteit voor wordt opgenomen in de backlog. In de praktijk betekent dit drie dingen.
- Houd een register van technische schuld bij naast de backlog met functies. Elk item moet een beschrijving van de schuld bevatten, de geschatte impact ervan op snelheid of betrouwbaarheid en de kosten om het aan te pakken. Zonder dit register blijft schuld onzichtbaar totdat deze een storing veroorzaakt of de oplevering vertraagt.
- Wijs sprintcapaciteit toe aan schuldreductie. Begin met 15–20%. Sommige teams geven de voorkeur aan een speciale "sprint voor technische schuld", maar naar mijn ervaring voorkomt een vaste toewijzing dat schuldwerk steeds wordt geannuleerd wanneer een deadline nadert.
- Breng schuld in verband met bedrijfsresultaten wanneer je met belanghebbenden communiceert. Je zou bijvoorbeeld kunnen zeggen: "De huidige architectuur van de authenticatiemodule voegt twee dagen toe aan elke functie die de login raakt, en drie van onze volgende vijf functies raken de login" in plaats van: "We moeten de authenticatiemodule herstructureren."
Gedistribueerde en externe teams beheren
Gedistribueerde en externe teams brengen specifieke uitdagingen op het gebied van projectmanagement met zich mee waar je rekening mee moet houden.
Coördinatie van tijdzones
Wanneer je team zich over meer dan vier of vijf tijdzones uitstrekt, wordt de gezamenlijke tijd beperkt tot een kort tijdvenster. Bescherm dat tijdvenster en gebruik het alleen voor beslissingen waarvoor realtime overleg nodig is, zoals sprintplanning, ontwerpevaluaties en blokkades.
Publiceer een overzicht van de "teamuren" waarop de werkuren van elk teamlid en de overlappende tijdvensters te zien zijn. Zorg dat het zichtbaar is in de tool die je team dagelijks gebruikt.
Ontwerp van asynchrone ceremonies
Traditionele Scrum-ceremonies gaan ervan uit dat iedereen op dezelfde locatie werkt. Om ze aan te passen voor gedistribueerde teams, moet je de vorm opnieuw bekijken. Dagelijkse bijeenkomsten kunnen bestaan uit asynchrone schriftelijke updates die vóór een dagelijkse deadline in een gedeeld kanaal worden geplaatst. Elke update behandelt wat is afgerond, wat gepland staat en wat geblokkeerd is. De projectmanager bekijkt de blokkades en volgt ze op, in plaats van op een vergadering te wachten.
Sprintbeoordelingen kunnen een opgenomen demovideo combineren met een live vraag-en-antwoordsessie die tijdens het overlappende tijdvenster wordt gepland. Hierdoor kunnen teamleden die niet live aanwezig kunnen zijn de demo op hun eigen tijd bekijken en asynchroon vragen indienen.
Terugblikken zijn de moeilijkste ceremonie om asynchroon uit te voeren, omdat ze afhankelijk zijn van psychologische veiligheid en een open dialoog. Houd terugblikken synchroon, ook als dit betekent dat je ze minder vaak uitvoert.
Documentatie als infrastructuur
In gedistribueerde teams is documentatie niet langer optioneel. Als een beslissing niet is vastgelegd, is die niet genomen, omdat de drie mensen die tijdens die Slack-discussie niet online waren hem niet zullen zien. Zorg voor één bron van waarheid voor beslissingen, architectuurkeuzes en wijzigingen in prioriteiten. Werk deze bij op dezelfde dag waarop de beslissing wordt genomen, niet een week later wanneer de helft van de context verloren is gegaan.
Maatstaven en KPI's voor softwareprojectmanagement
Maatstaven laten je zien of je proces werkt of alleen zo aanvoelt. Dit zijn de maatstaven die ik bij elk project bijhoud:
| KPI | Wat deze meet | Waarom deze meten | Ideale frequentie | Wanneer ingrijpen |
|---|---|---|---|---|
| Snelheid | Werk dat per sprint wordt afgerond (bijv. verhaalpunten of taken) | Hiermee meet je het relatieve inspanningsniveau van elke sprint en hoe snel het team werkt | Elke sprint | Wanneer deze gedurende twee opeenvolgende sprints met 20% of meer daalt |
| Doorlooptijd | Duur van één werkitem | Helpt knelpunten in je workflow aan het licht te brengen, zodat je je inspanningen kunt richten | Wekelijks | Wanneer het gemiddelde de doelstelling van je team met 50% overschrijdt |
| Levertijd | Duur van werkvoorraad tot oplevering | Geeft inzicht in de snelheid van begin tot eind en is eenvoudig te interpreteren voor belanghebbenden | Wekelijks | Wanneer belanghebbenden aangeven dat de oplevering traag aanvoelt |
| Defectdichtheid | Fouten per regel code of functie | Helpt trends te signaleren die wijzen op kwaliteitsproblemen in ontwikkeling of testen | Per release | Wanneer de dichtheid gedurende drie releases toeneemt |
| Nauwkeurigheid van de burndown | Geplande versus daadwerkelijke voltooiing van de sprint | Helpt problemen met schattingen, wijzigingen in scope tijdens de sprint of beide te signaleren | Elke sprint | Wanneer gepland en daadwerkelijk consequent 30% of meer uiteenlopen |
| Tevredenheid van belanghebbenden | Vertrouwen van belanghebbenden in de oplevering | Helpt het succes van het project te waarborgen | Per kwartaal | Wanneer de tevredenheid daalt of feedback volledig uitblijft |
Hier zijn enkele nuttige methoden om de voortgang bij te houden:
- Burndowngrafieken tonen het resterende werk in de loop van de tijd binnen een sprint. Ze zijn nuttig voor dagelijkse bijeenkomsten en controles van de sprintgezondheid.
- Burn-upgrafieken tonen het voltooide werk in de loop van de tijd ten opzichte van de totale reikwijdte, waardoor wijzigingen in de reikwijdte zichtbaar worden. Als de lijn van de totale reikwijdte blijft stijgen, zie je de uitbreiding van de reikwijdte in realtime gebeuren.
- Cumulatieve stroomdiagrammen visualiseren hoeveel items zich in elke workflowfase bevinden om de opbouw van onderhanden werk en trends in de doorvoer zichtbaar te maken. Een breder wordende band in een kolom betekent dat het werk zich daar opstapelt.
- Beheer van verdiende waarde (EVM) vergelijkt de geplande waarde, de verdiende waarde en de werkelijke kosten om de budget- en planningsprestaties te voorspellen. Het is zwaarder dan de meeste wendbare teams willen, maar waardevol voor projecten met een vast budget en externe rapportagevereisten.
Beste praktijken voor softwareprojectmanagement
Hier volgen enkele belangrijke beste praktijken voor het beheren van softwareprojecten.
Doelstellingen en duidelijkheid over vereisten
Gebruik SMART-doelen die zijn afgestemd op de reikwijdte van de software. Schrijf in plaats van "het afrekenproces verbeteren" bijvoorbeeld "het aantal afgebroken afrekeningen vóór het derde kwartaal met 15% verlagen door de betaalstap opnieuw te ontwerpen en ondersteuning voor Apple Pay toe te voegen." Elk doel moet een meetbaar resultaat, een deadline en een verantwoordelijke hebben.
Het meest onderschatte onderdeel van het stellen van projectdoelen is nee zeggen. Een doel dat vier dingen tegelijk probeert te bereiken, bereikt geen van die dingen goed. Beperk je tot maximaal twee primaire doelen per sprint en één uitdagend doel. Als alles een prioriteit is, is niets dat.
Communicatiestrategieën
Gebruik een communicatiemethode waarbij asynchrone communicatie vooropstaat. Schrijf statusupdates in een gedeeld document of projectmanagementhulpmiddel in plaats van nog een vergadering in te plannen. Reserveer synchrone tijd voor beslissingen, demo's en evaluatiesessies.
Gebruik een wekelijkse samenvatting voor belanghebbenden, dagelijkse stand-ups voor het uitvoeringsteam (asynchroon voor verspreid werkende teams) en een tweewekelijkse demo voor bredere groepen belanghebbenden. Houd statusupdates kort en gestructureerd. Begin met wat is opgeleverd, wat geblokkeerd is en wat er daarna komt.
Toewijzing en beheer van middelen
Maak een vaardighedenmatrix waarin de sterke punten, ontwikkelpunten en beschikbaarheid van elk teamlid worden vastgelegd. Gebruik deze tijdens de sprintplanning om de werkbelasting in balans te brengen en kritieke afhankelijkheden van één persoon te voorkomen. Wanneer teamleden over meerdere projecten worden gedeeld, leg dan vooraf prioriteitsregels vast, zodat ze niet voortdurend tussen contexten hoeven te schakelen.
Kwaliteitsnormen
Definieer je definitie van gereed voordat de eerste sprint begint. Een goede definitie van gereed kan bestaan uit een afgeronde codebeoordeling, geslaagde unittests, geslaagde integratietests, bijgewerkte documentatie en goedkeuring door de producteigenaar. Laat "gereed" niet betekenen: "het compileert."
Leg je definitie van gereed schriftelijk vast, hang deze op een plek waar het team haar kan zien en handhaaf haar zonder uitzonderingen tijdens de eerste drie sprints. Daarna zal het team haar zelf handhaven. Zodra je vanwege tijdsdruk toestaat dat een taak als "gereed" wordt gemarkeerd zonder aan de criteria te voldoen, heb je vastgelegd dat de definitie optioneel is. Dat herstelt zich nooit.
Continue verbetering
Houd na elke sprint en na elke uitrol een evaluatiesessie. Richt je per evaluatie op één of twee acties en kom er in de volgende cyclus op terug. Evaluatiesessies die actiepunten opleveren maar geen opvolging krijgen, tasten het vertrouwen snel aan.
Begin elke evaluatiesessie met het doornemen van de actiepunten van de vorige sessie. Hebben we ze uitgevoerd? Hebben ze geholpen? Als het antwoord "we hebben ze niet uitgevoerd" is, is dat meteen het onderwerp van de evaluatie. Ofwel waren de actiepunten niet belangrijk genoeg om prioriteit te geven, ofwel heeft het team niet de capaciteit of bevoegdheid om ze uit te voeren. Beide zijn het waard om eerlijk te bespreken.
Veelvoorkomende uitdagingen en bewezen oplossingen
Hier volgen enkele van de belangrijkste uitdagingen die je tegenkomt bij het beheren van softwareprojecten en manieren om ze op te lossen.
| Uitdaging | Oorzaak | Oplossing |
|---|---|---|
| Uitbreiding van de reikwijdte | Onduidelijke vereisten, zwakke wijzigingscontrole | Beoordelingsraad voor wijzigingsverzoeken met sjabloon voor impactanalyse |
| Knelpunten in middelen | Slecht inzicht in capaciteit | Vaardighedenmatrix in combinatie met sprintplanning met evenwichtige werkbelasting |
| Afstemmingsproblemen binnen het team | Communicatie in afzonderlijke silo's | Multidisciplinaire stand-ups en gedeelde OKR's |
| Kwaliteitsrisico's | Onvoldoende testdekking | QA vroeg in het proces met geautomatiseerde regressiecontroles |
| Tijdsdruk | Optimismebias bij schattingen | Vergelijking met historische snelheid met buffersprints |
Budgetbeheer en ramingen
Er zijn verschillende methoden die je kunt gebruiken om kosten en uren voor softwareontwikkelingsprojecten te ramen.
- Analoge raming gebruikt werkelijke kosten van vergelijkbare projecten uit het verleden. Deze methode is snel, maar is afhankelijk van de beschikbaarheid van vergelijkbare historische gegevens. De nauwkeurigheid hangt volledig af van hoe vergelijkbaar het eerdere project daadwerkelijk was, en mensen overschatten die overeenkomst doorgaans.
- Parametrische modellen passen statistische verbanden toe tussen historische gegevens en projectvariabelen. Als je gemiddelde kosten per storypunt $1,200 bedragen, kun je het budget voorspellen op basis van het geschatte aantal storypunten. Dit werkt goed voor organisaties met volwassen praktijken voor het bijhouden van gegevens.
- Raming van onderop begroot elke taak afzonderlijk en telt die op tot een totaal. Deze methode is nauwkeurig, maar ook tijdrovend. Gebruik haar voor projecten waarbij budgetnauwkeurigheid cruciaal is (bijvoorbeeld contracten met een vaste prijs, werk dat met subsidies wordt gefinancierd of situaties waarin een kostenoverschrijding van 20% ernstige gevolgen heeft).
- Driepuntsraming gebruikt optimistische, meest waarschijnlijke en pessimistische waarden om een gemiddelde te produceren. Deze methode houdt rekening met onzekerheid en heeft als bijkomend voordeel dat het team gedwongen wordt na te denken over wat er mis kan gaan, wat kan helpen bij risicobeheer.
Welke methode je ook gebruikt, software voor tijdregistratie kan de werkelijk aan taken en projecten bestede uren leveren, zodat je die met de ramingen kunt vergelijken.
Budgetbewaking gedurende de hele levenscyclus van het project
Houd de geplande versus werkelijke uitgaven minstens elke twee weken bij. Maatstaven voor verdiende waarde, zoals de kostenprestatie-index (CPI) en de prestatie-index van de planning (SPI), geven je vroegtijdige waarschuwingen. Een CPI lager dan 1,0 betekent dat je per werkeenheid meer uitgeeft dan gepland. Als je dit vroeg ontdekt, kun je de scope, planning of middelen aanpassen voordat het budget op is.
Een nuttige budgetgewoonte die ik heb ontwikkeld, is elke twee weken een eenvoudige beoordeling van het uitgavenniveau. Vergelijk je huidige verbruikssnelheid met je resterende budget en het resterende werk. Als de berekening niet klopt, heb je precies drie opties: de scope verkleinen, de planning verlengen of middelen toevoegen.
Preventie van kostenoverschrijdingen
De grootste kostenoverschrijdingen komen voort uit drie bronnen: scopewijzigingen zonder budgetaanpassingen, onderschatte complexiteit en het laat ontdekken van defecten.
Een formeel proces voor wijzigingsverzoeken waarin de kostenimpact wordt geanalyseerd, pakt de eerste bron aan. Wanneer een belanghebbende om een toevoeging vraagt, moet het antwoord altijd bevatten: "dit zijn de kosten en dit komt ervoor te vervallen."
Driepuntsraming pakt de tweede bron aan door onzekerheid in de prognose op te nemen in plaats van die te negeren. Het verschil tussen de optimistische en pessimistische waarde is op zichzelf nuttige informatie. Een taak waarvoor de optimistische schatting twee dagen is en de pessimistische schatting drie weken, laat zien dat het projectteam het werk niet goed genoeg begrijpt om het te kunnen ramen.
Testen zo vroeg mogelijk pakt de derde bron aan. De kostenontwikkeling van het oplossen van defecten is goed gedocumenteerd: een fout die in de vereisten wordt gevonden, kost 1x zoveel om op te lossen, tijdens de ontwikkeling 6x, tijdens het testen 15x en in productie 100x. Elke dollar die in vroegtijdig testen wordt geïnvesteerd, verdient zichzelf terug.
Wat nu?
De juiste projectmanagementsoftware voor softwareontwikkeling kan het veel eenvoudiger maken om deze beste praktijken toe te passen. Je kunt ook meer advies krijgen over het kiezen van de juiste projectmanagementsoftware voor jouw behoeften.
