Immagina il seguente scenario:
- Codebase di 600.000 righe di codice (C #)
- Tutto in un'unica applicazione desktop
- Tutti scritti da un singolo sviluppatore (il sottoscritto) in 8 anni (3 anni vale il tempo effettivo di codifica).
- Il software è potente e flessibile (ovviamente vago), quindi c'è una complessità intrinseca nel codice, anche se modulare e con un basso debito.
- Il software si trova in un settore di controllo di macchine di nicchia, quindi c'è una dilatazione molto lunga per la conoscenza del dominio sia delle macchine che del codice.
- Il software diventerà sempre più personalizzato laddove i singoli clienti ottengono i propri addon e miglioramenti
Quale sarebbe la dimensione consigliata del team del software per mezzo milione di codebase (desktop C #) come quello sopra? Quale sarebbe l'ideale per una tipica applicazione desktop LOC C # da 500k?
Questo software non è un ciclo di vita "end to end". È "end to infinity", ovvero continuerà a crescere e diventare più grande e più potente e complesso. Tanto più che altri ingegneri vengono aggiunti al team.