Vediamo alcuni fattori da considerare quando consideriamo se riscrivere un software.
Dovremmo riscrivere se la curva di apprendimento per i nuovi sviluppatori diventa troppo ripida.
Per esperienza, se un nuovo sviluppatore sul progetto supera questi tempi per poter fare il primo rilascio (su una funzionalità locale e ridotta), il sistema dovrebbe essere rivisto nella sua struttura:
Se le persone che entrano sul progetto superano questi termini per diventare produttivi, oltre ad un evidente un problema di manutenibilità ad alto costo, abbiamo un rischio legato al tempo necessario per sostituire le persone attuali nel caso in cui non fossero più disponibili.
Se il rilascio non può essere automatizzato per via della complessità dell’architettura e della configurazione, state sprecando un sacco di soldi a fare cose che una macchina dovrebbe fare per voi.
La complessità del codice scritto, ad esempio per bassa leggibilità, forte interdipendenza (una modifica non può essere applicata facilmente senza inficiare su funzionalità non correlate) o mancanza di implementazione legata ai concetti realizzati, influenza pesantemente sui tempi di risoluzione problemi ed estensione delle funzionalità.
Se anche il più piccolo intervento richiede un ammontare di tempo molto ampio ed evidentemente esagerato, state pagando molto cara ogni manutenzione ed estensione di funzionalità.
Moltiplicate questo fattore di inefficienza per l’ammontare di interventi di manutenzione ed estensione che prevedete di fare e otterrete un indicatore del costo di questa bassa manutenibilità.
Se il vostro software una volta installato è utilizzabile da un solo schermo o in una sola istanza, e su quella istanza bisogna fare molte cose, allora i costi di formazione ed uso aumentano, non solo per il cliente ma anche per gli sviluppatori.
Valutate i costi della tecnologia usata:
Abbiamo visto alcuni motivi per i quali possa convenire riscrivere un software esistente, ma ce ne sono altri per cui non conviene riscrivere un software.
Il mio consiglio personale è quello di valutare attentamente pro e contro anche in base alle osservazioni qui sopra, comparando costi e benefici della riscrittura e del mantenimento del sistema attuale, al fine di valutare se valga effettivamente il costo.
La riscrittura è un lavoro faticoso che implica tempo e concentrazione, ma quando necessario e fatto bene soddisferà il nostro richiedente e cosa c’è di meglio di far felici i nostri clienti?