Naar de inhoud
ToolSimu

B2B, bureau en operatie · Interactieve simulator

Simulator voor het knelpunt tussen testen en sprints: wanneer ontwikkelaars de testcapaciteit voorbijstreven

Ontwikkelaars maken functies sneller af dan testers kunnen controleren, en de wachtrij daartussen vreet stilletjes waarde op. Reken het wachten, de ontsnapte fouten en de extra tester door.

Controletoren

Engineers die functies bouwen. Meer ontwikkelaars verhogen de output, maar niet de snelheid van het testen.

8

Functies die een ontwikkelaar in een maand afrondt en aan het testen overdraagt.

2,5

Mensen die functies controleren vóór de oplevering.

2

Hoeveel functies één tester in een maand volledig kan testen, hertesten en accorderen.

7

Omzet, klantbehoud of besparingen die een functie oplevert zodra ze bij gebruikers komt.

€ 8.740

Wat elke functie verliest voor elke maand dat ze in de wachtrij staat, aan gemiste omzet of klantvertrouwen.

€ 736,00

Voert een omgekeerde stresstest en een Monte Carlo-simulatie van 1.000 runs uit op het huidige scenario.

Nettoresultaat per maand

€ 7.213

Doorlopende dominostroom

Elke fase voedt de volgende. Groen is veilig, oranje is een waarschuwing en rood is kritiek.

  1. 1

    Output van ontwikkelaars

    20

    afgeronde functies per maand

    Kritiek

  2. 2

    Testbelasting

    143%

    van de testcapaciteit wordt gevraagd

    Kritiek

  3. 3

    Gemiddelde wachtrij

    18

    functies die op testen wachten

    Kritiek

  4. 4

    Kosten van wachten

    € 26K

    wachtrijvertraging en wisselen van context per maand

    Kritiek

  5. 5

    Resultaat van de pijplijn

    € 7K

    netto per maand

    Waarschuwing

Bedragen worden getoond in EUR op illustratieve schaal, niet tegen een actuele wisselkoers.

Verdiepende handleiding

Simulator voor het knelpunt tussen testen en sprints: wanneer ontwikkelaars de testcapaciteit voorbijstreven

Brancheanalyse voor het management

Een softwareteam is een pijplijn, en een pijplijn kan niet sneller opleveren dan zijn langzaamste schakel. Wanneer ontwikkelaars meer functies afronden dan testers kunnen controleren, verdwijnt het extra werk niet; het sluit aan in een wachtrij. Managers zien drukke ontwikkelaars en een volle sprintborden en concluderen dat het team productief is. Maar een functie die is gebouwd en niet getest, heeft niets opgeleverd, en elke week die ze wacht verliest ze waarde. Ontwikkelaars toevoegen in die situatie verhoogt de loonsom en de lengte van de wachtrij tegelijk en laat de opgeleverde output precies waar die was.

De structuur van het probleem is het verschil tussen twee snelheden. De output van ontwikkelaars is het aantal ontwikkelaars maal de functies die ieder afrondt. De testcapaciteit is het aantal testers maal de functies die ieder kan controleren. Opgeleverde functies zijn het kleinste van de twee, en het verschil daartussen is de snelheid waarmee de wachtrij groeit. Omdat de wachtrij maand na maand oploopt, blijven de kosten niet constant; ze bouwen zich op. Een team dat een beetje boven zijn capaciteit zit, lijkt in de eerste sprint prima en in de zesde duidelijk kapot, en daarom is het probleem gemakkelijk te negeren totdat het groot is.

Het dominoeffect toont de volgorde. Hoge output van ontwikkelaars verhoogt het deel van de testcapaciteit dat wordt gevraagd tot boven de honderd procent. Die belasting laat de wachtrij groeien, wat elke functie erachter vertraagt. Wachten kost rechtstreeks waarde, en het trekt ontwikkelaars ook terug naar oud werk via foutherstel en vragen, zodat hun tijd verloren gaat aan wisselen van context. Overbelaste testers haasten zich, en er ontsnappen meer fouten. Elke stap voedt de volgende, dus een kleine overbelasting in het tweede vak kan binnen enkele sprints het laatste vak rood kleuren.

