Skip to main content
Key Takeaways

Doel van projectmanagement: Het gebruik van projectmanagement helpt problemen zoals gemiste vereisten en onduidelijk eigenaarschap bij softwareontwikkeling aan te pakken.

Projecttypen: Verschillende softwareprojecten vereisen uiteenlopende managementaandachtsgebieden, van nieuwe ontwikkeling tot updates en mobiele applicaties.

Agile-methodologieën gebruiken: Agile, Scrum en Kanban bieden softwareteams verschillende voordelen, waarbij elk geschikt is voor andere projectbehoeften.

Belangrijkste risico's: Veelvoorkomende risico's zijn onder meer scope-uitbreiding, technische schuld en onvoldoende testen. Al deze risico's vereisen strategische beheerinspanningen.

Als je geen projectmanagement gebruikt voor softwareontwikkeling (of niet de juiste projectmanagementsoftware), loop je waarschijnlijk tegen allerlei problemen aan die releases kunnen laten mislukken: gemiste projectvereisten, een steeds verder uitdijende scope, gebrekkige communicatie en onduidelijk eigenaarschap. Met projectmanagement krijg je de controle terug en kun je meer releases op tijd, binnen budget en binnen de scope opleveren.

Deze gids behandelt alles wat je moet weten over projectmanagement voor softwareontwikkeling. Je leert praktische raamwerken om sneller te leveren, risico's te beperken en een proces op te bouwen dat je softwareontwikkelingsteam kan volhouden. 

Wat is softwareprojectmanagement?

Softwareprojectmanagement is het vakgebied 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 op te leveren resultaat is.

Create a Free Account to Read More

Unlock this piece and join a community of forward-thinking leaders discovering tools, playbooks, and insights for thriving in the age of AI.

This field is for validation purposes and should be left unchanged.
Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at any time.

Softwareprojecten brengen unieke uitdagingen met zich mee die generieke projectmanagementraamwerken niet volledig aanpakken. Hieronder vind je een samenvatting van de verschillen.

DimensieAlgemeen projectmanagementSoftwareprojectmanagement
Volatiliteit van de scopeIn een vroeg stadium gedefinieerd, wijzigingen formeel beheerdVereisten verschuiven voortdurend naarmate gebruikers feedback geven
Type resultaatFysieke of documentgebaseerde resultatenOntastbare code, API's en gebruikersinterfaces
FeedbacklussenEvaluatie na oplevering of inspectie bij een faseovergangContinue integratie, sprintreviews, bètatests
ToolsGantt-diagrammen, tools voor het nivelleren van resourcesIssuetrackers, Git-repositories, CI/CD-pipelines
TeamstructuurHiërarchie op basis van rollenMultidisciplinaire 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 volgens planning en binnen budget waarde oplevert.

Hieronder worden de doelen van softwareontwikkeling en de doelen van projectmanagement met elkaar vergeleken om de belangrijkste verschillen te illustreren.

Doelen van ontwikkelingDoelen van projectmanagement
Functies bouwen die aan technische specificaties voldoenDe juiste functies op het juiste moment opleveren
Schone, onderhoudbare code schrijvenScope, budget en projectplanning op elkaar afgestemd houden
Bugs oplossen en defecten verminderenRisico's, afhankelijkheden en verwachtingen van belanghebbenden beheren
Systeemprestaties optimaliserenMultidisciplinaire teams coördineren en belemmeringen wegnemen

Soorten softwareprojecten

Hieronder vind je een overzicht van de meest voorkomende soorten softwareprojecten:

  • Nieuwe softwareontwikkeling: Je bouwt vanaf nul, zonder beperkingen van bestaande systemen. De focus van het projectmanagement ligt op het inventariseren 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 ten aanzien van de doorlooptijd. De focus van het projectmanagement ligt op prioritering, regressietests en releasecoördinatie. Het risico hierbij is dat door snelkoppelingen technische schuld wordt opgebouwd.
  • Projecten voor mobiele applicaties: Mobiele projecten hebben snelle iteratiecycli, gedreven door beoordelingstermijnen van appstores en de versnippering van apparaten. De focus van het projectmanagement omvat platformspecifieke kwaliteitsborging, beslissingen over functiepariteit en feedbacklussen op basis van gebruikersanalyses.
  • Enterprise- en SaaS-oplossingen: Deze brengen strenge vereisten voor compliance en schaalbaarheid met zich mee. De focus van het projectmanagement verschuift naar beveiligingsbeoordelingen, overwegingen rond architecturen met meerdere tenants en afstemming over lange verkoopcycli. Het beheer van belanghebbenden wordt complexer.
  • Systeemintegraties en datamigraties: Het werk is zeer technisch en sterk afhankelijk van externe systemen. De focus van het projectmanagement ligt op het in kaart brengen van afhankelijkheden, gegevensvalidatie en rollbackplanning. Het risico voor de planning is bovengemiddeld, omdat API's van derden en verouderde systemen onvoorspelbare belemmeringen introduceren.

