Skip to main content

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.

  1. Congelare contratti AS-IS, dataset di prova e regression suite.
  2. Scrivere ADR tenant e matrice ruoli/permessi.
  3. Implementare OrganizationContext server-side usando identità/membership di piattaforma.
  4. Migrare schema, unicità, indici e stato operativo con expand/backfill/enforce.
  5. Rendere tenant-aware data-service, rendicontazione-service, repository, import, export, job, cache e audit.
  6. Aggiungere test a due tenant e penetration test IDOR di base.
  7. 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.

  1. Riorganizzare il service nei moduli workforce, projects, actuals, forecasting, data-exchange, reporting senza cambiare deployment.
  2. Introdurre società/sotto-aziende e storico di appartenenza.
  3. Introdurre catalogo sedi tenant-aware, pagina di gestione e storico sede di assegnazione del dipendente.
  4. Separare ruolo, macro-livello e job level; migrare valori esistenti.
  5. Storicizzare reporting line e validare stesso tenant, anti self-reference e anti-ciclo.
  6. Consolidare storico costo dipendente e intervalli non sovrapposti.
  7. Collegare opzionalmente dipendente e account utente.
  8. Aggiungere tipo risorsa e flusso freelancer con ore contrattuali.
  9. 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.

  1. Definire policy annuali, unità ore/giorni, carry-over e calendari.
  2. Implementare balance e piano ferie con stati e audit.
  3. Aggiungere permesso self-service e viste “le mie ferie”.
  4. Aggiungere viste HR/manager senza privilegi impliciti.
  5. Integrare ferie pianificate e riserva ferie nel calcolo capacità.
  6. 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.

  1. Completare enti finanziatori e tariffe storiche per macro-livello.
  2. Rendere esplicita su progetto la strategia REAL/STANDARD.
  3. Aggiungere max_hours_per_resource con default 1720 e override.
  4. Aggiungere la sede opzionale al progetto e validare la compatibilità città con le sedi storiche delle risorse associate.
  5. Validare tariffe mancanti/sovrapposte e associazioni cross-tenant.
  6. Applicare la tariffa valida alla data a forecast, consuntivo ed export.
  7. 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.

  1. Definire modelli canonici employee/project/actual/leave.
  2. Creare interfacce detect, parse, validate, map, write e registry adapter.
  3. Incapsulare i formati attuali come adapter v1 senza regressioni.
  4. Implementare i nuovi formati del committente come adapter separati.
  5. Mantenere staging, diff, approvazione, idempotenza, rollback e report errori.
  6. 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.

  1. Separare cursore consuntivo e cursore consegna per organizzazione.
  2. Implementare comando deliver month con snapshot, firma/hash e permesso dedicato.
  3. Bloccare DB/API/UI per periodi consegnati.
  4. Implementare correzione retroattiva per periodi aperti, dirty range e ricalcolo cronologico.
  5. Conservare versioni, motivazione, attore e confronto prima/dopo.
  6. 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.

  1. Formalizzare priorità, funzione obiettivo e semantica “progetto coperto” col committente.
  2. Implementare capacità netta, ferie e limite ore.
  3. Calcolare globalmente per organizzazione, non progetto per progetto in isolamento.
  4. Integrare tutti i trigger tramite outbox/job idempotenti.
  5. Mostrare stato, domanda scoperta, over-capacity, motivazioni e confronto versioni.
  6. Gestire freelancer con ore contrattuali e strategia dedicata.
  7. 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.

  1. Performance/load test su volumi attesi e ricalcoli concorrenti.
  2. SLO, dashboard, alert, tracing e runbook per import/forecast/report.
  3. Backup/restore e disaster recovery testati.
  4. Security review, dependency scan, audit accessi e retention/privacy.
  5. Migrazione onboarding per nuova organizzazione e import iniziale verificabile.
  6. Manuale utente, amministrazione, supporto e changelog.
  7. Feature flag, rollback applicativo/dati e canary/pilot.
  8. 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.