Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

'n Tyd gelede het 'n gesprek tussen my en 'n goeie vriend van my plaasgevind waarin die volgende frases gehoor is:

β€” Die aantal programmeerders sal voortdurend groei - want die hoeveelheid kode groei, en meer en meer ontwikkelaars word voortdurend vereis om dit te ondersteun.
β€” Maar die kode word oud, sommige daarvan word nie meer ondersteun nie. Dit is selfs moontlik dat daar 'n soort ewewig is.

Toe ek hulle 'n paar dae later onthou, het ek gewonder of die instandhouding van kode, wat mettertyd meer en meer hulpbronne benodig, uiteindelik die ontwikkeling van nuwe funksionaliteit kan verlam, of sal dit 'n onbeperkte toename in die aantal programmeerders vereis? Wiskundige analise en differensiaalvergelykings het gehelp om die afhanklikheid van die hoeveelheid ondersteuning op ontwikkeling kwalitatief te assesseer en antwoorde op vrae te vind.

Vraag een. Kan ondersteun "opvreet" alle ontwikkeling hulpbronne?

Oorweeg 'n span programmeerders waarin die aantal deelnemers konstant is. Deel van hul werktyd Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? (Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?) bestee word aan die ontwikkeling van nuwe kode, en die oorblywende deel van die tyd Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? gaan ondersteun. Binne die aannames van die model, neem ons aan dat die eerste tipe aktiwiteit daarop gemik is om die volume kode te verhoog, en die tweede is daarop gemik om dit te verander (korrigeer foute) en het nie 'n beduidende impak op die volume kode nie.

Kom ons dui aan Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? die hele hoeveelheid kode wat tot op daardie tydstip geskryf is Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?. Gestel die spoed van skryf van kode is proporsioneel Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?, ons kry:

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Dit is natuurlik om aan te neem dat die arbeidskoste vir die instandhouding van die kode eweredig is aan die volume daarvan:

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

of

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Waarvandaan

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Ons kry 'n differensiaalvergelyking wat maklik geΓ―ntegreer kan word. As die hoeveelheid kode op die aanvanklike oomblik nul is, dan

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

op Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? funksie Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?En Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?. En dit beteken 'n geleidelike vermindering oor tyd in die ontwikkeling van nuwe funksionaliteit tot nul en die oordrag van alle hulpbronne om te ondersteun.

As egter gedurende die tyd Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? die kode raak verouderd en hou op om ondersteun te word, dan is die hoeveelheid kode wat ondersteuning benodig op 'n slag Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? is reeds gelyk Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? Dan

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Π° Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? is 'n oplossing vir 'n differensiaalvergelyking met 'n vertraagde argument [1]:

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Die oplossing vir so 'n vergelyking word uniek bepaal deur die waardes te spesifiseer Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? "voor die begin van die tyd" Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?. Aangesien die kode nog nie voor die aanvanklike oomblik in tyd geskryf is nie, in ons geval Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? by Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?.

Kom ons kyk na 'n paar voorbeelde. Ons sal tyd in jare meet, en die hoeveelheid kode in duisende reΓ«ls. Toe vir Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? waardes van die orde van tiene is aanvaarbaar, ons sal 50 en 100 neem. Dit wil sΓͺ, oor 'n jaar sal die ontwikkelingspan onderskeidelik vyftig en honderdduisend reΓ«ls kode skryf. Vir Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? aanvaarbare waardes kan wees: Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?, Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?, Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?. Dit beteken dat 'n ontwikkelingspan die hoeveelheid kode wat dit in 'n jaar skryf kan ondersteun, of dit nou 'n kwartaal, half of voltyds is. As die gemiddelde leeftyd van die kode, sal ons die volgende waardes stel: 1, 2 en 4 jaar. Deur die vergelyking numeries op te los, kry ons voorbeelde van die gedrag van die funksie Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? vir sommige parameterkombinasies Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?.
Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?
Gedrag van die funksie Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? soos die kode verouder, het dit verander. Die funksie is nie meer eentonig nie, maar die skommelinge "kalmeer" met verloop van tyd, en daar is 'n neiging om Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? tot een of ander konstante waarde. Die grafieke wys: hoe meer Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?, Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? ΠΈ Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?, dit wil sΓͺ, hoe stadiger die kode verouder, hoe vinniger die ontwikkeling van nuwe kode en hoe laer die kwaliteit van die kode, hoe minder hulpbronne sal oorbly vir die ontwikkeling van nuwe funksionaliteit. Daar was 'n begeerte om ten minste een voorbeeld te gee waarin Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? "gekruip" naby aan nul. Maar dit het die keuse van baie swak ontwikkelingsgehalte-aanwysers en kode vereis wat nie vir 'n lang tyd verouder nie. Selfs in die onderste linkergrafiek bly 'n aansienlike hoeveelheid hulpbronne oor vir die nuwe funksionaliteit. Daarom is die korrekte antwoord op die eerste vraag eerder dit: teoreties - ja, dit is moontlik; prakties - skaars.

Vrae wat nie beantwoord kon word nie:

  1. Is dit waar dat Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? neig tot 'n sekere beperking by Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? vir alle Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?? Indien nie vir almal nie, dan vir watter?
  2. As 'n limiet bestaan, hoe hang die waarde daarvan af Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou??

Vraag twee. Kan kode-instandhouding onbeperkte groei in die aantal programmeerders veroorsaak?

Kom ons dui aan Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? die aantal programmeerders wat betrokke is by die ontwikkeling van nuwe kode. Soos hierbo, Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? β€” die hoeveelheid kode wat tot op 'n tydstip geskryf is Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?. dan

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Hou kode-ondersteuning besig Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou? programmeerders. Met inagneming van die verouderingskode,

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Waarvandaan

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

As Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?, Dan

Hoeveel programmeerders neem dit om voorheen geskrewe kode te onderhou?

Die antwoord op die tweede vraag is dus negatief: as die aantal ontwikkelaars van nuwe kode beperk is, kan ondersteuning in toestande van verouderingskode nie 'n onbeperkte toename in die aantal programmeerders veroorsaak nie.

Gevolgtrekking

Die modelle wat oorweeg word, is "sagte" wiskundige modelle [2]. Hulle is baie eenvoudig. Nietemin stem die afhanklikheid van die simulasieresultate van die parameterwaardes ooreen met wat verwag word vir werklike stelsels, dit spreek ten gunste van die toereikendheid van die modelle en voldoende akkuraatheid om ramings van hoΓ« gehalte te verkry.

verwysings

1. Elsgolts L.E., Norkin S.B. Inleiding tot die teorie van differensiaalvergelykings met afwykende argument. Moskou. Uitgewerhuis "Science". 1971.
2. Arnold V.I. "Harde" en "sagte" wiskundige modelle. Moskou. Uitgewerhuis MCNMO. 2004.

Bron: will.com

Voeg 'n opmerking