Hány programozó szükséges a korábban megírt kód karbantartásához?

Nemrég zajlott egy beszélgetés köztem és egy jó barátommal, amelyben a következő mondatok hangzottak el:

— A programozók száma folyamatosan nőni fog – mert a kód mennyisége növekszik, és egyre több fejlesztőnek kell folyamatosan támogatnia.
— De a kód öregszik, egy része már nem támogatott. Még az is lehetséges, hogy van valamiféle egyensúly.

Néhány nappal később emlékezve rájuk, azon töprengtem, vajon az idővel egyre több erőforrást igénylő kód karbantartása végső soron megbéníthatja-e az új funkciók fejlesztését, vagy a programozók számának korlátlan növelését követeli meg? Matematikai elemzés és differenciálegyenletek segítettek a támogatás összegének fejlesztéstől való függőségének minőségi felmérésében és a kérdésekre adott válaszok megtalálásában.

Egy kérdés. A támogatás „felfalhat” minden fejlesztési forrást?

Vegyünk egy olyan programozói csapatot, amelyben a résztvevők száma állandó. Munkaidejük megosztása Hány programozó szükséges a korábban megírt kód karbantartásához? (Hány programozó szükséges a korábban megírt kód karbantartásához?) az új kód fejlesztésére, és a fennmaradó időre fordítódik Hány programozó szükséges a korábban megírt kód karbantartásához? támogatásra megy. A modell feltételezésein belül azt feltételezzük, hogy az első típusú tevékenység a kód mennyiségének növelésére, a második pedig annak megváltoztatására (hibák kijavítására) irányul, és nincs jelentős hatással a kód mennyiségére.

Jelöljük Hány programozó szükséges a korábban megírt kód karbantartásához? az addig megírt kód teljes mennyisége Hány programozó szükséges a korábban megírt kód karbantartásához?. Feltételezve, hogy a kódírás sebessége arányos Hány programozó szükséges a korábban megírt kód karbantartásához?, kapunk:

Hány programozó szükséges a korábban megírt kód karbantartásához?

Természetes azt feltételezni, hogy a kód fenntartásának munkaerőköltségei arányosak a mennyiségével:

Hány programozó szükséges a korábban megírt kód karbantartásához?

vagy

Hány programozó szükséges a korábban megírt kód karbantartásához?

ahonnan

Hány programozó szükséges a korábban megírt kód karbantartásához?

Könnyen integrálható differenciálegyenletet kapunk. Ha a kezdeti pillanatban a kód mennyisége nulla, akkor

Hány programozó szükséges a korábban megírt kód karbantartásához?

-On Hány programozó szükséges a korábban megírt kód karbantartásához? funkció Hány programozó szükséges a korábban megírt kód karbantartásához?És Hány programozó szükséges a korábban megírt kód karbantartásához?. Ez pedig azt jelenti, hogy idővel fokozatosan nullára csökken az új funkciók fejlesztése, és minden erőforrás átkerül a támogatásra.

Ha azonban az idő alatt Hány programozó szükséges a korábban megírt kód karbantartásához? a kód elavulttá válik, és megszűnik a támogatás, majd a támogatást igénylő kód mennyisége egyszerre Hány programozó szükséges a korábban megírt kód karbantartásához? már egyenlő Hány programozó szükséges a korábban megírt kód karbantartásához? Akkor

Hány programozó szükséges a korábban megírt kód karbantartásához?

Hány programozó szükséges a korábban megírt kód karbantartásához?

а Hány programozó szükséges a korábban megírt kód karbantartásához? egy késleltetett argumentumú differenciálegyenlet megoldása [1]:

Hány programozó szükséges a korábban megírt kód karbantartásához?

Egy ilyen egyenlet megoldását az értékek megadása határozza meg egyértelműen Hány programozó szükséges a korábban megírt kód karbantartásához? "az idők kezdete előtt" Hány programozó szükséges a korábban megírt kód karbantartásához?. Mivel a kód még nem íródott meg a kezdeti pillanat előtt, esetünkben Hány programozó szükséges a korábban megírt kód karbantartásához? -on Hány programozó szükséges a korábban megírt kód karbantartásához?.

