Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

Enige tijd geleden vond er een gesprek plaats tussen mij en een goede vriend van mij, waarin de volgende zinnen te horen waren:

— Het aantal programmeurs zal voortdurend groeien - omdat de hoeveelheid code groeit en er steeds meer ontwikkelaars nodig zijn om deze te ondersteunen.
— Maar de code wordt oud, een deel ervan wordt niet langer ondersteund. Het is zelfs mogelijk dat er sprake is van een soort evenwicht.

Toen ik ze een paar dagen later herinnerde, vroeg ik me af of het onderhouden van code, waarvoor in de loop van de tijd steeds meer middelen nodig zijn, uiteindelijk de ontwikkeling van nieuwe functionaliteit zou kunnen lamleggen, of zou dit een onbeperkte toename van het aantal programmeurs vereisen? Wiskundige analyse en differentiaalvergelijkingen hielpen om de afhankelijkheid van de hoeveelheid steun voor ontwikkeling kwalitatief te beoordelen en antwoorden op vragen te vinden.

Vraag één. Kan steun alle ontwikkelingshulpmiddelen ‘opeten’?

Beschouw een team van programmeurs waarin het aantal deelnemers constant is. Een deel van hun werktijd Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? (Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?) wordt besteed aan het ontwikkelen van nieuwe code, en het resterende deel van de tijd Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? gaat ondersteunen. Binnen de aannames van het model gaan we ervan uit dat het eerste type activiteit gericht is op het vergroten van het codevolume, en het tweede op het veranderen ervan (het corrigeren van fouten) en geen significante impact heeft op het codevolume.

Laten we aanduiden Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? de volledige hoeveelheid code die tot dat moment is geschreven Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?. Ervan uitgaande dat de snelheid van het schrijven van code proportioneel is Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?, we krijgen:

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

Het is logisch om aan te nemen dat de arbeidskosten voor het onderhouden van de code evenredig zijn aan de omvang ervan:

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

of

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

Waar

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

We verkrijgen een differentiaalvergelijking die gemakkelijk kan worden geïntegreerd. Als op het eerste moment de hoeveelheid code nul is, dan

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

bij Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? functie Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?En Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?. En dit betekent in de loop van de tijd een geleidelijke vermindering van de ontwikkeling van nieuwe functionaliteit tot nul en de overdracht van alle middelen ter ondersteuning.

Echter, als gedurende de tijd Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? de code verouderd raakt en niet meer wordt ondersteund, vervolgens de hoeveelheid code die tegelijkertijd ondersteuning nodig heeft Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? is al gelijk Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? Dan

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

а Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? is een oplossing voor een differentiaalvergelijking met een vertraagd argument [1]:

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

De oplossing voor een dergelijke vergelijking wordt op unieke wijze bepaald door de waarden te specificeren Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? "vóór het begin der tijden" Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?. Omdat de code in ons geval nog niet vóór het eerste moment was geschreven Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? bij Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?.

Laten we een paar voorbeelden bekijken. We zullen de tijd in jaren meten, en de hoeveelheid code in duizenden regels. Dan voor Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? waarden in de orde van tientallen zijn acceptabel, we nemen 50 en 100. Dat wil zeggen dat het ontwikkelingsteam binnen een jaar respectievelijk vijftig en honderdduizend regels code zal schrijven. Voor Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? aanvaardbare waarden kunnen zijn: Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?, Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?, Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?. Dit betekent dat een ontwikkelteam de hoeveelheid code die het in een jaar schrijft, kan ondersteunen, of dit nu een kwartaal, de helft of een volledige tijd is. Als gemiddelde levensduur van de code stellen we de volgende waarden in: 1, 2 en 4 jaar. Door de vergelijking numeriek op te lossen, krijgen we voorbeelden van het gedrag van de functie Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? voor sommige parametercombinaties Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?.
Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?
Gedrag van de functie Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? Naarmate de code ouder wordt, is deze veranderd. De functie is niet langer eentonig, maar de schommelingen ‘kalmeren’ in de loop van de tijd, en er is een tendens daartoe Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? tot een constante waarde. De grafieken laten zien: hoe meer Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?, Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? и Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?Dat wil zeggen: hoe langzamer de code veroudert, hoe sneller de ontwikkeling van nieuwe code en hoe lager de kwaliteit van de code, hoe minder middelen er overblijven voor de ontwikkeling van nieuwe functionaliteit. Er was een wens om minstens één voorbeeld te geven waarin Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? “knuffelde” dicht bij nul. Maar dit vereiste de selectie van zeer slechte ontwikkelingskwaliteitsindicatoren en code die niet lang veroudert. Zelfs in de grafiek linksonder blijft er een aanzienlijke hoeveelheid bronnen over voor de nieuwe functionaliteit. Daarom is het juiste antwoord op de eerste vraag eerder dit: theoretisch – ja, het is mogelijk; praktisch - nauwelijks.

Vragen die niet beantwoord konden worden:

  1. Is het waar dat Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? neigt naar een bepaalde grens Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? voor iedereen Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?? Als het niet voor iedereen geldt, voor welke dan?
  2. Als er een limiet bestaat, hoe hangt de waarde ervan dan af? Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden??

Vraag twee. Kan codeonderhoud een onbeperkte groei van het aantal programmeurs veroorzaken?

Laten we aanduiden Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? het aantal programmeurs dat betrokken is bij het ontwikkelen van nieuwe code. Zoals hierboven, Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? — de hoeveelheid code die tot een bepaald tijdstip is geschreven Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?. Dan

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

Houd code-ondersteuning bezig Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden? programmeurs. Rekening houdend met de verouderingscode,

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

Waar

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

als Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?dan

Hoeveel programmeurs zijn er nodig om eerder geschreven code te onderhouden?

Het antwoord op de tweede vraag is dus negatief: als het aantal ontwikkelaars van nieuwe code beperkt is, kan ondersteuning in omstandigheden van verouderende code geen onbeperkte toename van het aantal programmeurs veroorzaken.

Conclusie

De beschouwde modellen zijn “zachte” wiskundige modellen [2]. Ze zijn heel eenvoudig. Niettemin komt de afhankelijkheid van de simulatieresultaten van de parameterwaarden overeen met wat wordt verwacht voor echte systemen, dit spreekt in het voordeel van de adequaatheid van de modellen en voldoende nauwkeurigheid om schattingen van hoge kwaliteit te verkrijgen.

Referenties

1. Elsgolts L.E., Norkin S.B. Inleiding tot de theorie van differentiaalvergelijkingen met afwijkende argumenten. Moskou. Uitgeverij "Wetenschap". 1971.
2. Arnold V.I. “Harde” en “zachte” wiskundige modellen. Moskou. Uitgeverij MCNMO. 2004.

Bron: www.habr.com

Voeg een reactie