Quando riscrivere il software?

Quando riscrivere?

Vediamo alcuni fattori da considerare quando consideriamo se riscrivere un software.

Ripidità  della curva di apprendimento

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:

  • Neolaureato/diplomato, senza esperienza sul campo: 1.5 mesi
  • Junior con esperienza su almeno un paio di progetti: 1 mese
  • Intermedio (Intermediate): 2 settimane
  • Professionista: 1 settimana
  • Esperto (Senior): 1 giorno

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.

Necessità di rilascio manuale

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.

Bassa manutenibilità  ed estensibilità

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à.

Fruibilità 

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.

Tecnologia obsoleta

Valutate i costi della tecnologia usata:

  • Richiede sviluppatori specializzati difficilmente reperibili?
  • E’ mantenuta o aggiornabile a versioni o piattaforme mantenute?
  • Esiste una tecnologia alternativa più semplice, meno costosa, più sicura, ecc.. disponibile?
  • Se e quali costi intrinseci di mantenimento si porta dietro

Conclusioni generali

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?

    Licenza:
    I contenuti di questo articolo sono proprietà intellettuale dei relativi autori e protetti ai sensi dell'art. 1 della legge italiana sul diritto d'autore n. 633 del 22 aprile 1941.
    La copia, parziale o integrale, è illegale escluso il caso di citazioni di lunghezza massima di un singolo paragrafo e il cui testo sia completamente incluso in un link a questa pagina.
    Pagine simili a "Quando riscrivere un software?"