Unificazione di 5 sistemi legacy in un portale unico: il caso Esercito Italiano
Da Team Lead Frontend ho guidato lo sviluppo di SI.MO.GE., sistema gestionale modulare su Angular 17-19, commissionato da Esercito Italiano tramite Accenture.
Il problema
L'Esercito Italiano gestiva le attivita operative e amministrative tramite 5 sistemi separati, sviluppati in epoche diverse, con tecnologie incompatibili e senza una visione unificata dei dati.
Gli operatori dovevano accedere a piu portali diversi per completare anche una singola procedura. I dati venivano duplicati manualmente tra i sistemi, con errori frequenti e tempi operativi elevati. I report periodici richiedevano ore di lavoro per aggregare dati da fonti diverse.
I punti critici erano tre:
- Nessuna visione unificata dei dati: ogni sistema aveva il suo database senza sincronizzazione
- Dipendenza da tecnologie obsolete con rischi di sicurezza e costi di manutenzione elevati
- Esperienza utente frammentata che richiedeva formazione separata per ogni sistema
La soluzione
SI.MO.GE. e una Single Page Application modulare costruita su Angular 17-19 che sostituisce tutti i sistemi precedenti con un'unica interfaccia coerente.
L'architettura e stata progettata per scalare: ogni modulo funzionale e uno standalone component con lazy loading, state management tramite Signal e comunicazione tramite API REST con backend NestJS.
I risultati
Il mio ruolo
Come Team Lead Frontend ho coordinato un team di 4 sviluppatori, definito la struttura Angular del progetto e stabilito convenzioni di codice e processi di code review. Ho gestito il rapporto tecnico con il cliente e partecipato agli allineamenti con il backend team e gli architetti Accenture. Ho migrato progressivamente il codebase da Angular 17 a Angular 19, senza interruzione del servizio.
Le fasi del progetto
- 1
Analisi e requisiti
Fase inizialeWorkshop con stakeholder Esercito + architetti Accenture per mappare i 5 sistemi legacy, i flussi operativi, i ruoli utente e le dipendenze dati. Definizione del design system e della scaffolding Angular.
- 2
MVP del portale unificato
Angular 17Sviluppo del guscio applicativo: routing modulare, autenticazione, gestione permessi, layout responsive e primo modulo funzionale pilota. Setup pipeline CI/CD con deploy su ambiente di staging del cliente.
- 3
Rollout dei moduli funzionali
Angular 17 → 18Ciclo iterativo di rilascio dei moduli che sostituiscono i 5 sistemi legacy. Ogni modulo con lazy loading, signals per state management e test end-to-end. Migrazione progressiva ad Angular 18 senza downtime.
- 4
Migrazione ad Angular 19
Angular 18 → 19Upgrade del codebase ad Angular 19 con adozione dei nuovi signal inputs, control flow @if/@for, refactoring progressivo dei componenti a OnPush e zoneless. Nessuna interruzione di servizio per gli utenti finali.
- 5
Stabilizzazione e manutenzione
In corsoDismissione definitiva dei sistemi legacy, monitoraggio delle performance in produzione, onboarding di nuovi sviluppatori tramite documentazione tecnica e processi di code review consolidati.
Cosa ho imparato da questo progetto
- Un'architettura modulare con lazy loading è l'unico modo realistico per unificare sistemi legacy senza compromettere performance e manutenibilità.
- Migrare Angular una major version alla volta, con test automatici e feature flag, permette zero downtime anche su progetti enterprise.
- Il ruolo di Team Lead non è solo tecnico: allineare il cliente, il backend e il team frontend su convenzioni e processi è ciò che fa la differenza.
- Signals e standalone components hanno ridotto drasticamente il boilerplate rispetto ai classici NgModules, accelerando lo sviluppo dei nuovi moduli.
- Un design system condiviso e documentato riduce i tempi di onboarding dei nuovi sviluppatori da settimane a pochi giorni.
Hai un progetto simile o vuoi una soluzione su misura per la tua azienda?
Parliamone