Projectmanagementmethodologieën voor softwareteams

Agile

Agile is een iteratieve aanpak waarbij werk wordt opgeleverd in kleine, bruikbare stappen. Teams plannen, bouwen, testen en evalueren in korte cycli en gebruiken feedback om de richting voortdurend aan te passen. 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) vormen het filosofische kader.

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 rigide wettelijke mijlpalen of contracten met een vaste scope, waarbij wijzigingen financiële boetes met zich meebrengen.

Scrum 

Scrum structureert agile werk in sprints: iteraties met een vaste duur van doorgaans één tot vier weken. Er zijn drie kernrollen: de Scrum-master, die het proces begeleidt, de product owner, die verantwoordelijk is voor de backlog, en het ontwikkelingsteam, dat het werk uitvoert.

Elke sprint begint met sprintplanning, waarbij het team backlogitems selecteert waaraan het zich committeert. Elke dag stemt een korte stand-up het team af op de voortgang van het project en eventuele blokkades. Aan het einde van de sprint demonstreert het team wat er is gebouwd tijdens een sprintreview en onderzoekt het tijdens een retrospective wat er kan worden verbeterd.

Scrum werkt goed wanneer teams een stabiele samenstelling hebben, duidelijke sprintdoelen nastreven en een product owner hebben die echt beschikbaar is. De aanpak loopt vast in omgevingen met veel werk dat door onderbrekingen wordt aangestuurd, gedeelde resources over meerdere Scrum-teams heen of organisaties waar een "sprintcommitment" wordt behandeld als een contractuele verplichting in plaats van als een prognose.

Kanban

Kanban gebruikt een visueel bord (d.w.z. een Kanbanbord) met kolommen die workflowfasen voorstellen. 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 brengen knelpunten aan het licht.

Kanban werkt goed voor onderhoudsteams, ondersteuningsgestuurd werk en elke omgeving waarin prioriteiten dagelijks verschuiven. Het werkt ook goed voor teams die afstappen van ad-hoc projectmanagement, omdat het bord onzichtbaar werk zichtbaar maakt zonder dat daarvoor een volledige herziening van het proces nodig is. 

Join the DPM community for access to exclusive content, practical templates, member-only events, and weekly leadership insights - it’s free to join.

This field is for validation purposes and should be left unchanged.
Name*
This field is hidden when viewing the form
This field is hidden when viewing the form
This field is hidden when viewing the form
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at any time.

Hybride benaderingen

Hybride methoden zoals Water-Scrum-Fall combineren de voorafgaande planning van watervalontwikkeling met de iteratieve uitvoering van Scrum.

In sommige organisaties is een hybride aanpak een weloverwogen reactie op projecten die daadwerkelijk zowel governance als wendbaarheid nodig hebben. Maar als je hybride aanpak betekent dat je wel sprintplanning doet maar retrospectives overslaat, of dat je een projecthandvest opstelt maar het nooit bijwerkt, dan vermijd je simpelweg verantwoordelijkheid.

De test is eenvoudig: kun je uitleggen waarom elk onderdeel van je hybride aanpak aanwezig is en welk probleem het oplost? Als het antwoord luidt: "zo hebben we het altijd gedaan", dan heeft je methodologie zelf een retrospective nodig.

MethodologieGeschikt voorDuur sprint/faseFlexibiliteitRisicoprofiel
AgileVeranderende vereisten, productgestuurd werk1–4 wekenHoogLaag tot gemiddeld
ScrumMultidisciplinaire teams die iteratief bouwen1–4 weken (vast)HoogLaag tot gemiddeld
KanbanOnderhoud, operations, ondersteuningsgestuurd werkContinuZeer hoogLaag
HybrideEnterpriseprojecten, gemengde governancebehoeftenVerschilt per faseGemiddeld tot hoogGemiddeld

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 definieert de projectscope, verzamelt zakelijke en technische vereisten, identificeert belanghebbenden en stelt het eerste projectplan op. Artefacten omvatten het projecthandvest, het vereistenoverzicht en het voorlopige risicoregister.

