Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

Antaŭ iom da tempo okazis interparolo inter mi kaj mia bona amiko, en kiu aŭdiĝis jenaj frazoj:

— La nombro da programistoj konstante kreskos - ĉar la kvanto de kodo kreskas, kaj pli kaj pli da programistoj estas konstante postulataj por subteni ĝin.
— Sed la kodo malnoviĝas, iuj el ĝi ne plu estas subtenataj. Eblas eĉ ke ekzistas ia ekvilibro.

Memorante ilin kelkajn tagojn poste, mi demandis min, ĉu konservado de kodo, postulanta pli kaj pli da rimedoj laŭlonge de la tempo, povus finfine paralizi la disvolviĝon de novaj funkcioj, aŭ ĉu ĝi postulus senliman kreskon de la nombro de programistoj? Matematika analizo kaj diferencialaj ekvacioj helpis kvalite taksi la dependecon de la kvanto de subteno sur evoluo kaj trovi respondojn al demandoj.

Demando unu. Ĉu povas subteni "manĝi" ĉiujn disvolvajn rimedojn?

Konsideru teamon de programistoj en kiu la nombro da partoprenantoj estas konstanta. Divido de ilia labortempo Kiom da programistoj necesas por konservi antaŭe skribitan kodon? (Kiom da programistoj necesas por konservi antaŭe skribitan kodon?) estas elspezita por evoluigi novan kodon, kaj la restantan parton de tempo Kiom da programistoj necesas por konservi antaŭe skribitan kodon? iras por subteni. Ene de la supozoj de la modelo, ni supozas, ke la unua speco de agado celas pliigi la volumon de kodo, kaj la dua celas ŝanĝi ĝin (korekti erarojn) kaj ne havas gravan efikon sur la volumo de kodo.

Ni signu Kiom da programistoj necesas por konservi antaŭe skribitan kodon? la tuta kvanto de kodo skribita ĝis tiu punkto en tempo Kiom da programistoj necesas por konservi antaŭe skribitan kodon?. Supozante la rapidecon de skribado de kodo estas proporcia Kiom da programistoj necesas por konservi antaŭe skribitan kodon?, ni ricevas:

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

Estas nature supozi ke la laborkostoj por konservado de la kodo estas proporciaj al ĝia volumeno:

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

De kie

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

Ni akiras diferencialan ekvacion kiu povas esti facile integrebla. Se en la komenca momento la kvanto de kodo estas nula, tiam

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

ĉe Kiom da programistoj necesas por konservi antaŭe skribitan kodon? karakterizaĵo Kiom da programistoj necesas por konservi antaŭe skribitan kodon?kaj Kiom da programistoj necesas por konservi antaŭe skribitan kodon?. Kaj ĉi tio signifas laŭgradan redukton kun la tempo en la disvolviĝo de novaj funkcioj al nulo kaj la translokigo de ĉiuj rimedoj por subteni.

Tamen, se dum la tempo Kiom da programistoj necesas por konservi antaŭe skribitan kodon? la kodo iĝas malnoviĝinta kaj ĉesas esti subtenata, tiam la kvanto de kodo postulanta subtenon samtempe Kiom da programistoj necesas por konservi antaŭe skribitan kodon? estas jam egala Kiom da programistoj necesas por konservi antaŭe skribitan kodon? Tiam

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

а Kiom da programistoj necesas por konservi antaŭe skribitan kodon? estas solvo al diferenciala ekvacio kun malfruiĝinta argumento [1]:

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

La solvo al tia ekvacio estas unike determinita per specifado de la valoroj Kiom da programistoj necesas por konservi antaŭe skribitan kodon? "antaŭ la komenco de la tempo" Kiom da programistoj necesas por konservi antaŭe skribitan kodon?. Ĉar la kodo ankoraŭ ne estis skribita antaŭ la komenca momento en la tempo, en nia kazo Kiom da programistoj necesas por konservi antaŭe skribitan kodon? ĉe Kiom da programistoj necesas por konservi antaŭe skribitan kodon?.

