Roadmap POC → MVP avanzato → Release 1
Le durate sono da stimare dopo refinement e sizing del team. L'ordine rappresenta dipendenze e gate, non sprint già impegnati.
Fase 0 — Baseline e tenant foundation
Obiettivo: condivisione sicura per organizzazione.
- Congelare contratti AS-IS, dataset di prova e regression suite.
- Scrivere ADR tenant e matrice ruoli/permessi.
- Implementare
OrganizationContextserver-side usando identità/membership di piattaforma. - Migrare schema, unicità, indici e stato operativo con expand/backfill/enforce.
- Rendere tenant-aware data-service, rendicontazione-service, repository, import, export, job, cache e audit.
- Aggiungere test a due tenant e penetration test IDOR di base.
- Pilotare con due utenti della stessa organizzazione.
Exit gate: tutti i criteri P0 della pagina visibilità per organizzazione superati.
Fase 1 — Fondazioni di dominio e HR
Obiettivo: anagrafiche affidabili su cui basare pianificazione e costi.
- Riorganizzare il service nei moduli
workforce,projects,actuals,forecasting,data-exchange,reportingsenza cambiare deployment. - Introdurre società/sotto-aziende e storico di appartenenza.
- Introdurre catalogo sedi tenant-aware, pagina di gestione e storico sede di assegnazione del dipendente.
- Separare ruolo, macro-livello e job level; migrare valori esistenti.
- Storicizzare reporting line e validare stesso tenant, anti self-reference e anti-ciclo.
- Consolidare storico costo dipendente e intervalli non sovrapposti.
- Collegare opzionalmente dipendente e account utente.
- Aggiungere tipo risorsa e flusso freelancer con ore contrattuali.
- Completare UI Dipendenti con tab profilo, organizzazione/ruolo, sede, reporting, costi e audit.
Exit gate: CRUD, migrazioni, import/export e UI coprono il nuovo modello senza regressioni.
Fase 2 — Ferie e self-service
Obiettivo: disponibilità reale della forza lavoro.
- Definire policy annuali, unità ore/giorni, carry-over e calendari.
- Implementare balance e piano ferie con stati e audit.
- Aggiungere permesso self-service e viste “le mie ferie”.
- Aggiungere viste HR/manager senza privilegi impliciti.
- Integrare ferie pianificate e riserva ferie nel calcolo capacità.
- Testare part-time, assunzione/cessazione infra-annuale e sovrapposizioni.
Exit gate: un dipendente inserisce il piano; HR lo vede; la capacità forecast cambia in modo spiegabile.
Fase 3 — Progetti, enti e tariffe
Obiettivo: valorizzazione economica corretta e temporalmente stabile.
- Completare enti finanziatori e tariffe storiche per macro-livello.
- Rendere esplicita su progetto la strategia
REAL/STANDARD. - Aggiungere
max_hours_per_resourcecon default 1720 e override. - Aggiungere la sede opzionale al progetto e validare la compatibilità città con le sedi storiche delle risorse associate.
- Validare tariffe mancanti/sovrapposte e associazioni cross-tenant.
- Applicare la tariffa valida alla data a forecast, consuntivo ed export.
- Aggiungere schermate/configurazioni e report di qualità dati.
Exit gate: golden test economici riproducono costi reali e standard attraverso cambi tariffa.
Fase 4 — Data exchange estendibile
Obiettivo: aggiungere nuovi formati senza modificare il dominio.
- Definire modelli canonici employee/project/actual/leave.
- Creare interfacce
detect,parse,validate,map,writee registry adapter. - Incapsulare i formati attuali come adapter v1 senza regressioni.
- Implementare i nuovi formati del committente come adapter separati.
- Mantenere staging, diff, approvazione, idempotenza, rollback e report errori.
- Aggiungere contract test per adapter e fixture anonimizzate/versionate.
Exit gate: un formato nuovo viene aggiunto senza cambiare repository o regole di business.
Fase 5 — Consuntivo, consegna e correzioni
Obiettivo: gestione mensile controllata e ricalcolo retroattivo.
- Separare cursore consuntivo e cursore consegna per organizzazione.
- Implementare comando
deliver monthcon snapshot, firma/hash e permesso dedicato. - Bloccare DB/API/UI per periodi consegnati.
- Implementare correzione retroattiva per periodi aperti, dirty range e ricalcolo cronologico.
- Conservare versioni, motivazione, attore e confronto prima/dopo.
- Rigenerare report interessati, evitando la modifica degli snapshot consegnati.
Exit gate: correzione di X aggiorna X..N; la stessa operazione su un mese consegnato fallisce senza scritture parziali.
Fase 6 — Forecasting vincolato (MVP avanzato)
Obiettivo: copertura progetti senza over-allocation.
- Formalizzare priorità, funzione obiettivo e semantica “progetto coperto” col committente.
- Implementare capacità netta, ferie e limite ore.
- Calcolare globalmente per organizzazione, non progetto per progetto in isolamento.
- Integrare tutti i trigger tramite outbox/job idempotenti.
- Mostrare stato, domanda scoperta, over-capacity, motivazioni e confronto versioni.
- Gestire freelancer con ore contrattuali e strategia dedicata.
- Eseguire UAT su scenari reali anonimizzati.
Exit gate MVP avanzato: flusso end-to-end HR → progetto → forecast → consuntivo → correzione → consegna → report validato dal committente.
Fase 7 — Hardening Release 1
Obiettivo: prodotto vendibile e operabile.
- Performance/load test su volumi attesi e ricalcoli concorrenti.
- SLO, dashboard, alert, tracing e runbook per import/forecast/report.
- Backup/restore e disaster recovery testati.
- Security review, dependency scan, audit accessi e retention/privacy.
- Migrazione onboarding per nuova organizzazione e import iniziale verificabile.
- Manuale utente, amministrazione, supporto e changelog.
- Feature flag, rollback applicativo/dati e canary/pilot.
- UAT formale, criteri di go-live e sign-off.
Exit gate Release 1: checklist qualità completa, nessun finding critico, restore provato e prima organizzazione onboarding tramite procedura documentata.
Backlog successivo
- scenari what-if e approvazione del forecast;
- notifiche manager/dipendente;
- API pubbliche/connettori HR;
- workflow ferie avanzato se richiesto;
- ottimizzazione multi-obiettivo configurabile;
- estrazione del forecasting worker se giustificata dalle metriche.