Het grootste risico in deze fase zijn onvolledige vereisten. Wanneer vereisten vaag zijn, lijdt alles wat daarop volgt eronder. Organiseer gestructureerde ontdekkingsworkshops en leg voor elke belangrijke functie acceptatiecriteria vast voordat je verdergaat.

Acceptatiecriteria moeten specifiek genoeg 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 voldoet aan de bedrijfsbehoeften en binnen het budget blijft. Artefacten omvatten systeemarchitectuurdiagrammen, beslissingen over de technologiestack en goedkeuringen van ontwerpbeoordelingen.

Het grootste risico is overengineering. Teams ontwerpen soms voor een schaal die ze nog niet nodig hebben en verspillen tijd en geld aan infrastructuur die jarenlang niet relevant zal zijn. Ik heb meegemaakt dat een team drie weken besteedde aan het bouwen van een microservicesarchitectuur voor een tool die nooit meer dan 200 gebruikers zou bedienen.

Een monoliet met goede grenzen zou in 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 "Nog geen enkel probleem."

Ontwikkeling en bouw

Tijdens de bouwfase houdt de projectmanager de voortgang van sprints bij, beheert hij scopewijzigingen via een proces voor wijzigingsverzoeken en neemt hij blokkades weg. Artefacten omvatten de sprintachterstand, burndown-grafieken en statusrapporten.

Het grootste risico is 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. Vroeg testen, waarbij QA tijdens de ontwerpfase al 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 timing van de release, terugdraaiplannen en communicatie. Artefacten omvatten het releaseplan, de implementatiechecklist en registraties van doorgaan/stoppen-beslissingen.

Het grootste risico is dat de implementatie in productie mislukt. Blauw/groen-implementaties en canary-releases stellen je in staat 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 op prioriteit en plant iteratieve verbeteringen. Artefacten omvatten de evaluatie na de lancering, incidentrapporten en een bijgewerkte productachterstand.

Het grootste risico is dat het product na de lancering wordt verwaarloosd. Stel een plan op om gebruikersfeedback 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, supporttickets 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 waar een softwareprojectmanager toezicht op houdt, en een van de minst zichtbare. Het gaat om de opgestapelde kosten van snelkoppelingen, uitgesteld refactoren, verouderde afhankelijkheden en architectuurbeslissingen die destijds juist waren maar nu niet meer passen.

De rol van de projectmanager is om technische schuld zichtbaar te maken voor belanghebbenden en ervoor te zorgen dat er gerichte capaciteit voor wordt opgenomen in de projectachterstand. In de praktijk betekent dit drie dingen.

  • Houd een register van technische schuld bij naast de functieachterstand. Elk item moet een beschrijving van de schuld bevatten, de geschatte impact ervan op snelheid of betrouwbaarheid en de kosten om deze aan te pakken. Zonder dit register blijft schuld onzichtbaar totdat deze een storing veroorzaakt of de oplevering vertraagt.
  • Wijs sprintcapaciteit toe aan schuldvermindering. Begin met 15–20%. Sommige teams geven de voorkeur aan een aparte "sprint voor technische schuld", maar mijn ervaring is dat een vaste toewijzing voorkomt dat werk aan technische schuld wordt geannuleerd zodra een deadline nadert.
  • Koppel technische schuld aan 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 refactoren."
galen low headshot

Author's Tip

De grootste fout die ik projectmanagers zie maken met technische schuld, is dat ze dit behandelen als een technische kwestie waarbij projectmanagement niet betrokken hoeft te zijn. Als schuld je team vertraagt, is het een projectmanagementprobleem.

Gedistribueerde en externe teams aansturen

Gedistribueerde en externe teams brengen specifieke uitdagingen voor 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 periode waarin iedereen gelijktijdig beschikbaar is korter. Bescherm die periode en gebruik deze alleen voor beslissingen die realtime overleg vereisen, zoals sprintplanning, ontwerpevaluaties en blokkades.

Publiceer een kaart met de "teamuren" waarop de werktijden van elk teamlid en de overlappende perioden worden weergegeven. Maak deze zichtbaar 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. Stand-ups 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 beoordeelt de blokkades en onderneemt vervolgacties, in plaats van op een vergadering te wachten.

