Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Fa un temps, va tenir lloc una conversa entre jo i un bon amic meu en la qual es van escoltar les següents frases:

— El nombre de programadors creixerà constantment, perquè la quantitat de codi està creixent i cada vegada es requereixen més desenvolupadors per donar-hi suport.
— Però el codi s'està fent vell, alguns ja no són compatibles. Fins i tot és possible que hi hagi algun tipus d'equilibri.

Recordant-los uns dies després, em vaig preguntar si el manteniment del codi, que requeriria cada cop més recursos al llarg del temps, podria paralitzar el desenvolupament de noves funcionalitats, o requeriria un augment il·limitat del nombre de programadors? L'anàlisi matemàtica i les equacions diferencials van ajudar a avaluar qualitativament la dependència de la quantitat de suport en el desenvolupament i a trobar respostes a les preguntes.

Pregunta XNUMX. El suport pot "menjar-se" tots els recursos de desenvolupament?

Penseu en un equip de programadors en el qual el nombre de participants és constant. Part del seu temps de treball Quants programadors es necessiten per mantenir el codi escrit anteriorment? (Quants programadors es necessiten per mantenir el codi escrit anteriorment?) es dedica a desenvolupar codi nou i la part restant de temps Quants programadors es necessiten per mantenir el codi escrit anteriorment? va a donar suport. Dins dels supòsits del model, suposem que el primer tipus d'activitat està orientat a augmentar el volum de codi, i el segon està dirigit a canviar-lo (corregir errors) i no té un impacte significatiu en el volum de codi.

Denotem Quants programadors es necessiten per mantenir el codi escrit anteriorment? tota la quantitat de codi escrit fins a aquest moment Quants programadors es necessiten per mantenir el codi escrit anteriorment?. Suposant que la velocitat d'escriptura del codi és proporcional Quants programadors es necessiten per mantenir el codi escrit anteriorment?, obtenim:

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

És natural suposar que els costos laborals per mantenir el codi són proporcionals al seu volum:

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

o

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Des d'on

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Obtenim una equació diferencial que es pot integrar fàcilment. Si en el moment inicial de temps la quantitat de codi és zero, aleshores

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

En Quants programadors es necessiten per mantenir el codi escrit anteriorment? funció Quants programadors es necessiten per mantenir el codi escrit anteriorment?I Quants programadors es necessiten per mantenir el codi escrit anteriorment?. I això suposa una reducció gradual al llarg del temps en el desenvolupament de noves funcionalitats a zero i la transferència de tots els recursos al suport.

Tanmateix, si durant el temps Quants programadors es necessiten per mantenir el codi escrit anteriorment? el codi queda obsolet i deixa de ser compatible, després la quantitat de codi que requereix suport alhora Quants programadors es necessiten per mantenir el codi escrit anteriorment? ja és igual Quants programadors es necessiten per mantenir el codi escrit anteriorment? Llavors

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

а Quants programadors es necessiten per mantenir el codi escrit anteriorment? és una solució a una equació diferencial amb un argument retardat [1]:

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

La solució d'aquesta equació es determina de manera única especificant els valors Quants programadors es necessiten per mantenir el codi escrit anteriorment? "abans del principi dels temps" Quants programadors es necessiten per mantenir el codi escrit anteriorment?. Com que el codi encara no s'havia escrit abans del moment inicial, en el nostre cas Quants programadors es necessiten per mantenir el codi escrit anteriorment? en Quants programadors es necessiten per mantenir el codi escrit anteriorment?.