De ijsberg scheidt de loonsom van de kosten van het knelpunt. Boven de waterlijn liggen de salarissen van ontwikkelaars en testers, die iedereen ziet. Eronder liggen vier kosten die zelden een eigen regel krijgen: de waarde die verloren gaat terwijl functies wachten, de kosten van fouten die klanten bereiken doordat het testen werd gehaast, de tijd van ontwikkelaars die verloren gaat aan wisselen van context en het overwerk van testers bij overbelasting. Samen kunnen ze meer kosten dan de extra tester die ze had weggenomen. Gebruik de simulator om de verhouding tussen ontwikkelaars en testers te vinden waarbij uw pijplijn zichzelf niet meer terugverdient, en vergelijk dat met het toevoegen van een tester.

Blauwdruk van formules en methodiek

Het model rekent per maand in een stabiele toestand. De output van ontwikkelaars is ontwikkelaars maal functies per persoon. De testcapaciteit is testers maal functies per persoon. Opgeleverde functies zijn het kleinste van de twee. De wachtrij groeit elke maand met het verschil, en de gemiddelde wachtrij over een venster van zes maanden is de helft van zes maal die groei. De kosten van vertraging zijn de gemiddelde wachtrij maal de kosten van vertraging. Ontwikkelaars verliezen 1% van hun tijd aan wisselen van context voor elke functie in de wachtrij, begrensd op 20%. Ontsnapte fouten nemen toe met overbelasting.

Output van ontwikkelaars
P = ontwikkelaars × functies per ontwikkelaar
Functies die elke maand worden afgerond en aan het testen worden overgedragen.
Opgeleverde functies
S = min(P, testers × functies per tester)
De pijplijn kan alleen opleveren wat het testen heeft gecontroleerd.
Wachtrij
Q = max(0, P − capaciteit) × 3
Gemiddeld aantal functies dat over een venster van zes maanden wacht, omdat de wachtrij lineair groeit.
Kosten van ontsnapte fouten
E = S × (3% + 15% × overbelasting) × 4.000
Fouten die klanten bereiken nemen toe naarmate het testen wordt overbelast, tegen 4.000 per fout.
Resultaat van de pijplijn
Netto = S × waarde − loonsom − Q × kosten vertraging − E − contextwissel − overwerk testers
Maandresultaat. De break-evenbelasting is waar dit nul bereikt.

Doorwerkende elasticiteit

Het verschil tussen de output van ontwikkelaars en de testcapaciteit is de meest elastische factor, omdat het wachtrij, vertraging, wisselen van context en ontsnapte fouten tegelijk aandrijft. Waarde per functie schaalt de opgeleverde output rechtstreeks. De loonsom is lineair en werkt als drempel, en daarom verdient één extra tester zich vaak vele malen terug.

Drie praktijkvoorbeelden

Starter op eigen kracht

Een productteam van drie mensen

Drie ontwikkelaars en één tester werken aan een klein product. Ontwikkelaars ronden zes functies per maand af en de tester kan er zeven controleren, dus er staat niets in de wachtrij. Laad dit scenario om een evenwichtig klein team te zien waarin opleveren gelijk is aan bouwen en er geen knelpunt is om op te lossen.

Opschalend middensegment

Een evenwichtige organisatie met vierentwintig ontwikkelaars

Een grote organisatie houdt zeven testers voor vierentwintig ontwikkelaars en investeert in automatisering, zodat de testcapaciteit de output van ontwikkelaars net overstijgt. Wachtrijen zijn minimaal en de opgeleverde waarde is hoog. Laad dit scenario om te zien waarom een gezonde verhouding een groot team winstgevend houdt.

Crisis door zwarte zwaan

Tien ontwikkelaars en twee overbelaste testers

Tien snelle ontwikkelaars ronden dertig functies per maand af, maar twee testers kunnen er maar tien controleren. De wachtrij groeit met twintig functies per maand, fouten ontsnappen en ontwikkelaars keren steeds terug naar oude code. Laad dit scenario om te zien hoe een verhoudingsprobleem een grote loonsom in een verlies verandert.

Matrix met branchebenchmarks

MaatstafGevarenzoneBranchegemiddeldeElite (top 10%)
Ontwikkelaars per testerBoven 8:13–5:1Rond 2–3:1 met automatisering
Testbelasting (output van ontwikkelaars ten opzichte van capaciteit)Boven 130%90–105%Onder 90%
Gemiddelde wachtrij voor testenBoven 10 functies2–4 functiesMinder dan 2
Fouten die per oplevering in productie terechtkomenBoven 10%3–6%Onder 2%
Doorlooptijd van klaar tot opgeleverdBoven 4 weken1–2 wekenOnder 3 dagen

Variabelen en hefbomen

Ontwikkelaars