Sprintreviews kunnen een opgenomen demovideo combineren met een live vraag-en-antwoordsessie die tijdens de overlappende periode wordt gepland. Hierdoor kunnen teamleden die niet live kunnen deelnemen de demo op hun eigen tijd bekijken en asynchroon vragen indienen.

Retrospectives zijn de moeilijkste ceremonie om asynchroon uit te voeren, omdat ze afhankelijk zijn van psychologische veiligheid en een open dialoog. Houd retrospectives 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 deze niet genomen, omdat de drie mensen die tijdens die Slack-discussie niet online waren deze 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.

Metrieken en KPI's voor softwareprojectmanagement

Metrieken laten je zien of je proces werkt of alleen zo aanvoelt. Dit zijn de metrieken die ik voor elk project bijhoud:

KPIWat het meetWaarom je het meetIdeale frequentieWanneer je actie onderneemt
SnelheidWerk dat per sprint is afgerond (bijv. storypunten of taken)Hiermee kun je het relatieve inspanningsniveau van elke sprint meten en zien hoe snel het team werktElke sprintWanneer deze gedurende twee opeenvolgende sprints met 20%+ daalt
DoorlooptijdDuur van één werkitemHelpt knelpunten in je workflow zichtbaar te maken, zodat je je inspanningen kunt richtenWekelijksWanneer het gemiddelde de doelwaarde van je team met 50% overschrijdt
LevertijdDuur van backlog tot opleveringGeeft inzicht in de snelheid van begin tot eind en is gemakkelijk te interpreteren voor belanghebbendenWekelijksWanneer belanghebbenden melden dat de oplevering traag aanvoelt
DefectdichtheidFouten per regel code of functieHelpt trends te signaleren die wijzen op kwaliteitsproblemen in ontwikkeling of testenPer releaseWanneer de dichtheid gedurende drie releases toeneemt
Nauwkeurigheid van de burndownGeplande versus daadwerkelijke afronding van de sprintHelpt problemen met schattingen, wijzigingen in de scope tijdens de sprint, of beide zichtbaar te makenElke sprintWanneer de planning en de werkelijkheid structureel 30%+ uiteenlopen
Tevredenheid van belanghebbendenVertrouwen van belanghebbenden in de opleveringHelpt het succes van het project te waarborgenElk kwartaalWanneer de tevredenheid daalt of feedback volledig stopt

Hier zijn enkele nuttige methoden om de voortgang bij te houden:

  • Burndown-grafieken tonen het resterende werk in de loop van de tijd binnen een sprint. Ze zijn nuttig voor dagelijkse stand-ups en controles van de sprintstatus.
  • Burnup-grafieken tonen het voltooide werk in de loop van de tijd ten opzichte van de totale scope, waardoor wijzigingen in de scope zichtbaar worden. Als de lijn voor de totale scope blijft stijgen, kun je scope-uitbreiding in realtime zien ontstaan.
  • Cumulatieve-stroomdiagrammen visualiseren hoeveel items zich in elke fase van de workflow bevinden, om  de opbouw van WIP en trends in de doorvoer zichtbaar te maken. Een bredere band in een kolom betekent dat het werk zich daar opstapelt.
  • Verdiendewaardebeheer (EVM) vergelijkt de geplande waarde, de verdiende waarde en de werkelijke kosten om de prestaties van budget en planning te voorspellen. Dit is zwaarder dan de meeste agile teams willen, maar waardevol voor projecten met een vast budget en externe rapportagevereisten.

Beste praktijken voor softwareprojectmanagement

Hier zijn enkele belangrijke beste praktijken voor het beheren van softwareprojecten.

Doelstellingen stellen en vereisten verduidelijken

Gebruik SMART-doelstellingen die zijn aangepast aan de reikwijdte van de software. Schrijf in plaats van "de afrekenflow verbeteren" bijvoorbeeld "het percentage afgebroken afrekeningen tegen het derde kwartaal met 15% verlagen door de betaalstap opnieuw te ontwerpen en ondersteuning voor Apple Pay toe te voegen." Elke doelstelling moet een meetbaar resultaat, een deadline en een verantwoordelijke hebben.

Het meest onderschatte onderdeel van het stellen van projectdoelstellingen is nee zeggen. Een doelstelling die vier dingen tegelijk probeert te bereiken, bereikt geen van die dingen goed. Beperk je tot maximaal twee primaire doelstellingen per sprint en één ambitieuze doelstelling. Als alles een prioriteit is, is niets dat.

