Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

Qualche tempo fa è avvenuta una conversazione tra me e un mio buon amico in cui si sono sentite le seguenti frasi:

— Il numero di programmatori crescerà costantemente, perché la quantità di codice cresce e sempre più sviluppatori sono costantemente tenuti a supportarlo.
— Ma il codice sta invecchiando e parte di esso non è più supportato. È anche possibile che ci sia una sorta di equilibrio.

Ricordandoli qualche giorno dopo, mi sono chiesto se il mantenimento del codice, che richiede sempre più risorse nel tempo, potrebbe alla fine paralizzare lo sviluppo di nuove funzionalità o richiederebbe un aumento illimitato del numero di programmatori? L'analisi matematica e le equazioni differenziali hanno aiutato a valutare qualitativamente la dipendenza dell'importo del sostegno dallo sviluppo e a trovare risposte alle domande.

Domanda uno. Il supporto può “divorare” tutte le risorse di sviluppo?

Considera un team di programmatori in cui il numero di partecipanti è costante. Condivisione del loro tempo di lavoro Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? (Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?) viene dedicato allo sviluppo del nuovo codice e alla restante quota di tempo Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? va a sostenere. All'interno dei presupposti del modello, assumiamo che il primo tipo di attività sia finalizzato ad aumentare il volume del codice, e il secondo sia finalizzato a modificarlo (correggere gli errori) e non abbia un impatto significativo sul volume del codice.

Indichiamo Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? l'intera quantità di codice scritto fino a quel momento Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?. Supponendo che la velocità di scrittura del codice sia proporzionale Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?, noi abbiamo:

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

È naturale supporre che i costi di manodopera per il mantenimento del codice siano proporzionali al suo volume:

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

o

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

donde

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

Otteniamo un'equazione differenziale facilmente integrabile. Se nel momento iniziale la quantità di codice è zero, allora

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

A Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? funzione Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?E Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?. E questo significa una graduale riduzione nel tempo dello sviluppo di nuove funzionalità a zero e il trasferimento di tutte le risorse al supporto.

Tuttavia, se durante il tempo Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? il codice diventa obsoleto e cessa di essere supportato, quindi la quantità di codice che richiede supporto alla volta Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? è già uguale Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? Poi

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

а Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? è una soluzione di un'equazione differenziale con un argomento ritardato [1]:

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

La soluzione di tale equazione è determinata in modo univoco specificando i valori Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? "prima dell'inizio dei tempi" Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?. Poiché nel nostro caso il codice non era ancora stato scritto prima del momento iniziale Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? a Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?.

Diamo un'occhiata ad alcuni esempi. Misureremo il tempo in anni e la quantità di codice in migliaia di righe. Allora per Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? sono accettabili valori dell'ordine delle decine, ne prenderemo 50 e 100. Cioè, in un anno il team di sviluppo scriverà rispettivamente cinquanta e centomila righe di codice. Per Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? i valori accettabili possono essere: Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?, Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?, Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?. Ciò significa che un team di sviluppo può supportare la quantità di codice che scrive in un anno, che si tratti di un trimestre, metà o tempo pieno. Come durata media del codice imposteremo i seguenti valori: 1, 2 e 4 anni. Risolvendo numericamente l'equazione, otteniamo esempi del comportamento della funzione Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? per alcune combinazioni di parametri Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?.
Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?
Comportamento della funzione Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? man mano che il codice invecchia, è cambiato. La funzione non è più monotona, ma le fluttuazioni si “calmano” nel tempo e si tende a Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? ad un valore costante. I grafici mostrano: più Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?, Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? и Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?, ovvero più lentamente il codice invecchia, più veloce è lo sviluppo di nuovo codice e minore è la qualità del codice, meno risorse rimarranno per lo sviluppo di nuove funzionalità. C'era il desiderio di dare almeno un esempio in cui Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? "rannicchiato" vicino allo zero. Ma ciò ha richiesto la selezione di indicatori di qualità di sviluppo molto scadenti e di un codice che non invecchia a lungo. Anche nel grafico in basso a sinistra rimane una quantità significativa di risorse per la nuova funzionalità. Pertanto, la risposta corretta alla prima domanda è piuttosto questa: in teoria sì, è possibile; praticamente - difficilmente.

Domande a cui non è stato possibile rispondere:

  1. È vero che Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? tende ad un certo limite a Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? per tutti Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?? Se non per tutti, per quali?
  2. Se esiste un limite, da cosa dipende il suo valore? Quanti programmatori sono necessari per mantenere il codice scritto in precedenza??

Domanda due. La manutenzione del codice potrebbe causare una crescita illimitata del numero di programmatori?

Indichiamo Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? il numero di programmatori coinvolti nello sviluppo di un nuovo codice. Come sopra, Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? — la quantità di codice scritto fino a un determinato momento Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?. poi

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

Mantieni occupato il supporto del codice Quanti programmatori sono necessari per mantenere il codice scritto in precedenza? programmatori. Tenendo conto del codice di invecchiamento,

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

donde

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

se Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?poi

Quanti programmatori sono necessari per mantenere il codice scritto in precedenza?

Pertanto, la risposta alla seconda domanda è negativa: se il numero di sviluppatori di nuovo codice è limitato, in condizioni di invecchiamento del codice, il supporto non può causare un aumento illimitato del numero di programmatori.

conclusione

I modelli considerati sono modelli matematici “soft” [2]. Sono molto semplici. Tuttavia, la dipendenza dei risultati della simulazione dai valori dei parametri corrisponde a quanto previsto per i sistemi reali, ciò parla a favore dell’adeguatezza dei modelli e della sufficiente precisione per ottenere stime di alta qualità.

Riferimenti

1. Elsgolts L.E., Norkin S.B. Introduzione alla teoria delle equazioni differenziali con argomentazione deviante. Mosca. Casa editrice "Scienza". 1971.
2.Arnold V.I. Modelli matematici “hard” e “soft”. Mosca. Casa editrice MCNMO. 2004.

Fonte: habr.com

Aggiungi un commento