Vegem-ne uns quants exemples. Mesurarem el temps en anys i la quantitat de codi en milers de línies. Llavors per Quants programadors es necessiten per mantenir el codi escrit anteriorment? valors de l'ordre de les desenes són acceptables, prendrem 50 i 100. És a dir, en un any l'equip de desenvolupament escriurà cinquanta i cent mil línies de codi, respectivament. Per Quants programadors es necessiten per mantenir el codi escrit anteriorment? els valors acceptables poden ser: Quants programadors es necessiten per mantenir el codi escrit anteriorment?, Quants programadors es necessiten per mantenir el codi escrit anteriorment?, Quants programadors es necessiten per mantenir el codi escrit anteriorment?. Això vol dir que un equip de desenvolupament pot suportar la quantitat de codi que escriu en un any, ja sigui un quart, la meitat o el temps complet. Com a vida mitjana del codi, establirem els valors següents: 1, 2 i 4 anys. Resolvent l'equació numèricament, obtenim exemples del comportament de la funció Quants programadors es necessiten per mantenir el codi escrit anteriorment? per a algunes combinacions de paràmetres Quants programadors es necessiten per mantenir el codi escrit anteriorment?.
Quants programadors es necessiten per mantenir el codi escrit anteriorment?
Comportament de la funció Quants programadors es necessiten per mantenir el codi escrit anteriorment? a mesura que el codi envelleix, ha canviat. La funció ja no és monòtona, però les fluctuacions "es calmen" amb el temps i hi ha una tendència a Quants programadors es necessiten per mantenir el codi escrit anteriorment? a algun valor constant. Els gràfics mostren: com més Quants programadors es necessiten per mantenir el codi escrit anteriorment?, Quants programadors es necessiten per mantenir el codi escrit anteriorment? и Quants programadors es necessiten per mantenir el codi escrit anteriorment?, és a dir, com més lent envelleix el codi, més ràpid és el desenvolupament de codi nou i com més baixa és la qualitat del codi, menys recursos quedaran per al desenvolupament de noves funcionalitats. Hi havia la voluntat de posar almenys un exemple en què Quants programadors es necessiten per mantenir el codi escrit anteriorment? "abraçat" prop de zero. Però això va requerir la selecció d'indicadors i codis de qualitat de desenvolupament molt pobres que no envelleixen durant molt de temps. Fins i tot al gràfic inferior esquerre, queda una quantitat important de recursos per a la nova funcionalitat. Per tant, la resposta correcta a la primera pregunta és més aviat aquesta: teòricament, sí, és possible; pràcticament - amb prou feines.

Preguntes que no s'han pogut respondre:

  1. És cert que? Quants programadors es necessiten per mantenir el codi escrit anteriorment? tendeix a algun límit a Quants programadors es necessiten per mantenir el codi escrit anteriorment? per a tot Quants programadors es necessiten per mantenir el codi escrit anteriorment?? Si no és per a tothom, per a quins?
  2. Si existeix un límit, de com depèn el seu valor Quants programadors es necessiten per mantenir el codi escrit anteriorment??

Pregunta dos. El manteniment del codi podria provocar un creixement il·limitat del nombre de programadors?

Denotem Quants programadors es necessiten per mantenir el codi escrit anteriorment? el nombre de programadors implicats en el desenvolupament de nou codi. Com més amunt, Quants programadors es necessiten per mantenir el codi escrit anteriorment? — la quantitat de codi escrit fins a un moment determinat Quants programadors es necessiten per mantenir el codi escrit anteriorment?. Aleshores

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Mantingueu ocupat el suport de codi Quants programadors es necessiten per mantenir el codi escrit anteriorment? programadors. Tenint en compte el codi d'antiguitat,

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Des d'on

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Si Quants programadors es necessiten per mantenir el codi escrit anteriorment?, Llavors

Quants programadors es necessiten per mantenir el codi escrit anteriorment?

Per tant, la resposta a la segona pregunta és negativa: si el nombre de desenvolupadors de codi nou és limitat, en condicions d'envelliment del codi, el suport no pot provocar un augment il·limitat del nombre de programadors.

Conclusió

Els models considerats són models matemàtics "tous" [2]. Són molt senzills. No obstant això, la dependència dels resultats de la simulació dels valors dels paràmetres correspon al que s'espera per als sistemes reals, això parla a favor de l'adequació dels models i la precisió suficient per obtenir estimacions d'alta qualitat.

Referències

1. Elsgolts L.E., Norkin S.B. Introducció a la teoria d'equacions diferencials amb argument desviant. Moscou. Editorial "Ciència". 1971.
2. Arnold V.I. Models matemàtics “durs” i “tous”. Moscou. Editorial MCNMO. 2004.

Font: www.habr.com

Afegeix comentari