Ni rigardu kelkajn ekzemplojn. Ni mezuros tempon en jaroj, kaj la kvanton da kodo en miloj da linioj. Tiam por Kiom da programistoj necesas por konservi antaŭe skribitan kodon? valoroj de la ordo de dekoj estas akcepteblaj, ni prenos 50 kaj 100. Tio estas, en jaro la disvolva teamo skribos respektive kvindek kaj cent mil liniojn de kodo. Por Kiom da programistoj necesas por konservi antaŭe skribitan kodon? akcepteblaj valoroj povas esti: Kiom da programistoj necesas por konservi antaŭe skribitan kodon?, Kiom da programistoj necesas por konservi antaŭe skribitan kodon?, Kiom da programistoj necesas por konservi antaŭe skribitan kodon?. Ĉi tio signifas, ke evolua teamo povas subteni la kvanton da kodo, kiun ĝi skribas en jaro, ĉu ĝi estas kvarono, duono aŭ plentempe. Kiel la averaĝa vivdaŭro de la kodo, ni starigos la sekvajn valorojn: 1, 2 kaj 4 jaroj. Solvante la ekvacion nombre, ni akiras ekzemplojn de la konduto de la funkcio Kiom da programistoj necesas por konservi antaŭe skribitan kodon? por iuj parametraj kombinoj Kiom da programistoj necesas por konservi antaŭe skribitan kodon?.
Kiom da programistoj necesas por konservi antaŭe skribitan kodon?
Konduto de la funkcio Kiom da programistoj necesas por konservi antaŭe skribitan kodon? dum la kodo maljuniĝas, ĝi ŝanĝiĝis. La funkcio ne plu estas monotona, sed la fluktuoj "trankviliĝas" laŭlonge de la tempo, kaj estas tendenco al Kiom da programistoj necesas por konservi antaŭe skribitan kodon? al iu konstanta valoro. La grafikaĵoj montras: des pli Kiom da programistoj necesas por konservi antaŭe skribitan kodon?, Kiom da programistoj necesas por konservi antaŭe skribitan kodon? и Kiom da programistoj necesas por konservi antaŭe skribitan kodon?, tio estas, ju pli malrapida la kodo maljuniĝas, des pli rapida la evoluo de nova kodo kaj ju pli malalta la kvalito de la kodo, des malpli da rimedoj restos por la disvolviĝo de novaj funkcioj. Estis deziro doni almenaŭ unu ekzemplon en kiu Kiom da programistoj necesas por konservi antaŭe skribitan kodon? "snuggled" proksime al nulo. Sed ĉi tio postulis la elekton de tre malbona evolukvalita indikiloj kaj kodo, kiu ne maljuniĝas dum longa tempo. Eĉ en la malsupra maldekstra grafikaĵo restas grava kvanto da rimedoj por la nova funkcio. Tial, la ĝusta respondo al la unua demando estas prefere ĉi tiu: teorie - jes, ĝi eblas; praktike — apenaŭ.

Demandoj, kiuj ne povis esti responditaj:

  1. Ĉu vere estas tio Kiom da programistoj necesas por konservi antaŭe skribitan kodon? tendencas al iu limo je Kiom da programistoj necesas por konservi antaŭe skribitan kodon? por ĉiuj Kiom da programistoj necesas por konservi antaŭe skribitan kodon?? Se ne por ĉiuj, do por kiuj?
  2. Se ekzistas limo, kiel dependas ĝia valoro Kiom da programistoj necesas por konservi antaŭe skribitan kodon??

Demando du. Ĉu koda prizorgado povus kaŭzi senliman kreskon de la nombro da programistoj?

Ni signu Kiom da programistoj necesas por konservi antaŭe skribitan kodon? la nombro da programistoj implikitaj en evoluigado de nova kodo. Kiel supre, Kiom da programistoj necesas por konservi antaŭe skribitan kodon? — la kvanto de kodo skribita ĝis momento Kiom da programistoj necesas por konservi antaŭe skribitan kodon?. Tiam

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

Tenu kodan subtenon okupata Kiom da programistoj necesas por konservi antaŭe skribitan kodon? programistoj. Konsiderante la maljuniĝan kodon,

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

De kie

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

se Kiom da programistoj necesas por konservi antaŭe skribitan kodon?, tiam

Kiom da programistoj necesas por konservi antaŭe skribitan kodon?

Tiel, la respondo al la dua demando estas negativa: se la nombro da programistoj de nova kodo estas limigita, tiam en kondiĉoj de maljuniĝanta kodo, subteno ne povas kaŭzi senliman kreskon de la nombro da programistoj.

konkludo

La modeloj konsiderataj estas "molaj" matematikaj modeloj [2]. Ili estas tre simplaj. Tamen, la dependeco de la simulaj rezultoj de la parametraj valoroj respondas al tio, kion oni atendas por realaj sistemoj, tio parolas favore al la taŭgeco de la modeloj kaj sufiĉa precizeco por akiri altkvalitajn taksojn.

Referencoj

1. Elsgolts L.E., Norkin S.B. Enkonduko al la teorio de diferencialaj ekvacioj kun devia argumento. Moskvo. Eldonejo "Scienco". 1971.
2. Arnold V.I. "Malmolaj" kaj "molaj" matematikaj modeloj. Moskvo. Eldonejo MCNMO. 2004.

fonto: www.habr.com

Aldoni komenton