Torna al portfolio
Caso Studio Esercito Italiano / Accenture

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.

5
sistemi sostituiti
-60%
tempo operativo
0
downtime al deploy
v17-19
versioni Angular

1

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
2

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.

Frontend
Angular 17-19, TypeScript, RxJS, Tailwind CSS
Backend
NestJS, Node.js, PostgreSQL
Architecture
Standalone components, Signals, Lazy loading
Deploy
Docker, CI/CD pipeline
3

I risultati

-60%riduzione del tempo necessario per completare le procedure operative principali
1unica interfaccia per 5 moduli funzionali precedentemente separati
0interruzioni di servizio durante le migrazioni Angular 17 a 18 e 18 a 19
+4sviluppatori coordinati nel team frontend con code review strutturate

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.

4

Le fasi del progetto

  1. 1

    Analisi e requisiti

    Fase iniziale

    Workshop 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. 2

    MVP del portale unificato

    Angular 17

    Sviluppo 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. 3

    Rollout dei moduli funzionali

    Angular 17 → 18

    Ciclo 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. 4

    Migrazione ad Angular 19

    Angular 18 → 19

    Upgrade 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. 5

    Stabilizzazione e manutenzione

    In corso

    Dismissione 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