Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Prieš kurį laiką tarp manęs ir gero draugo įvyko pokalbis, kuriame pasigirdo tokios frazės:

— Programuotojų skaičius nuolat augs – nes kodo kiekis auga, o jį palaikyti nuolat reikalaujama vis daugiau kūrėjų.
— Bet kodas sensta, dalis jo nebepalaikoma. Netgi gali būti, kad yra kažkokia pusiausvyra.

Prisiminęs jas po kelių dienų, susimąsčiau, ar kodo priežiūra, laikui bėgant reikalaujanti vis daugiau išteklių, galiausiai gali paralyžiuoti naujų funkcijų kūrimą, ar tam reikės neribotai didinti programuotojų skaičių? Matematinė analizė ir diferencialinės lygtys padėjo kokybiškai įvertinti paramos dydžio priklausomybę nuo plėtros ir rasti atsakymus į klausimus.

Klausimas vienas. Ar parama gali „suvalgyti“ visus plėtros išteklius?

Apsvarstykite programuotojų komandą, kurioje dalyvių skaičius yra pastovus. Dalintis savo darbo laiku Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? (Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?) išleidžiama kuriant naują kodą, o likusią laiko dalį Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? eina palaikyti. Modelio prielaidų ribose darome prielaidą, kad pirmojo tipo veikla yra nukreipta į kodo apimties didinimą, o antroji – į jo keitimą (klaidų taisymą) ir didelės įtakos kodo kiekiui neturi.

Pažymėkime Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? visą kodo kiekį, parašytą iki to momento Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?. Darant prielaidą, kad kodo rašymo greitis yra proporcingas Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?, mes gauname:

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Natūralu manyti, kad darbo sąnaudos kodui išlaikyti yra proporcingos jo apimčiai:

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

arba

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Vieta

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Gauname diferencialinę lygtį, kurią galima lengvai integruoti. Jei pradiniu laiko momentu kodo kiekis yra lygus nuliui, tada

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

prie Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? funkcija Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?Ir Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?. O tai reiškia laipsnišką naujų funkcijų kūrimo sumažinimą iki nulio ir visų išteklių perkėlimą į palaikymą.

Tačiau jei per tą laiką Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? kodas pasensta ir nustoja būti palaikomas, tada kodo kiekis, kuriam vienu metu reikalingas palaikymas Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? jau yra lygus Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? Tada

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

а Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? yra diferencialinės lygties sprendimas su sulėtėjusiu argumentu [1]:

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Tokios lygties sprendimas vienareikšmiškai nustatomas nurodant reikšmes Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? "prieš laiko pradžią" Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?. Kadangi kodas dar nebuvo parašytas iki pradinio laiko momento, mūsų atveju Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? prie Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?.

Pažvelkime į kelis pavyzdžius. Mes matuosime laiką metais, o kodo kiekį – tūkstančiais eilučių. Tada už Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? Dešimčių eilės reikšmės yra priimtinos, mes imsime 50 ir 100. Tai yra, per metus kūrėjų komanda parašys atitinkamai penkiasdešimt ir šimtą tūkstančių kodo eilučių. Dėl Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? priimtinos vertės gali būti: Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?, Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?, Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?. Tai reiškia, kad kūrimo komanda gali palaikyti tiek kodo, kiek ji parašo per metus, tiek ketvirtį, tiek pusę, tiek visą darbo dieną. Kaip vidutinį kodo naudojimo laiką nustatysime šias reikšmes: 1, 2 ir 4 metai. Išspręsdami lygtį skaitiniu būdu, gauname funkcijos veikimo pavyzdžius Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? kai kuriems parametrų deriniams Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?.
Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?
Funkcijos elgsena Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? kodui senstant jis pasikeitė. Funkcija nebėra monotoniška, tačiau laikui bėgant svyravimai „nurmėja“ ir yra tendencija Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? iki tam tikros pastovios vertės. Grafikai rodo: tuo daugiau Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?, Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? и Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?, tai yra, kuo lėčiau sensta kodas, tuo greičiau kuriamas naujas kodas ir kuo prastesnė kodo kokybė, tuo mažiau resursų liks naujo funkcionalumo kūrimui. Kilo noras pateikti bent vieną pavyzdį, kuriame Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? "prisiglaudė" arti nulio. Bet tam reikėjo parinkti labai prastus plėtros kokybės rodiklius ir ilgai nesenstantį kodą. Netgi apatiniame kairiajame schemoje naujai funkcijai lieka daug išteklių. Todėl teisingas atsakymas į pirmąjį klausimą veikiau yra toks: teoriškai – taip, įmanoma; praktiškai – vargu ar.

Klausimai, į kuriuos nepavyko atsakyti:

  1. Ar tiesa, kad Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? linkęs į tam tikrą ribą Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? visiems Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?? Jei ne visiems, tai kam?
  2. Jei riba yra, nuo ko priklauso jos vertė Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą??

Antras klausimas. Ar kodo priežiūra gali sukelti neribotą programuotojų skaičiaus augimą?

Pažymėkime Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? programuotojų, dalyvaujančių kuriant naują kodą, skaičius. Kaip aukščiau, Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? — iki tam tikro momento įrašyto kodo kiekis Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?, tada

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Užimkite kodo palaikymą Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą? programuotojai. Atsižvelgiant į senėjimo kodą,

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Vieta

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

jei Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?, Tada

Kiek programuotojų reikia norint išlaikyti anksčiau parašytą kodą?

Taigi, atsakymas į antrąjį klausimą yra neigiamas: jei naujo kodo kūrėjų skaičius yra ribotas, tai senėjimo sąlygomis palaikymas negali sukelti neriboto programuotojų skaičiaus padidėjimo.

išvada

Nagrinėjami „minkštieji“ matematiniai modeliai [2]. Jie labai paprasti. Nepaisant to, modeliavimo rezultatų priklausomybė nuo parametrų verčių atitinka tai, ko tikimasi tikroms sistemoms, o tai byloja apie modelių tinkamumą ir pakankamą tikslumą norint gauti aukštos kokybės įverčius.

Nuorodos

1. Elsgolts L.E., Norkin S.B. Įvadas į diferencialinių lygčių su nukrypstančiu argumentu teoriją. Maskva. Leidykla „Mokslas“. 1971 m.
2. Arnoldas V.I. „Kietieji“ ir „minkštieji“ matematiniai modeliai. Maskva. Leidykla MCNMO. 2004 m.

Šaltinis: www.habr.com

Добавить комментарий