Engineers die functies bouwen. Meer ontwikkelaars verhogen de output, maar niet de snelheid van het testen.

Hefboom: Neem geen ontwikkelaars aan voordat de testcapaciteit groeit; begrens het lopende werk, zodat het team minder afrondt maar meer oplevert.

Afgeronde functies per ontwikkelaar per maand

Functies die een ontwikkelaar in een maand afrondt en aan het testen overdraagt.

Hefboom: Beperk de functies die per sprint worden gestart tot wat testers kunnen controleren, want afgerond maar ongetest werk levert niets op.

Testers

Mensen die functies controleren vóór de oplevering.

Hefboom: Voeg testers toe of plaats testengineers in het team, want elke tester maakt een blok functies vrij dat nu wacht.

Gecontroleerde functies per tester per maand

Hoeveel functies één tester in een maand volledig kan testen, hertesten en accorderen.

Hefboom: Automatiseer regressietests en schrijf vooraf acceptatiecriteria, zodat testers nieuw werk controleren in plaats van oude controles te herhalen.

Waarde van een opgeleverde functie

Omzet, klantbehoud of besparingen die een functie oplevert zodra ze bij gebruikers komt.

Hefboom: Prioriteer functies op waarde en laat die met lage waarde vallen, want de testcapaciteit wordt besteed aan alles wat de wachtrij binnenkomt.

Kosten van vertraging per functie per maand

Wat elke functie verliest voor elke maand dat ze in de wachtrij staat, aan gemiste omzet of klantvertrouwen.

Hefboom: Lever vaker kleinere stappen op, wat de wachttijd van elke functie verkort en de kosten van vertraging verlaagt.

Zo gebruikt u deze simulator

  1. 1Voer het aantal ontwikkelaars in en de functies die elk in een maand afrondt.
  2. 2Stel het aantal testers in en hoeveel functies elk kan controleren.
  3. 3Schat de waarde van een opgeleverde functie en de kosten van vertraging per functie per maand.
  4. 4Lees de vijf dominostenen en let op wanneer de testbelasting boven de honderd procent komt.
  5. 5Vergelijk met het plan met een extra tester in het tabblad Parallel universum en deel de link.

Fouten die u moet vermijden

  • Ontwikkelaars meten op afgeronde functies. Werk dat op testen wacht is voorraad, geen output.
  • Middelen over een lange periode. Een wachtrij die elke maand groeit lijkt vroeg klein en later groot.
  • Testers zien als een kostenpost om te schrappen. Bij een knelpunt is de capaciteit van een tester de waardevolste capaciteit in de pijplijn.
  • Alleen de kosten van vertraging tellen. Ontsnapte fouten en wisselen van context zijn vaak groter.

Veelgestelde vragen

Waarom verhoogt het toevoegen van ontwikkelaars de opgeleverde output niet?

Omdat opleveren wordt begrensd door de langzaamste schakel. Extra ontwikkelaars vergroten de wachtrij voor het testen, wat de kosten verhoogt zonder het opleveringstempo te verhogen.

Is de verhouding tussen ontwikkelaars en testers genoeg om mee te plannen?

Het is een begin, maar de nuttige vergelijking is output tegenover capaciteit. Automatisering, kwaliteit van de eisen en het soort product kunnen de verhouding sterk veranderen.

Hoe worden de kosten van vertraging geschat?

Als een maandelijks verlies per wachtende functie, aan gemiste omzet, klantbehoud of vertrouwen. Het is een aanname, dus test een laag en een hoog cijfer en zie welke domineert.

Waarom nemen fouten toe bij overbelasting?

Testers die worden gehaast slaan gevallen over en controleren minder opnieuw. Het model voegt ontsnapte fouten toe naar rato van hoever de vraag de capaciteit overstijgt.

Wat laat het scenario met een extra tester zien?

Het toont de opbrengst van één extra tester en geautomatiseerde regressie, wat de testcapaciteit verhoogt en de wachtrij meestal wegwerkt. Het tabblad met 24 maanden laat zien wanneer dat zich terugverdient.

Hoe nauwkeurig is dit?

Het is een educatief planningsmodel met de getoonde aannames, geen technisch of financieel advies. Vervang de invoer door uw eigen gegevens over doorvoer en kosten.

Dit is een educatief planningsmodel met vermelde aannames. Het is geen financieel, fiscaal of juridisch advies. Vervang de invoer door uw eigen cijfers en laat belangrijke beslissingen controleren door een gekwalificeerde professional.