Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

For noget tid siden fandt en samtale sted mellem mig og en god ven af ​​mig, hvor følgende sætninger blev hørt:

— Antallet af programmører vil konstant vokse - fordi mængden af ​​kode vokser, og flere og flere udviklere skal hele tiden understøtte det.
— Men koden er ved at blive gammel, noget af det understøttes ikke længere. Det er endda muligt, at der er en form for ligevægt.

Da jeg huskede dem et par dage senere, spekulerede jeg på, om vedligeholdelse af kode, der kræver flere og flere ressourcer over tid, i sidste ende kunne lamme udviklingen af ​​ny funktionalitet, eller ville det kræve en ubegrænset stigning i antallet af programmører? Matematisk analyse og differentialligninger hjalp til kvalitativt at vurdere støttebeløbets afhængighed af udvikling og finde svar på spørgsmål.

Spørgsmål et. Kan støtte "spise" alle udviklingsressourcer?

Overvej et team af programmører, hvor antallet af deltagere er konstant. Andel af deres arbejdstid Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? (Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?) bruges på at udvikle ny kode og den resterende del af tiden Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? går til støtte. Inden for modellens antagelser antager vi, at den første type aktivitet er rettet mod at øge mængden af ​​kode, og den anden er rettet mod at ændre den (rette fejl) og ikke har en væsentlig indflydelse på mængden af ​​kode.

Lad os betegne Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? hele mængden af ​​kode skrevet op til det tidspunkt Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?. Det antages, at hastigheden for at skrive kode er proportional Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?, vi får:

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Det er naturligt at antage, at arbejdsomkostningerne for at vedligeholde koden er proportionale med dens volumen:

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

eller

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Hvor

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Vi får en differentialligning, der let kan integreres. Hvis mængden af ​​kode i det indledende tidspunkt er nul, så

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? funktion Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?Og Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?. Og det betyder en gradvis reduktion over tid i udviklingen af ​​ny funktionalitet til nul og overførsel af alle ressourcer til support.

Dog hvis i løbet af tiden Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? koden bliver forældet og ophører med at blive understøttet, så mængden af ​​kode, der kræver support ad gangen Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? er allerede lige Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? Derefter

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

а Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? er en løsning på en differentialligning med et retarderet argument [1]:

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Løsningen til en sådan ligning er entydigt bestemt ved at specificere værdierne Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? "før tidernes begyndelse" Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?. Da koden endnu ikke var blevet skrevet før det første tidspunkt, i vores tilfælde Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? при Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?.

Lad os se på et par eksempler. Vi vil måle tid i år, og mængden af ​​kode i tusindvis af linjer. Så for Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? værdier i størrelsesordenen tiere er acceptable, vi tager 50 og 100. Det vil sige, om et år vil udviklingsteamet skrive henholdsvis halvtreds og hundrede tusinde linjer kode. Til Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? acceptable værdier kan være: Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?, Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?, Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?. Det betyder, at et udviklingsteam kan understøtte mængden af ​​kode, det skriver på et år, uanset om det er et kvart, halvt eller fuldtid. Som kodens gennemsnitlige levetid vil vi indstille følgende værdier: 1, 2 og 4 år. Løser vi ligningen numerisk, får vi eksempler på funktionens opførsel Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? for nogle parameterkombinationer Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?.
Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?
Funktionens adfærd Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? efterhånden som koden ældes, har den ændret sig. Funktionen er ikke længere ensformig, men udsvingene "falder til ro" over tid, og der er en tendens til Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? til en eller anden konstant værdi. Graferne viser: jo mere Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?, Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? и Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?, det vil sige, at jo langsommere koden ældes, jo hurtigere udvikling af ny kode og jo lavere kvalitet af koden, jo færre ressourcer vil der være tilbage til udvikling af ny funktionalitet. Der var et ønske om at give mindst ét ​​eksempel, hvor Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? "snuglede" tæt på nul. Men dette krævede valget af meget dårlige udviklingskvalitetsindikatorer og kode, der ikke ældes i lang tid. Selv i den nederste venstre graf er der en betydelig mængde ressourcer tilbage til den nye funktionalitet. Derfor er det rigtige svar på det første spørgsmål snarere dette: teoretisk - ja, det er muligt; praktisk - næppe.

Spørgsmål der ikke kunne besvares:

  1. Er det rigtigt det Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? har tendens til en vis grænse ved Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? for alle Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?? Hvis ikke for alle, så for hvilke?
  2. Hvis der findes en grænse, hvordan afhænger dens værdi af Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode??

Spørgsmål to. Kan kodevedligeholdelse forårsage ubegrænset vækst i antallet af programmører?

Lad os betegne Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? antallet af programmører involveret i at udvikle ny kode. Som ovenfor, Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? — mængden af ​​kode skrevet op til et tidspunkt Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?. Derefter

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Hold kodesupport beskæftiget Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode? programmører. Under hensyntagen til aldringskoden,

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Hvor

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Hvis Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?derefter

Hvor mange programmører skal der til for at vedligeholde tidligere skrevet kode?

Således er svaret på det andet spørgsmål negativt: Hvis antallet af udviklere af ny kode er begrænset, kan support under forhold med aldrende kode ikke forårsage en ubegrænset stigning i antallet af programmører.

Konklusion

De overvejede modeller er "bløde" matematiske modeller [2]. De er meget simple. Ikke desto mindre svarer afhængigheden af ​​simuleringsresultaterne til parameterværdierne til, hvad der forventes for rigtige systemer, dette taler til fordel for modellernes tilstrækkelighed og tilstrækkelig nøjagtighed til at opnå estimater af høj kvalitet.

Referencer

1. Elsgolts L.E., Norkin S.B. Introduktion til teorien om differentialligninger med afvigende argumentation. Moskva. Forlaget "Science". 1971.
2. Arnold V.I. "Hårde" og "bløde" matematiske modeller. Moskva. Forlaget MCNMO. 2004.

Kilde: www.habr.com

Tilføj en kommentar