Communicatiestrategieën

Kies voor een communicatiemethode waarbij asynchrone communicatie vooropstaat. Schrijf statusupdates in een gedeeld document of een projectmanagementtool in plaats van nog een vergadering in te plannen. Reserveer synchrone tijd voor beslissingen, demonstraties en retrospectieven.

Gebruik een wekelijkse samenvatting voor belanghebbenden, dagelijkse korte bijeenkomsten voor het uitvoeringsteam (asynchroon voor verspreid werkende teams) en een tweewekelijkse demonstratie voor bredere groepen belanghebbenden. Houd statusupdates kort en gestructureerd. Begin met wat er is opgeleverd, wat is geblokkeerd en wat er hierna 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 werklast in balans te brengen en kritieke afhankelijkheden van één persoon te voorkomen. Wanneer teamleden aan meerdere projecten werken, stel dan vooraf prioriteitsregels vast zodat ze niet voortdurend tussen contexten hoeven te wisselen.

Kwaliteitsnormen

Definieer je definitie van gereed voordat de eerste sprint begint. Een goede definitie van gereed kan bestaan uit een voltooide codebeoordeling, geslaagde unittests, geslaagde integratietests, bijgewerkte documentatie en goedkeuring van 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 gedurende de eerste drie sprints. Daarna zal het team haar zelf handhaven. Zodra je voor het eerst toestaat dat een verhaal als "gereed" wordt gemarkeerd zonder aan de criteria te voldoen vanwege tijdsdruk, heb je vastgelegd dat de definitie optioneel is. Dat herstelt zich nooit meer.

Continue verbetering

Houd na elke sprint en na elke release een retrospectief. Richt je per retrospectief op één of twee acties en kom er in de volgende cyclus op terug. Retrospectieven die actiepunten opleveren maar geen opvolging krijgen, tasten het vertrouwen snel aan.

Begin elk retrospectief met het doornemen van de actiepunten van de vorige. Hebben we ze uitgevoerd? Hebben ze geholpen? Als het antwoord "we hebben ze niet uitgevoerd" is, dan is dat meteen het onderwerp van het retrospectief. Ofwel waren de actiepunten niet belangrijk genoeg om prioriteit te krijgen, 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 zijn enkele van de belangrijkste uitdagingen die je tegenkomt bij het beheren van softwareprojecten en manieren om ze op te lossen.

UitdagingOnderliggende oorzaakOplossing
Scope-uitbreidingOnduidelijke vereisten, zwakke wijzigingscontroleWijzigingsverzoekenbord met sjabloon voor impactanalyse
Knelpunten bij middelenBeperkt inzicht in capaciteitVaardighedenmatrix gecombineerd met sprintplanning met een gebalanceerde werkbelasting
Problemen met teamafstemmingCommunicatie in silo'sMultidisciplinaire korte bijeenkomsten en gedeelde OKR's
Kwaliteitsrisico'sOnvoldoende testdekkingQA vanaf het begin met geautomatiseerde regressiecontroles
TijdsdrukOptimismebias bij schattingenHistorische snelheid vergelijken met buffersprints
galen low headshot

Author's Tip

Het diepere probleem is dat veel wijzigingen in de scope via informele kanalen het project binnenkomen en elk formeel proces omzeilen. Een belanghebbende noemt tijdens een demo een “kleine aanpassing”. Een ontwikkelaar voegt een functie toe waarvan diegene denkt dat gebruikers die zullen willen. De producteigenaar interpreteert een gebruikersverhaal halverwege de sprint opnieuw, zodat er extra functionaliteit onder valt.

 

Pak scope-uitbreiding op drie niveaus aan.

  1. Het formele niveau: Elke wijziging, ongeacht de omvang, doorloopt een gedocumenteerde impactanalyse met daarin de benodigde inspanning, de gevolgen voor de planning en wat een lagere prioriteit krijgt om ruimte te maken.
  2. Het culturele niveau: Het team heeft gedeelde taal en de ruimte nodig om te zeggen “dat is een scopewijziging” zonder dat dit vijandig overkomt.
  3. Het structurele niveau: Sprintdoelen moeten specifiek genoeg zijn zodat iedereen kan herkennen wanneer een voorgestelde toevoeging daarbuiten valt.

n

Budgetbeheer en schattingen

nn

