Skip to main content

Piano evolutivo di Rendicontazione

Obiettivo

Portare il POC corrente a un MVP avanzato, utilizzabile nel lavoro quotidiano con il committente, e successivamente a una Release 1 vendibile, multi-organizzazione, verificabile e manutenibile.

La prima priorità non negoziabile è cambiare il confine di visibilità: i dati di Rendicontazione devono appartenere all'organizzazione, non all'utente che li ha creati. Tutti gli utenti autorizzati della stessa organizzazione lavorano sul medesimo patrimonio dati; utenti di organizzazioni diverse non devono poterlo leggere o modificare.

Principi guida

  1. Tenant isolation prima delle nuove feature: nessun ampliamento funzionale è sicuro finché tutte le entità, query, importazioni, calcoli ed esportazioni non sono scoped per organization_id.
  2. Evoluzione incrementale: migrazioni compatibili, feature flag e rilasci verticali piccoli; nessun big bang.
  3. Monolite modulare prima dello split: separare subito domini e contratti nel codice, estrarre microservizi solo quando carico, ciclo di vita o ownership lo giustificano.
  4. Dati temporalmente corretti: costi, rapporti di lavoro, ruoli, ferie, tariffe e consuntivi devono essere validi per intervalli temporali e riproducibili.
  5. Calcoli spiegabili: ogni forecast o ricalcolo deve avere input, versione algoritmo, trigger, esito, warning e audit trail.
  6. Periodi consegnati immutabili: il cursore del consuntivo e quello di consegna sono distinti.

Percorso di lettura

Traguardi

TraguardoRisultato verificabile
FoundationDati condivisi nella stessa organizzazione e isolati tra organizzazioni
MVP avanzatoAnagrafiche HR, ferie, costi storici, enti finanziatori, import modulari, consuntivo/consegna e forecasting vincolato utilizzabili con il committente
Release 1Prodotto hardenizzato, osservabile, documentato, migrabile e supportabile su più clienti
Documento vivo

Il piano descrive una baseline tecnica derivata dal codice al 30 luglio 2026. La checklist finale va aggiornata durante lo sviluppo; le decisioni aperte vanno chiuse con ADR prima dell'implementazione che ne dipende.