Nézzünk néhány példát. Az időt években mérjük, a kód mennyiségét pedig ezer sorokban. Aztán azért Hány programozó szükséges a korábban megírt kód karbantartásához? tízes nagyságrendű értékek elfogadhatók, mi 50-et és 100-at veszünk. Vagyis egy év múlva ötven, illetve százezer soros kódot ír a fejlesztőcsapat. Mert Hány programozó szükséges a korábban megírt kód karbantartásához? elfogadható értékek lehetnek: Hány programozó szükséges a korábban megírt kód karbantartásához?, Hány programozó szükséges a korábban megírt kód karbantartásához?, Hány programozó szükséges a korábban megírt kód karbantartásához?. Ez azt jelenti, hogy egy fejlesztőcsapat támogatni tudja az egy év alatt megírt kódmennyiséget, legyen az egy negyedév, fél vagy teljes munkaidő. A kód átlagos élettartamaként a következő értékeket állítjuk be: 1, 2 és 4 év. Az egyenletet numerikusan megoldva példákat kapunk a függvény viselkedésére Hány programozó szükséges a korábban megírt kód karbantartásához? egyes paraméterkombinációkhoz Hány programozó szükséges a korábban megírt kód karbantartásához?.
Hány programozó szükséges a korábban megírt kód karbantartásához?
A funkció viselkedése Hány programozó szükséges a korábban megírt kód karbantartásához? ahogy a kód öregszik, úgy változott. A funkció már nem monoton, de az ingadozások idővel „lecsillapodnak”, és hajlamosak Hány programozó szükséges a korábban megírt kód karbantartásához? valamilyen állandó értékre. A grafikonok azt mutatják: annál több Hány programozó szükséges a korábban megírt kód karbantartásához?, Hány programozó szükséges a korábban megírt kód karbantartásához? и Hány programozó szükséges a korábban megírt kód karbantartásához?, vagyis minél lassabban öregszik a kód, minél gyorsabban fejlődik az új kód és minél alacsonyabb a kód minősége, annál kevesebb erőforrás marad az új funkcionalitás fejlesztésére. Felmerült a vágy, hogy legalább egy példát mondjak, amelyben Hány programozó szükséges a korábban megírt kód karbantartásához? nullához közel „bújt”. Ehhez azonban nagyon rossz fejlesztési minőségi mutatókat és olyan kódot kellett kiválasztani, amely nem öregszik sokáig. Még a bal alsó grafikonon is jelentős mennyiségű erőforrás marad az új funkcióhoz. Ezért az első kérdésre a helyes válasz inkább a következő: elméletileg - igen, lehetséges; gyakorlatilag – alig.

Kérdések, amelyekre nem lehetett válaszolni:

  1. Igaz-e az Hány programozó szükséges a korábban megírt kód karbantartásához? hajlamos bizonyos határt at Hány programozó szükséges a korábban megírt kód karbantartásához? mindenkinek Hány programozó szükséges a korábban megírt kód karbantartásához?? Ha nem mindenkinek, akkor melyiknek?
  2. Ha létezik határérték, mitől függ az értéke Hány programozó szükséges a korábban megírt kód karbantartásához??

Második kérdés. A kód karbantartása okozhatja a programozók számának korlátlan növekedését?

Jelöljük Hány programozó szükséges a korábban megírt kód karbantartásához? az új kód fejlesztésében részt vevő programozók száma. Mint fent, Hány programozó szükséges a korábban megírt kód karbantartásához? — egy adott időpontig felírt kód mennyisége Hány programozó szükséges a korábban megírt kód karbantartásához?. majd

Hány programozó szükséges a korábban megírt kód karbantartásához?

Legyen elfoglalva a kódtámogatás Hány programozó szükséges a korábban megírt kód karbantartásához? programozók. Figyelembe véve az öregedési kódot,

Hány programozó szükséges a korábban megírt kód karbantartásához?

ahonnan

Hány programozó szükséges a korábban megírt kód karbantartásához?

Ha Hány programozó szükséges a korábban megírt kód karbantartásához?, Akkor

Hány programozó szükséges a korábban megírt kód karbantartásához?

Így a második kérdésre a válasz nemleges: ha az új kódot fejlesztők száma korlátozott, akkor az öregedési kód körülményei között a támogatás nem okozhat korlátlan számú programozói növekedést.

Következtetés

A vizsgált modellek „puha” matematikai modellek [2]. Nagyon egyszerűek. Mindazonáltal a szimulációs eredmények függése a paraméterértékektől megfelel a valós rendszerektől elvártaknak, ez a modellek megfelelősége és a jó minőségű becslések készítéséhez szükséges kellő pontosság mellett szól.

Referenciák

1. Elsgolts L.E., Norkin S.B. Bevezetés a differenciálegyenletek elméletébe eltérõ érvekkel. Moszkva. "Science" kiadó. 1971.
2. Arnold V.I. „Kemény” és „puha” matematikai modellek. Moszkva. MCNMO kiadó. 2004.

Forrás: will.com

Hozzászólás