Guida

Modernizzare o riscrivere un gestionale: criteri, rischi e costi

Quando un gestionale o un'applicazione web diventa difficile da mantenere, la riscrittura completa può sembrare la soluzione più semplice.

In realtà entrambe le alternative hanno costi e rischi. Modernizzare significa intervenire progressivamente sul sistema esistente. Riscrivere significa ricostruirlo, trasferendo dati, regole e processi in una nuova applicazione.

La decisione deve partire dal valore di ciò che esiste e dalla capacità di controllarne l'evoluzione.

Confronto tra modernizzazione progressiva e riscrittura completa di un gestionale

Il valore non è soltanto nel codice

Un software aziendale contiene:

  • regole operative;
  • eccezioni;
  • dati storici;
  • configurazioni;
  • integrazioni;
  • abitudini degli utenti;
  • procedure costruite nel tempo;
  • conoscenze non sempre documentate.

Una riscrittura deve ricostruire anche questi elementi. Il costo non coincide quindi con la sola produzione di nuovo codice.

Disponibilità e qualità del codice

La modernizzazione è più praticabile quando il codice è disponibile, eseguibile e modificabile.

Occorre valutare:

  • struttura;
  • leggibilità;
  • dipendenze;
  • test;
  • storico;
  • capacità di riprodurre l'ambiente;
  • presenza di componenti proprietari o non aggiornabili.

Qualità e importanza dei dati

I dati possono rappresentare la parte più critica del sistema.

Bisogna conoscere:

  • struttura;
  • volume;
  • qualità;
  • duplicazioni;
  • vincoli;
  • relazioni;
  • storico;
  • esigenze di conservazione;
  • modalità di migrazione;
  • possibilità di verificare il risultato.

Una nuova applicazione non risolve automaticamente problemi presenti nei dati.

Regole aziendali e conoscenza implicita

Molte regole non sono descritte nei documenti. Sono incorporate nel codice o conosciute dagli utenti.

Prima di riscrivere occorre identificare quali comportamenti siano essenziali, quali siano diventati inutili e quali siano semplici conseguenze di limiti tecnici precedenti.

Dipendenze obsolete

La presenza di tecnologie obsolete non impone sempre una riscrittura.

Occorre distinguere tra:

  • dipendenze aggiornabili;
  • componenti sostituibili;
  • aree isolabili;
  • vincoli architetturali;
  • elementi che non possono essere modificati senza coinvolgere l'intero sistema.

Test e documentazione

La modernizzazione è più controllabile quando esistono test o quando è possibile introdurli progressivamente.

Anche una riscrittura necessita di criteri per verificare che il nuovo sistema riproduca correttamente le funzioni essenziali. Senza test e conoscenza condivisa, il rischio non scompare: cambia forma.

Modernizzazione per moduli

La modernizzazione può essere preferibile quando il sistema consente di separare aree e intervenire per fasi.

Questo approccio permette di:

  • distribuire l'investimento;
  • verificare i risultati;
  • ridurre il rischio;
  • conservare le parti affidabili;
  • adattare la roadmap alle priorità;
  • mantenere operativo il software.

Rischi della riscrittura

La riscrittura può comportare:

  • perdita di funzioni non documentate;
  • sottostima delle eccezioni;
  • difficoltà nella migrazione;
  • convivenza prolungata tra due sistemi;
  • formazione degli utenti;
  • ritardi;
  • costi di manutenzione del vecchio software durante il progetto;
  • dipendenza da una lunga fase di sviluppo prima di ottenere valore.

Quando la riscrittura è più ragionevole

La riscrittura può essere preferibile quando:

  • il codice non è disponibile;
  • i diritti di modifica non sono chiari;
  • l'architettura impedisce interventi sicuri;
  • il modello dati non è recuperabile;
  • i processi aziendali sono cambiati radicalmente;
  • il software non può essere eseguito in ambienti supportati;
  • la modernizzazione richiederebbe comunque di sostituire quasi ogni componente;
  • esiste una soluzione standard adeguata che rende inutile mantenere un sistema proprietario.

Confrontare i costi corretti

Il confronto non deve limitarsi al costo iniziale.

Occorre considerare:

  • analisi;
  • sviluppo;
  • migrazione;
  • test;
  • formazione;
  • doppia gestione;
  • assistenza;
  • rischio operativo;
  • interruzioni;
  • manutenzione futura;
  • perdita di conoscenza;
  • dipendenza dal nuovo fornitore.

Una decisione per fasi

Una valutazione iniziale può produrre tre scenari:

  1. manutenzione e stabilizzazione;
  2. modernizzazione progressiva;
  3. sostituzione o riscrittura.

Non sempre è necessario scegliere immediatamente il percorso definitivo. Una prima fase di check-up può ridurre l'incertezza e permettere decisioni più fondate.

Approfondite il percorso di modernizzazione delle applicazioni web e dei gestionali o le condizioni necessarie per un subentro.

Richiedere un confronto preliminare

Descrivete il software, le criticità note e gli accessi disponibili. Il primo confronto serve a comprendere il contesto e a verificare se esistono le condizioni per un intervento.