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.
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:
- manutenzione e stabilizzazione;
- modernizzazione progressiva;
- 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.