Er zijn verschillende methoden die je kunt gebruiken om kosten en uren voor softwareontwikkelingsprojecten te schatten.

nn
    n
  • Schatten op basis van vergelijkbare projecten gebruikt werkelijke kosten van vergelijkbare projecten uit het verleden. Het is snel, maar vereist dat je over vergelijkbare historische gegevens beschikt. De nauwkeurigheid hangt volledig af van hoe vergelijkbaar het eerdere project daadwerkelijk was, en mensen hebben de neiging de overeenkomst te overschatten.
  • nnnn
  • Parametrische modellen passen statistische verbanden toe tussen historische gegevens en projectvariabelen. Als je gemiddelde kosten per verhaalpunt $1,200 bedragen, kun je het budget voorspellen op basis van het geschatte aantal verhaalpunten. Dit werkt goed voor organisaties met volwassen praktijken voor het bijhouden van gegevens.
  • nnnn
  • Van onderaf schatten bepaalt de prijs van elke taak en telt die op tot een totaal. Het is nauwkeurig, maar ook tijdrovend. Gebruik dit 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).
  • nnnn
  • Schatten met drie punten gebruikt optimistische, meest waarschijnlijke en pessimistische waarden om een gemiddelde te produceren. Het houdt rekening met onzekerheid en heeft als bijkomend voordeel dat het team wordt gedwongen na te denken over wat er mis kan gaan, wat kan helpen bij risicobeheer.
  • n
n
galen low headshot

Een opmerking over het schattingsprobleem

De meeste mislukkingen bij projectplanningen zijn terug te voeren op schattingen, en de meeste mislukte schattingen hebben een van twee oorzaken: verankering en ontbrekende complexiteit.

 

Verankering gebeurt wanneer iemand (meestal een senior of belanghebbende) een planning noemt voordat het team een schatting maakt. Zodra dat getal ter sprake is gebracht, beweegt elke schatting in de richting ervan. De oplossing vereist discipline: het team maakt een schatting voordat een planning van een belanghebbende wordt gedeeld.

 

Ontbrekende complexiteit ontstaat doordat gesprekken over schattingen zich richten op het werk en de overhead negeren: codebeoordelingen, testen, implementatie, documentatie, vergaderingen en de onvermijdelijke contextwisselingen die 20% van de werkweek van een ontwikkelaar opslokken. Voeg om te beginnen een buffer van 30% toe aan ruwe schattingen voor softwareontwikkeling en pas die aan op basis van de werkelijke prestaties gedurende drie tot vier sprints.

 

Ik neem hier een standpunt in dat misschien controversieel is: traditioneel schatten met verhaalpunten is in de meeste organisaties grotendeels een vertoning. Teams besteden uren aan sessies met planningspoker en de resulterende schattingen correleren slecht met de levertijd. Voorspellen op basis van cyclustijd (met historische gegevens over hoe lang vergelijkbare items duurden) levert betrouwbare resultaten op met minder overhead.

n

Budget bijhouden gedurende de projectlevenscyclus

nn

Houd gepland en werkelijk uitgegeven geld minimaal tweewekelijks bij. Maatstaven voor verdiende waarde, zoals de kostenprestatie-index (CPI) en de planningsprestatie-index (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.

n

Een nuttige gewoonte voor budgetbeheer die ik heb ontwikkeld, is elke twee weken een eenvoudige beoordeling van het uitgaventempo uit te voeren. 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 aanpassingen van het budget, onderschatte complexiteit en het laat ontdekken van defecten.

Een formeel proces voor wijzigingsverzoeken waarin een analyse van de kostenimpact is opgenomen, pakt de eerste oorzaak aan. Wanneer een belanghebbende om een toevoeging vraagt, moet het antwoord altijd bevatten: "dit zijn de kosten en dit komt ervoor te vervallen." 

Een raming op basis van drie punten pakt de tweede oorzaak aan door onzekerheid in de prognose op te nemen in plaats van die te negeren. Het verschil tussen de optimistische en pessimistische waarden is op zichzelf nuttige informatie. Een taak waarvan 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.

Door eerder in het proces te testen, pak je de derde oorzaak aan. De kostenontwikkeling van het oplossen van defecten is goed gedocumenteerd: een bug die in de vereisten wordt gevonden, kost 1x om te herstellen, 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 best practices toe te passen. Je kunt ook meer advies krijgen over het kiezen van de juiste projectmanagementsoftware voor jouw behoeften.