veylant/docs/Veylant_IA_Plan_Agile_Scrum.md
2026-02-23 13:35:04 +01:00

55 KiB
Raw Permalink Blame History

Veylant IA — Plan Agile Scrum Détaillé

Scrum Master Document — Version 1.0 — Février 2026 Confidentiel — Usage interne équipe


Sommaire

  1. Cadre Scrum
  2. Product Backlog — Epics et Stories
  3. Release Plan — Vision 6 mois
  4. Sprints Détaillés
  5. Chemin Critique et Dépendances
  6. Registre des Risques Scrum
  7. Métriques et KPIs Scrum
  8. Actions à Lancer Immédiatement

1. Cadre Scrum

1.1 Équipe Scrum

Rôle Personne Charge Responsabilité
Product Owner PM 50% Backlog, priorisation, stakeholders, clients pilotes
Scrum Master CTO / Lead Backend ~10% Cérémonies, impediments, amélioration continue
Dev Team — Backend Go CTO / Lead Backend 90% Proxy, Router, Adapters, API admin
Dev Team — Backend Python Backend Senior 100% PII service, Logger, Billing, Compliance
Dev Team — Frontend Frontend Senior 100% Dashboard React, Auth flow, UX
Dev Team — DevOps/SRE DevOps 100% Infra, CI/CD, Sécurité, Monitoring

Règle d'or : Le PO est disponible pour des questions bloquantes sous 2h maximum. Tout impediment non résolu en 24h est escaladé en Daily Standup.

1.2 Cérémonies

Cérémonie Fréquence Durée max Participants Livrable
Sprint Planning J1 du sprint 3h Toute l'équipe Sprint Backlog validé + Sprint Goal
Daily Standup Quotidien 9h30 15 min Dev Team Liste d'impediments
Backlog Refinement J6 du sprint 1h30 PO + Dev Team 2 sprints de backlog affinés et estimés
Sprint Review J10 du sprint 1h Toute l'équipe + invités Démo du livrable + feedback
Sprint Retrospective J10 du sprint 1h Toute l'équipe 1-3 actions d'amélioration concrètes
Security Review Toutes les 4 sem. 1h Dev Team Rapport sécurité sprint

Format Daily Standup (timeboxé 15 min) :

  1. Ce que j'ai accompli hier (30s/pers)
  2. Ce que je fais aujourd'hui (30s/pers)
  3. Mes blockers (durée variable — les résoudre APRÈS le standup)

Format Sprint Review :

  1. Rappel du Sprint Goal (2 min)
  2. Démo des stories complétées (30 min) — toujours sur l'environnement staging, jamais en mockup
  3. Stories non complétées + raison (5 min)
  4. Feedback PO / invités (15 min)
  5. Mise à jour du backlog (8 min)

1.3 Definition of Done (DoD)

Une story est Done uniquement si tous ces critères sont remplis :

  • Code reviewé et approuvé par au moins 1 autre développeur
  • Tests unitaires écrits et verts (coverage > cible du module)
  • Tests d'intégration mis à jour si applicable
  • Pipeline CI/CD vert (build, lint, test, sécurité, scan)
  • Critères d'acceptance validés par le PO ou son délégué
  • Documentation technique inline à jour (commentaires, README module)
  • Pas de secret ou credential hardcodé (gitleaks passe)
  • Pas de CVE critique introduit (Trivy passe)
  • Déployé et testé en staging

Une story à 95% n'est pas Done. Partiel = non livré.

1.4 Definition of Ready (DoR)

Une story peut entrer en Sprint Planning uniquement si :

  • User Story rédigée (format : En tant que... je veux... afin de...)
  • Critères d'acceptance explicites et testables
  • Story estimée en Story Points par toute l'équipe
  • Dépendances identifiées (et résolues, ou planifiées dans le même sprint)
  • Aucun blocker connu non adressé
  • Maquettes/specs techniques disponibles si applicable
  • Taille ≤ 8 SP (sinon à décomposer)

1.5 Vélocité et Capacité

Capacité brute par sprint :

  • 4 développeurs × 10 jours ouvrés × 6h de dev effectif = 240 h/sprint
  • Cérémonies : ~5h/pers (planning 3h + daily 2.5h + review 1h + retro 1h = 7.5h → 2 × 3.75h = 7.5h /2 sem) → retrait de ~7h/pers
  • Capacité nette : ~212 h/sprint

Échelle Story Points :

SP Durée estimée Exemple
1 < 2h Modification de config, ajout d'un endpoint trivial
2 ~demi-journée Middleware simple, modèle de données basique
3 ~1 jour Module simple avec tests
5 ~2-3 jours Feature complète avec intégration
8 ~4-5 jours Module complexe ou spike technique
13 > 1 semaine À décomposer obligatoirement

Vélocité cible :

Sprint Vélocité Cible Justification
S1-S2 38-40 SP Ramp-up équipe, setup infra imprévisible
S3-S6 44-48 SP Équipe en rythme, domaine complexe
S7-S10 48-52 SP Vélocité de croisière
S11-S13 38-42 SP Tests E2E, feedback, remédiation

Total projet estimé : ~580 SP


2. Product Backlog — Epics et Stories

Organisation des Epics

E1 — Infrastructure & DevOps       [~70 SP]
E2 — AI Proxy Core                 [~65 SP]
E3 — Authentification & RBAC       [~55 SP]
E4 — Anonymisation PII             [~75 SP]
E5 — Multi-provider IA             [~40 SP]
E6 — Moteur de Routage             [~50 SP]
E7 — Journalisation & Audit        [~55 SP]
E8 — Dashboard & Frontend          [~85 SP]
E9 — Conformité RGPD & AI Act      [~50 SP]
E10 — Sécurité & Hardening         [~55 SP]
E11 — Beta, Tests & Lancement      [~80 SP]
                                   ─────────
TOTAL ESTIMÉ                       ~680 SP

Note : 680 SP estimés pour ~580 SP de capacité → 15% de buffer naturel. Le delta sera géré par priorisation stricte du backlog.

Stories clés par Epic (format ID — Titre — SP)

Epic 1 — Infrastructure & DevOps

E1-01 — Monorepo GitLab + structure dossiers — 2 SP
E1-02 — Pipeline CI/CD (build Go + Python + React + lint + tests) — 8 SP
E1-03 — Docker Compose local complet (Go + PG + CH + Redis + Keycloak) — 5 SP
E1-04 — Cluster K8s staging AWS EKS eu-west-3 — 8 SP
E1-05 — Helm chart déploiement de l'application — 5 SP
E1-06 — Déploiement automatique staging sur merge to main — 3 SP
E1-07 — Prometheus + Grafana staging — 5 SP
E1-08 — OpenTelemetry + Jaeger — 5 SP
E1-09 — Blue/green deployment production — 8 SP
E1-10 — Cluster K8s production (3 AZ, autoscaling, backup) — 8 SP
E1-11 — Alerting production (PagerDuty/Slack) — 5 SP
E1-12 — Runbooks opérationnels (5+) — 5 SP
E1-13 — Terraform/Pulumi infra-as-code — 3 SP (en parallèle S1)

Epic 2 — AI Proxy Core

E2-01 — Scaffolding Go (chi router, middleware chain, graceful shutdown, /healthz) — 3 SP
E2-02 — Gestion de config (Viper, config.yaml, override env vars) — 2 SP
E2-03 — Proxy relay non-streaming (POST /v1/chat/completions → OpenAI) — 5 SP
E2-04 — Proxy relay streaming SSE (flush chunk par chunk, Flusher HTTP) — 8 SP [SPIKE]
E2-05 — Middleware Request ID (UUID v7, propagation headers/logs) — 2 SP
E2-06 — Middleware error handling (erreurs typées JSON format OpenAI) — 3 SP
E2-07 — Middleware rate limiting (par tenant, par user) — 5 SP
E2-08 — Connection pool HTTP (persistant, timeout configurable) — 3 SP
E2-09 — Circuit breaker (N erreurs → désactivation, réactivation auto) — 5 SP
E2-10 — Health check providers IA (ping cyclique, état dans métriques) — 3 SP
E2-11 — Tests unitaires proxy complets (coverage > 80%, go test -race) — 5 SP
E2-12 — Tests de charge proxy (k6, 1000 req/s, p99 < 300ms) — 8 SP

Epic 3 — Authentification & RBAC

E3-01 — Modèle de données : users, tenants, roles, permissions — 3 SP
E3-02 — Setup Keycloak (realm, client OIDC, utilisateurs test) — 5 SP
E3-03 — Middleware Auth JWT (RS256, expiration, issuer, extraction claims) — 5 SP
E3-04 — RBAC middleware (rôles : Admin, Manager, User, Auditor) — 5 SP
E3-05 — Intégration SAML 2.0 Keycloak (federation Azure AD / Okta) — 8 SP
E3-06 — Synchronisation rôles Keycloak → app — 3 SP
E3-07 — API tenant management (CRUD tenants, providers autorisés, API keys chiffrées) — 5 SP
E3-08 — API user management (CRUD users, attribution rôles, dept) — 5 SP
E3-09 — Feature flags système (table PG + cache Redis) — 3 SP
E3-10 — Tests intégration Auth E2E (Keycloak via testcontainers) — 5 SP

Epic 4 — Anonymisation PII

E4-01 — Schemas gRPC PII (PiiRequest, PiiResponse, PiiEntity, proto v1) — 3 SP
E4-02 — Scaffolding service Python (FastAPI, gRPC server, Dockerfile, pytest) — 3 SP
E4-03 — Couche 1 Regex : IBAN FR/EU, email, tél FR/intl, SS, CB (Luhn) — 5 SP
E4-04 — Tests regex (100+ cas positifs/négatifs, precision > 99%) — 3 SP
E4-05 — Couche 2 NER : Presidio + spaCy fr_core_news_lg (PER, LOC, ORG) — 8 SP
E4-06 — Benchmark NER (F1-score > 0.90, corpus français) — 3 SP
E4-07 — Pipeline unifié (regex → NER, déduplication, scoring confiance) — 5 SP
E4-08 — Pseudonymisation (tokens [PII:TYPE:UUID], mapping Redis AES-256-GCM, TTL) — 5 SP
E4-09 — Dé-pseudonymisation (réinjection valeurs dans réponse LLM) — 5 SP
E4-10 — Intégration gRPC Proxy Go ↔ PII Python — 5 SP
E4-11 — Benchmark latence (p99 < 50ms / 500 tokens, < 100ms / 2000 tokens) — 3 SP
E4-12 — Mode zero-retention (mapping mémoire uniquement, pas Redis) — 3 SP
E4-13 — Tests unitaires PII (50+ cas, multilangue, edge cases) — 5 SP
E4-14 — Option regex-only (feature flag, pour requêtes basse sensibilité) — 3 SP

Epic 5 — Multi-provider IA

E5-01 — Interface Adapter Go (Send(), Stream(), Validate(), HealthCheck()) — 3 SP
E5-02 — Adapter OpenAI (format unifié, streaming SSE) — 5 SP
E5-03 — Adapter Anthropic (Messages API, system/user/assistant, streaming) — 5 SP
E5-04 — Adapter Azure OpenAI (endpoint custom, API version, deployment ID) — 5 SP
E5-05 — Adapter Mistral (chat/completions, modèles small/medium/large) — 3 SP
E5-06 — Adapter Ollama / vLLM (OpenAI-compatible, modèles locaux) — 5 SP
E5-07 — Wizard UI configuration provider (3 étapes, test de connexion) — 5 SP
E5-08 — Tests intégration multi-adapter (mock si pas de clé dispo) — 5 SP

Epic 6 — Moteur de Routage

E6-01 — Modèle de données règles (routing_rules : conditions JSONB, action, priority) — 3 SP
E6-02 — Évaluateur de conditions (department, role, sensitivity, use_case, tokens) — 8 SP
E6-03 — Sensitivity scoring (score PII → sensitivity_level pour le routage) — 3 SP
E6-04 — Fallback chain configurable (primaire → secondaire → global) — 5 SP
E6-05 — Cache des règles (mémoire, refresh 30s ou sur event) — 3 SP
E6-06 — API admin politiques (CRUD /v1/admin/policies, validation) — 5 SP
E6-07 — Tests moteur de règles (30+ cas, priorités, conflits, catch-all) — 5 SP
E6-08 — Exemples de règles préconfigurées (RH, Finance, Engineering) — 3 SP

Epic 7 — Journalisation & Audit

E7-01 — Schéma ClickHouse (audit_logs, 20 champs, partitionnement mensuel, TTL) — 5 SP
E7-02 — Module Logger Go (collecte async, batch insert 1s/100 logs) — 8 SP
E7-03 — Hash SHA-256 prompt/réponse (pas de contenu brut dans les logs) — 2 SP
E7-04 — Chiffrement applicatif champ prompt_anonymized (AES-256-GCM) — 5 SP
E7-05 — Module Billing (comptage tokens tiktoken, agrégation user/dept/model) — 5 SP
E7-06 — API consultation logs (GET /v1/admin/logs, filtres, pagination, < 2s) — 5 SP
E7-07 — API coûts (GET /v1/admin/costs, agrégation période/model/dept) — 3 SP
E7-08 — API alertes budget (seuils configurables par tenant, notification) — 5 SP
E7-09 — Audit de l'audit (log des accès admin_audit_logs) — 3 SP
E7-10 — Export CSV logs filtrés — 3 SP
E7-11 — Tests Logger (1000 req/s sans perte, insert async non bloquant) — 5 SP

Epic 8 — Dashboard & Frontend

E8-01 — Setup React + TypeScript + Vite + TailwindCSS + shadcn/ui — 3 SP
E8-02 — Auth flow frontend (OIDC PKCE, refresh token, logout, redirect) — 5 SP
E8-03 — Layout général (sidebar, header tenant, responsive 1280px) — 3 SP
E8-04 — Route guards (admin/auditor/user permissions, pages protégées) — 3 SP
E8-05 — Page Overview (KPI cards : requêtes, PII, coût, modèle top) — 5 SP
E8-06 — Graphique volume requêtes (recharts line, 7j/30j, breakdown) — 5 SP
E8-07 — Page Politiques (liste règles, CRUD, activation/désactivation) — 8 SP
E8-08 — Page Utilisateurs (liste, attribution rôles, filtrage dept) — 5 SP
E8-09 — Page Sécurité RSSI (PII par type, requêtes bloquées, top users PII) — 8 SP
E8-10 — Page Coûts (breakdown modèle/dept, projection mensuelle, alerte) — 5 SP
E8-11 — Playground PII (highlight temps réel, choix modèle, envoi, réponse) — 8 SP [killer feature]
E8-12 — Page Logs Audit Trail (tableau paginé, filtres combinés, expand) — 8 SP
E8-13 — Alertes in-app (seuils configurables, notification dashboard) — 5 SP
E8-14 — Page Conformité (registre, classification AI Act, génération rapports) — 8 SP
E8-15 — Landing page + démo interactive — 5 SP

Epic 9 — Conformité RGPD & AI Act

E9-01 — Modèle données registre traitements (processing_registry) — 3 SP
E9-02 — Classification risque AI Act (enum + questionnaire guidé) — 5 SP
E9-03 — Génération rapport PDF Article 30 RGPD (go-pdf / WeasyPrint) — 8 SP
E9-04 — Génération rapport AI Act (fiche par système IA) — 5 SP
E9-05 — API droit d'accès Art. 15 (export données user_id) — 3 SP
E9-06 — API droit d'effacement Art. 17 (purge logs + mappings PII) — 5 SP
E9-07 — Template DPIA pré-rempli — 5 SP
E9-08 — Génération rapport incident (template avec chronologie) — 3 SP
E9-09 — Documentation DPA fournisseurs IA (OpenAI, Anthropic, etc.) — 3 SP

Epic 10 — Sécurité & Hardening

E10-01 — mTLS entre composants internes (cert-manager, Istio/Linkerd) — 8 SP
E10-02 — Network policies K8s (deny-all, whitelist explicite) — 5 SP
E10-03 — Intégration HashiCorp Vault (API keys, credentials, clés chiffrement) — 8 SP
E10-04 — SAST Semgrep en CI (Go + Python + React, bloque si critical) — 3 SP
E10-05 — Scan images Trivy en CI (bloque si CVE critique) — 2 SP
E10-06 — DAST OWASP ZAP automatisé sur staging — 5 SP
E10-07 — gitleaks en CI (détection secrets) — 2 SP
E10-08 — Rotation automatique API keys (90 jours, alertes) — 5 SP
E10-09 — Rate limiting par tenant/user (Kong ou middleware Go) — 5 SP
E10-10 — Tests de charge k6 (1000 req/s, 10 min, p99 < 300ms) — 8 SP

Epic 11 — Beta, Tests & Lancement

E11-01 — Tests E2E automatisés (20+ scénarios complets, < 10 min CI) — 13 SP [décomposer]
E11-02 — Documentation API OpenAPI 3.1 (swaggo, /docs, exemples) — 5 SP
E11-03 — Guide d'intégration dev (intégration en < 30 min) — 3 SP
E11-04 — Onboarding client pilote #1 (tenant, SSO, users, providers) — 5 SP
E11-05 — Onboarding client pilote #2 — 5 SP
E11-06 — Guide utilisateur admin (PDF/web, captures) — 5 SP
E11-07 — Feature flags par module (PII, routing, billing) — 3 SP
E11-08 — Collecte et tri feedback pilotes — 3 SP
E11-09 — Bug fixes critiques post-pilote — 8 SP [buffer]
E11-10 — Améliorations UX top-5 — 5 SP
E11-11 — Pentest externe grey box (périmètre + accès + suivi) — 5 SP [coordination]
E11-12 — Remédiation pentest Critical + High — 8 SP [buffer]
E11-13 — Migration clients pilotes vers production — 5 SP
E11-14 — Matériel commercial (one-pager, deck 10 slides, battle card) — 5 SP

3. Release Plan — Vision 6 mois

Jalons clés

S1  (01/03) ──► Bootstrapping : dev env + squelette
S4  (29/03) ──► MILESTONE 1 : Proxy + PII + Auth ← Démo interne/prospects
S8  (28/04) ──► MILESTONE 2 : Dashboard + Playground ← Démo externe complète
S10 (10/05) ──► MILESTONE 3 : Conformité + Sécurité ← Prêt pour audit
S11 (24/05) ──► MILESTONE 4 : Beta privée — 2 clients pilotes connectés
S12 (07/06) ──► MILESTONE 5 : Pentest démarré + feedback intégré
S13 (21/06) ──► MILESTONE 6 : Lancement Production ← Go/No-Go

Burn-up cumulatif cible

Sprint SP livrés cumul % du backlog MVP
S1 38 7%
S2 78 14%
S3 124 22%
S4 170 30%
S5 218 38%
S6 265 47%
S7 315 56%
S8 365 65%
S9 410 73%
S10 458 82%
S11 498 89%
S12 533 95%
S13 563 100%

4. Sprints Détaillés


PHASE 1 — Fondations (S1S4)

Objectif de Phase : Un proxy fonctionnel, authentifié, qui anonymise les PII et supporte 4 fournisseurs IA. Démontrable via curl. Quality Gate : démo live < 300ms total.


Sprint 1 — Bootstrapping (Semaines 12)

Sprint Goal : "L'ensemble de l'équipe peut développer, tester et déployer de façon autonome. Le squelette applicatif compile et se déploie en staging en moins de 5 minutes."

Capacité : 38 SP (ramp-up, setup réseau/AWS imprévisible)

ID Story Assigné SP Priorité
E1-01 Monorepo GitLab + structure /cmd, /internal, /services/pii, /web, /deploy, /proto, /docs DevOps 2 BLOQUANT
E1-02 Pipeline CI/CD : build Go + Python + React, lint (golangci-lint, black, eslint), tests unitaires, scan Trivy, gitleaks DevOps 8 BLOQUANT
E1-03 Docker Compose local : Go app + PostgreSQL 16 + ClickHouse + Redis 7 + Keycloak. docker-compose up < 60s DevOps 5 BLOQUANT
E1-04 Cluster K8s staging AWS EKS eu-west-3, 3 nodes, ingress Traefik, HTTPS DevOps 8 BLOQUANT
E2-01 Scaffolding Go : main.go, chi router, middleware chain vide, graceful shutdown (SIGTERM), /healthz retourne 200 Lead Backend 3 BLOQUANT
E2-02 Gestion config Viper : config.yaml + override env vars. Pas de valeur hardcodée Lead Backend 2 IMPORTANT
E3-01 Modèle de données PG v1 : tables tenants, users, api_keys + migrations golang-migrate Backend Sr 3 IMPORTANT
E3-02 Setup Keycloak : realm, client OIDC, utilisateur test, retourne JWT valide DevOps 5 IMPORTANT
E4-01 Schemas gRPC : PiiRequest, PiiResponse, PiiEntity → stubs Go + Python générés Lead + Backend Sr 2 IMPORTANT
Spike Investigation Terraform vs Pulumi pour infra-as-code (timebox 4h, sortie : ADR) DevOps IMPORTANT

Total : 38 SP

Critères d'acceptance sprint :

  • docker-compose up démarre tout en < 60s, healthchecks OK
  • kubectl get nodes → 3 nodes Ready sur EKS eu-west-3
  • Pipeline CI vert sur commit vide, build < 8 min
  • GET /healthz → 200. Graceful shutdown fonctionne en staging

Démo Sprint Review :

Montrer : docker-compose up → tous les services green → curl /healthz → 200. Déclencher un commit → montrer le pipeline CI vert en < 8 min → voir le déploiement automatique en staging.

Risques S1 :

  • Setup EKS + VPC + IAM peut prendre 3+ jours → Mitigation : utiliser le module Terraform terraform-aws-eks version stable. Si bloqué > 2 jours → passer en EKS via eksctl pour débloquer, IaC en parallèle.
  • Incompatibilités version ClickHouse/Keycloak en Docker Compose → Mitigation : épingler les versions (SHA256 des images).

Sprint 2 — Proxy Core + Auth JWT (Semaines 34)

Sprint Goal : "Un développeur peut envoyer un prompt via le proxy Veylant IA et recevoir la réponse d'OpenAI, avec streaming temps réel et authentification JWT. Démontrable avec curl."

Capacité : 40 SP

ID Story Assigné SP Priorité
E2-03 Proxy relay non-streaming : POST /v1/chat/completions → OpenAI → réponse. Même résultat qu'un appel direct. Lead Backend 5 BLOQUANT
E2-04 Proxy relay streaming SSE : stream:true, flush chunk par chunk, pas de buffering. curl --no-buffer reçoit les chunks en temps réel. Lead Backend 8 BLOQUANT
E3-03 Middleware Auth JWT : RS256, expiration, issuer Keycloak. Sans JWT → 401. JWT expiré → 401. JWT valide → forward + contexte injecté (user_id, tenant_id, roles). Backend Sr 5 BLOQUANT
E2-05 Middleware Request ID : UUID v7 par requête, propagation headers (X-Request-Id) et logs Lead Backend 2 IMPORTANT
E2-06 Middleware error handling : erreurs typées JSON format OpenAI (type, message, code) Lead Backend 3 IMPORTANT
E2-08 Connection pool HTTP : connexions persistantes vers providers, timeout configurable Lead Backend 3 IMPORTANT
E2-11 Tests unitaires proxy : 15+ tests, cas nominaux/erreurs OpenAI/timeouts/headers. Coverage > 80%. go test -race passe. Lead Backend 5 IMPORTANT
E3-10 Tests intégration Auth : E2E avec Keycloak via testcontainers (obtenir token → appeler proxy → succès) Backend Sr 3 IMPORTANT
E1-06 Déploiement auto staging : merge to main → Helm upgrade auto. Rollback en 1 commande. DevOps 3 IMPORTANT
E1-07 Métriques Prometheus basiques : request_count, request_duration_seconds, request_errors_total visibles dans Grafana DevOps 3 SOUHAITABLE

Total : 40 SP

Critères d'acceptance sprint :

  • curl -H "Authorization: Bearer <JWT>" -X POST /v1/chat/completions -d '{"model":"gpt-4o","messages":[...]}' → réponse identique à OpenAI direct
  • curl --no-buffer ... stream:true → chunks reçus en temps réel (latence perçue identique à OpenAI direct)
  • Requête sans JWT → 401 en < 10ms

Démo Sprint Review :

Montrer en live : (1) Appel direct à OpenAI avec streaming. (2) Même appel via le proxy → même résultat, même latence perçue. (3) Appel sans JWT → 401. (4) Métriques Grafana montrant le request count.

Risques S2 :

  • Le streaming SSE est le point technique le plus délicat du projet. En Go, le http.Flusher doit être appelé après chaque chunk. Si OpenAI change son format SSE → l'adapter est localisé dans E5-02. Prévoir 3-4 jours de debug. Si bloqué → implémenter le mode non-streaming parfait d'abord, streaming en S3 avec 1 SP de retard accepté.

Sprint 3 — Pipeline PII v1 (Semaines 56)

Sprint Goal : "Le proxy anonymise automatiquement les données personnelles avant tout envoi à un LLM externe. Le token IBAN d'un prompt n'atteint jamais OpenAI. Démontrable via les logs."

Capacité : 44 SP (équipe en rythme)

ID Story Assigné SP Priorité
E4-02 Scaffolding service PII Python : FastAPI, gRPC server, Dockerfile, pytest setup. Healthcheck gRPC répond. Backend Sr 3 BLOQUANT
E4-03 Couche 1 Regex : IBAN FR/EU, email, tél FR/intl, n° SS, CB (validation Luhn). Jeu de 100+ tests. Precision > 99%, Recall > 95%. Backend Sr 5 BLOQUANT
E4-05 Couche 2 NER : Presidio + spaCy fr_core_news_lg. Détection PER, LOC, ORG. F1-score > 0.90 sur corpus français. Backend Sr 8 BLOQUANT
E4-07 Pipeline unifié : orchestration regex → NER, déduplication, scoring confiance. 5 types de PII détectés dans un prompt. Latence < 50ms / 500 tokens. Backend Sr 5 BLOQUANT
E4-08 Pseudonymisation : remplacement par [PII:TYPE:UUID], mapping Redis AES-256-GCM, TTL configurable. Prompt envoyé au LLM sans PII en clair. Backend Sr 5 BLOQUANT
E4-09 Dé-pseudonymisation : réinjection valeurs originales dans réponse LLM avant renvoi à l'user Backend Sr 5 BLOQUANT
E4-10 Intégration gRPC Proxy ↔ PII : proxy Go appelle service Python via gRPC avant chaque forward. Flux complet fonctionne bout en bout. Lead Backend 5 BLOQUANT
E4-11 Benchmark latence : mesure p50/p95/p99 sur 1000 requêtes variées. p99 < 50ms / 500 tokens, < 100ms / 2000 tokens. Backend Sr 3 IMPORTANT
E4-13 Tests unitaires PII : 50+ cas, multilangue, edge cases (texte mixte FR/EN, données dans URL, dans JSON). Coverage > 85%. Backend Sr 5 IMPORTANT

Total : 44 SP

⚠️ Sprint le plus risqué techniquement du projet.

Critères d'acceptance sprint :

  • Envoyer un prompt contenant [IBAN, email, nom, téléphone, adresse] → les 5 types sont pseudonymisés
  • Le prompt reçu par OpenAI (visible dans les logs) ne contient aucune donnée en clair
  • La réponse renvoyée à l'utilisateur contient les vraies valeurs (dé-pseudonymisées)
  • p99 < 50ms mesuré avec le script benchmark sur 1000 requêtes

Démo Sprint Review :

Ouvrir le playground (mode minimal). Taper : "Bonjour, je suis Jean Dupont, mon IBAN est FR76 3000 6000 0112 3456 7890 189, contactez-moi au 06 12 34 56 78." → Montrer dans les logs : (1) prompt original côté proxy, (2) prompt pseudonymisé envoyé à OpenAI, (3) réponse dé-pseudonymisée côté utilisateur.

Risques S3 :

  • Latence NER > 100ms → Actions immédiates : (a) vérifier que fr_core_news_lg est préchargé en mémoire au démarrage (pas de cold start), (b) activer le mode regex-only via feature flag pour les requêtes basse sensibilité (E4-14 en S4).
  • Faux positifs élevés → Ajuster le seuil de confiance Presidio (0.85 par défaut, testable dès 0.75). Whitelist configurable par tenant.

Decision Point post-S3 : Si le p99 NER > 80ms, décision explicite du PO : (a) reporter NER en V1.1 → MVP en regex-only, (b) allouer 1 sprint de spike optimisation, (c) accepter la latence avec UX appropriée. Cette décision ne peut pas être repoussée au-delà de S4.


Sprint 4 — Multi-provider + RBAC (Semaines 78)

Sprint Goal : "Veylant IA route les requêtes vers 4 fournisseurs IA selon le rôle et le département de l'utilisateur. Un admin voit tout, un User ne peut accéder qu'à son modèle autorisé."

Capacité : 46 SP

ID Story Assigné SP Priorité
E5-01 Interface Adapter Go : trait/interface avec Send(), Stream(), Validate(), HealthCheck(). Tests génériques passent pour tous les adapters. Lead Backend 3 BLOQUANT
E5-02 Adapter OpenAI : normalisation format requête/réponse, streaming SSE (déjà testé en S2, ici normalisation du schema interne) Lead Backend 3 BLOQUANT
E5-03 Adapter Anthropic : Messages API, system/user/assistant, streaming. Même test qu'OpenAI. Lead Backend 5 BLOQUANT
E5-04 Adapter Azure OpenAI : endpoint custom, API version, deployment ID Lead Backend 5 IMPORTANT
E5-06 Adapter Ollama/vLLM : API OpenAI-compatible, test avec Llama 3 local Lead Backend 5 IMPORTANT
E5-05 Adapter Mistral : chat/completions, mistral-small Lead Backend 3 SOUHAITABLE
E3-04 RBAC middleware : rôles Admin/Manager/User/Auditor. User sans permission → 403. Admin → accès total. Auditor → read-only. Backend Sr 5 BLOQUANT
E3-05 Intégration SAML 2.0 Keycloak : federation Azure AD test. User ajouté dans groupe Keycloak → rôle dans l'app. DevOps 8 IMPORTANT
E3-07 API tenant management : CRUD tenants. API keys stockées chiffrées (pas en clair en DB). Backend Sr 5 IMPORTANT
E5-08 Tests intégration multi-adapter : test automatisé même requête → chaque adapter, validation réponse. CI green pour OpenAI + Anthropic. Lead Backend 5 IMPORTANT

Total : 47 SP → accepté (vélocité légèrement au-dessus de la cible grâce au rythme S3)

QUALITY GATE PHASE 1 — à valider en fin de S4 :

Démo live sans mockup : (1) envoyer un prompt avec 3 PII via curl, (2) montrer l'anonymisation, (3) le routage vers OpenAI vs Anthropic selon le rôle de l'utilisateur, (4) la réponse dé-pseudonymisée. Latence totale < 300ms. Proxy + PII + Auth + RBAC + Multi-provider fonctionnent ensemble.


PHASE 2 — Intelligence et Visibilité (S5S8)

Objectif de Phase : Le produit est démontrable avec une UI complète. Routage intelligent, logs, dashboard, playground. Quality Gate : démo complète sans mockup, données réelles.


Sprint 5 — Moteur de Routage (Semaines 910)

Sprint Goal : "Les requêtes sont routées automatiquement selon des politiques configurées par l'admin. Un prompt contenant des données critiques va systématiquement vers le modèle on-prem sans intervention humaine."

Capacité : 46 SP

ID Story Assigné SP Priorité
E6-01 Modèle de données politiques : table routing_rules (conditions JSONB, action, priority, tenant_id, enabled). Migration. CRUD interne. Backend Sr 3 BLOQUANT
E6-02 Moteur de règles : évaluation par priorité décroissante, conditions (user.department, user.role, request.sensitivity, request.use_case, request.token_estimate), catch-all. 10 règles évaluées < 1ms. Lead Backend 8 BLOQUANT
E6-03 Sensitivity scoring → routage : le score PII (niveau none/low/medium/high/critical) alimente le moteur de règles. Prompt critique → route vers modèle local. Lead Backend 3 BLOQUANT
E6-04 Fallback chain : si provider primaire fail → secondaire → global. Log de fallback généré. Test : mock provider en 500 → vérifier basculement. Lead Backend 5 IMPORTANT
E6-05 Cache des règles : cache mémoire, refresh 30s ou sur invalidation event. Modification visible < 30s sans restart. Lead Backend 3 IMPORTANT
E6-06 API admin politiques : CRUD /v1/admin/policies. Validation des conditions (pas d'opérateur invalide). Backend Sr 5 IMPORTANT
E4-14 Mode regex-only : feature flag par tenant pour désactiver NER sur requêtes basse sensibilité. Backend Sr 3 IMPORTANT
E6-07 Tests moteur de règles : 30+ tests (combinaisons conditions, priorités, conflits, départements). 100% des cas documentés testés. Lead Backend 5 IMPORTANT
E6-08 Règles préconfigurées : templates RH, Finance, Engineering, catch-all. Activables en 1 clic. Backend Sr 3 SOUHAITABLE
E3-09 Feature flags système : table PG + cache Redis. Toggle via API admin, effet immédiat. Backend Sr 3 SOUHAITABLE

Total : 41 SP (sprint focus technique, volume réduit intentionnellement)


Sprint 6 — Journalisation + Billing (Semaines 1112)

Sprint Goal : "Chaque requête passant par Veylant IA est immortalisée dans un log immuable avec 20 champs, chiffré, sans contenu personnel en clair. Le coût de chaque département est comptabilisé en temps réel."

Capacité : 48 SP

ID Story Assigné SP Priorité
E7-01 Schéma ClickHouse : table audit_logs (20 champs du PRD), partitionnement mensuel, TTL 90j hot. SELECT GROUP BY sur 100k lignes < 500ms. Backend Sr 5 BLOQUANT
E7-02 Module Logger Go : collecte async des métadonnées, batch insert ClickHouse (toutes les 1s ou 100 logs). Aucun log perdu sous 1000 req/s. Backend Sr 8 BLOQUANT
E7-03 Hash SHA-256 : prompt et réponse hashés. Les logs ne contiennent aucun contenu en clair. Hash vérifiable. Backend Sr 2 BLOQUANT
E7-04 Chiffrement applicatif : prompt_anonymized chiffré AES-256-GCM, clé par tenant. Illisible en DB sans la clé. Backend Sr 5 IMPORTANT
E7-05 Module Billing : tiktoken pour OpenAI, approximation token pour les autres. Agrégation user/dept/model. Comptage ±5% du comptage officiel. Backend Sr 5 IMPORTANT
E7-06 API consultation logs : GET /v1/admin/logs filtres (date, user, model, status, sensitivity_level), pagination. Requête filtrée < 2s sur 1M logs. Backend Sr 5 IMPORTANT
E7-07 API coûts : GET /v1/admin/costs agrégation par période/model/dept Backend Sr 3 IMPORTANT
E7-09 Audit de l'audit : table admin_audit_logs. Toute action admin (modif politique, accès log, modif RBAC) tracée avec timestamp, user, before/after. Backend Sr 3 IMPORTANT
E7-11 Tests Logger : test sous 1000 req/s sans perte. Insert async non bloquant pour le proxy. Backend Sr 5 IMPORTANT
E1-08 OpenTelemetry + Jaeger : tracing distribué, chaque requête tracée de bout en bout (proxy → PII → LLM) DevOps 5 SOUHAITABLE

Total : 46 SP


Sprint 7 — Dashboard Frontend v1 (Semaines 1314)

Sprint Goal : "Un RSSI peut se connecter au dashboard Veylant IA, visualiser le volume des requêtes, gérer les politiques de routage, et voir qui a accès à quoi. Aucun mockup — données réelles de staging."

Capacité : 50 SP

ID Story Assigné SP Priorité
E8-01 Setup React + TypeScript + Vite + TailwindCSS + shadcn/ui. Structure pages, react-router. Build < 30s. Zéro erreur TypeScript. Frontend 3 BLOQUANT
E8-02 Auth flow frontend : login OIDC PKCE via Keycloak, refresh automatique, logout, redirect. Session active après login. Frontend 5 BLOQUANT
E8-03 Layout général : sidebar navigation, header (tenant name, user, logout), responsive 1280px. Navigation fluide. Frontend 3 BLOQUANT
E8-04 Route guards : pages admin inaccessibles au rôle User. Auditor = read-only partout. Frontend 3 BLOQUANT
E8-05 Page Overview : 4 KPI cards (requêtes 24h/7j, PII détectées, coût total, modèle top). Données réelles. Refresh 30s. Frontend 5 BLOQUANT
E8-06 Graphique volume requêtes : recharts line chart, changement période 7j/30j, breakdown par modèle ou dept. Tooltip interactif. Frontend 5 IMPORTANT
E8-07 Page Politiques : liste des règles (priorité, condition, action, statut), création/édition formulaire, activation/désactivation toggle. CRUD complet. Frontend 8 IMPORTANT
E8-08 Page Utilisateurs : liste users (nom, rôle, dept, last_seen), attribution rôles par admin, filtrage. Changement rôle effectif immédiatement. Frontend 5 IMPORTANT
E5-07 Wizard configuration provider : formulaire 3 étapes (type, credentials, test connexion). Test de connexion intégré. Frontend 5 IMPORTANT
E7-08 API alertes budget : seuils configurables par tenant (tokens/h, coût/j, erreurs/h). Notification in-app si dépassement. Backend Sr + Frontend 5 SOUHAITABLE

Total : 47 SP


Sprint 8 — Dashboard Sécurité + Playground (Semaines 1516)

Sprint Goal : "Le RSSI a sa vue sécurité complète. Un prospect peut taper un texte dans le playground et voir en temps réel ses données personnelles surlignées avant qu'elles n'atteignent l'IA. C'est la démo qui signe les contrats."

Capacité : 50 SP

ID Story Assigné SP Priorité
E8-09 Page Sécurité RSSI : PII par type (bar chart), requêtes bloquées (timeline), top users PII, incidents détectés. Filtrage par période. Export CSV. Frontend 8 BLOQUANT
E8-10 Page Coûts : pie chart par modèle, breakdown par dept, tendance mensuelle, projection fin de mois, alerte si > 80% budget. Frontend 5 BLOQUANT
E8-11 🎯 Playground PII : zone de texte, highlight coloré temps réel (IBAN = rouge, nom = orange, etc.), choix modèle, bouton envoyer, affichage prompt anonymisé + réponse dé-pseudonymisée. Frontend + Lead Backend 8 BLOQUANT
E8-12 Page Logs Audit Trail : tableau paginé (50 logs/page), filtres combinés (date, user, model, status, sensitivity), expand pour détail. Pagination fluide sur 100k+ logs. Frontend 8 IMPORTANT
E8-13 Alertes in-app : configuration seuils par admin, notification dans le header (badge), détail dans la page alertes. Frontend + Backend Sr 5 IMPORTANT
E2-09 Circuit breaker : désactivation auto après 5 erreurs consécutives, réactivation après 60s. Visible dans le dashboard (statut provider). Lead Backend 5 IMPORTANT
E2-10 Health check providers : ping cyclique, statut visible dans le wizard provider et dans une page statut. Lead Backend 3 SOUHAITABLE
E3-08 API user management : CRUD complet /v1/admin/users. Backend Sr 5 SOUHAITABLE

Total : 47 SP

QUALITY GATE PHASE 2 — à valider en fin de S8 :

Démo complète en live (25 min max) : login → overview avec données réelles → playground (taper IBAN + nom → highlight → envoi → réponse) → page sécurité → logs → politiques (créer une règle RH). Zéro mockup, zéro données synthétiques.


PHASE 3 — Conformité et Hardening (S9S10)

Objectif de Phase : Rapports RGPD et AI Act générables en 1 clic. Toutes les communications internes chiffrées. Aucun secret en clair. Prêt pour audit externe.


Sprint 9 — Module Conformité (Semaines 1718)

Sprint Goal : "Un DPO peut générer le registre Article 30 RGPD de l'entreprise en PDF depuis Veylant IA, et consulter la classification AI Act de chaque cas d'usage IA. C'est ce qui déclenche la décision d'achat chez les clients réglementés."

Capacité : 48 SP

ID Story Assigné SP Priorité
E9-01 Modèle données registre traitements : table processing_registry (finalité, base légale, destinataires, durée, mesures sécurité, tenant_id). CRUD. Backend Sr 3 BLOQUANT
E9-02 Classification risque AI Act : enum (forbidden/high_risk/limited_risk/minimal_risk) par cas d'usage, questionnaire guidé 5 questions. Stockée et exportable. Backend Sr 5 BLOQUANT
E9-03 Génération PDF Article 30 RGPD : tous les champs obligatoires, daté, signé, exportable. GET /v1/admin/compliance/report?format=pdf → PDF valide. Backend Sr 8 BLOQUANT
E9-04 Rapport AI Act : fiche par système IA (modèle, classification, mesures, stats usage 30j). Export PDF. Backend Sr 5 IMPORTANT
E9-05 API Art. 15 (accès) : GET /v1/admin/gdpr/access/{user_id} → JSON avec tous les logs du user (anonymisés). Backend Sr 3 IMPORTANT
E9-06 API Art. 17 (effacement) : DELETE /v1/admin/gdpr/erase/{user_id} → purge logs + mappings PII + log de la suppression. Backend Sr 5 IMPORTANT
E8-14 Page Conformité frontend : registre des traitements (formulaire saisie), classification AI Act (questionnaire), boutons génération rapport. Téléchargement PDF en 1 clic. Frontend 8 IMPORTANT
E9-07 Template DPIA : template pré-rempli pour cas d'usage haut risque AI Act. Exportable Word/PDF. Backend Sr 5 SOUHAITABLE
E7-10 Export CSV logs : export filtré par date/dept/model. Téléchargement < 5s pour 30j de logs. Backend Sr 3 SOUHAITABLE

Total : 45 SP


Sprint 10 — Hardening Sécurité (Semaines 1920)

Sprint Goal : "Veylant IA résiste à un audit de sécurité. Aucun secret n'est accessible en clair. Toutes les communications internes sont chiffrées. Le pipeline SAST/DAST ne remonte aucun finding critique."

Capacité : 48 SP

ID Story Assigné SP Priorité
E10-01 mTLS interne : cert-manager + Istio/Linkerd. Proxy ↔ PII, proxy ↔ DB, proxy ↔ ClickHouse. Wireshark → trafic chiffré uniquement. DevOps 8 BLOQUANT
E10-02 Network policies K8s : deny-all par défaut, whitelist explicite par service. curl depuis un pod aléatoire → échec. DevOps 5 BLOQUANT
E10-03 HashiCorp Vault : API keys LLM, credentials DB, clés chiffrement. Accès via service account K8s. Zéro secret en env var ou ConfigMap. DevOps 8 BLOQUANT
E10-04 Semgrep SAST : rulesets Go + Python + React en CI. Bloque merge si finding critical. Zéro finding critical sur code actuel. DevOps 3 IMPORTANT
E10-05 Trivy scan images : bases images pinned (sha256). Bloque CI si CVE critique. DevOps 2 IMPORTANT
E10-06 OWASP ZAP DAST : scan automatisé sur staging à chaque déploiement. Rapport sans finding critique. DevOps 5 IMPORTANT
E10-07 gitleaks en CI : détection secrets dans les commits. DevOps 2 IMPORTANT
E10-09 Rate limiting : par tenant et par user. 429 si dépassement. Configurable par tenant via API admin. Lead Backend 5 IMPORTANT
E10-10 Tests de charge k6 : 1000 req/s pendant 10 min. p99 < 300ms. Zéro OOM, zéro goroutine leak, connexions DB stables. DevOps + Lead Backend 8 IMPORTANT
E4-12 Mode zero-retention : mapping PII en mémoire uniquement, TTL = durée de la requête. Feature flag par tenant. Backend Sr 3 SOUHAITABLE

Total : 49 SP

QUALITY GATE PHASE 3 — à valider en fin de S10 :

(1) Zéro finding SAST/DAST critique. (2) mTLS actif et vérifié. (3) Vault intégré, zéro secret en clair. (4) Rapport RGPD PDF générable en 1 clic. (5) Test de charge passé (rapport k6 validé). Si un seul item manque : PAS de passage en Phase 4 sans décision explicite du PO + CTO.


PHASE 4 — Beta, Polish et Lancement (S11S13)

Objectif de Phase : 2 clients pilotes connectés, pentest passé, lancement production. Quality Gate : checklist Go/No-Go complète à 100%.


Sprint 11 — Tests E2E + Beta Privée (Semaines 2122)

Sprint Goal : "Deux clients pilotes utilisent Veylant IA en production staging. Les tests E2E automatisés couvrent tous les parcours critiques et s'exécutent en CI en moins de 10 minutes."

Capacité : 45 SP

ID Story Assigné SP Priorité
E11-01a Tests E2E batch 1 (10 scénarios) : login → config provider → envoi prompt avec PII → vérif anonymisation → vérif log → déconnexion Tous 8 BLOQUANT
E11-01b Tests E2E batch 2 (10 scénarios) : routage selon politique → fallback → dashboard données → génération rapport PDF → effacement RGPD Tous 8 BLOQUANT
E11-02 Documentation API OpenAPI 3.1 : swaggo auto-généré. /docs accessible. Tous endpoints documentés avec exemples de requêtes/réponses. Lead Backend 5 BLOQUANT
E11-03 Guide d'intégration : comment changer l'URL de base d'une app existante vers Veylant IA. Suivi par un dev externe en < 30 min. Lead Backend 3 BLOQUANT
E11-04 Onboarding client pilote #1 : création tenant, configuration SSO (SAML/OIDC avec leur AD), import users, setup providers. Opérationnel < 1 journée. PM + DevOps 5 BLOQUANT
E11-05 Onboarding client pilote #2 PM + DevOps 5 IMPORTANT
E11-06 Guide utilisateur admin : documentation des fonctionnalités dashboard, relu par un non-technique, captures à jour. PM 5 IMPORTANT
E11-07 Feature flags par module : toggle PII on/off, routing on/off, billing on/off par tenant. Via API admin. Effet immédiat. Lead Backend 3 IMPORTANT

Total : 42 SP

⚠️ Action préalable (à lancer en S7 au plus tard) : Contacter le cabinet pentest, rédiger le cahier des charges, signer le bon de commande. Le pentest doit être planifié pour démarrer en S12.


Sprint 12 — Feedback Pilotes + Pentest (Semaines 2324)

Sprint Goal : "Les bugs critiques remontés par les clients pilotes sont corrigés. Le pentest est en cours. Veylant IA est stable, performant, et les clients pilotes sont satisfaits (NPS > 7)."

Capacité : 40 SP (pentest prend du temps de coordination)

ID Story Assigné SP Priorité
E11-08 Collecte et tri feedback : sessions avec clients pilotes, backlog priorisé (bug / UX / feature), classement MoSCoW PM 3 BLOQUANT
E11-09 Bug fixes critiques (buffer) : selon feedback pilotes. Zéro bug bloquant restant. Tous 8 BLOQUANT
E11-10 Améliorations UX top-5 : les 5 points UX les plus remontés. Chacun validé par le pilote concerné. Frontend 5 IMPORTANT
E11-11 Pentest coordination : fourniture des accès (staging grey box), périmètre validé, suivi cabinet. PM + DevOps 3 BLOQUANT
E2-12 Tests de charge proxy : analyse des bottlenecks identifiés en production beta. p99 amélioré si problème. Lead Backend 5 IMPORTANT
E1-09 Blue/green deployment : déploiement sans downtime testé. Rollback < 30s démontré. DevOps 8 IMPORTANT
E8-15 Landing page + démo interactive : formulaire de contact fonctionnel, vidéo démo 3 min ou playground public. PM + Frontend 5 IMPORTANT

Total : 37 SP (intentionnellement bas : buffer pour bugs critiques imprévus)


Sprint 13 — Lancement Production (Semaines 2526)

Sprint Goal : "Veylant IA est en production sur AWS eu-west-3. Les clients pilotes sont migrés. Le pentest est passé (zéro finding Critical/High). Le premier contrat entreprise peut être signé."

Capacité : 38 SP (remédiation pentest imprévisible)

ID Story Assigné SP Priorité
E11-12 Remédiation pentest : corriger TOUS Critical + High. Documenter acceptation des Medium avec justification. Rapport de remédiation produit. Tous 8 BLOQUANT
E1-10 Cluster K8s production : AWS eu-west-3, 3 AZ, autoscaling HPA, backup PG quotidien, réplication ClickHouse. DR testé (restauration < 1h). DevOps 8 BLOQUANT
E1-11 Monitoring production : Grafana dashboards (proxy latency, error rate, PII volume, DB connections), alertes PagerDuty/Slack. Alerte test reçue < 5 min. DevOps 5 BLOQUANT
E11-13 Migration clients pilotes vers production : données migrées, SSO reconfiguré sur prod, tests de bon fonctionnement. PM + DevOps 5 BLOQUANT
E1-12 Runbooks opérationnels : 5+ procédures (provider down, DB full, cert expiré, traffic spike, breach PII). Chacun testé en staging. DevOps 5 IMPORTANT
E11-14 Matériel commercial : one-pager PDF, deck 10 slides, battle card RSSI/DSI/DPO. Validé par 1 prospect. PM 5 IMPORTANT
Rétrospective projet : retro documentée. Backlog V1.1 priorisé. Tous 2 SOUHAITABLE

Total : 38 SP

QUALITY GATE PHASE 4 — Checklist Go/No-Go complète avant déploiement production. (Voir Section 8 de ce document)


5. Chemin Critique et Dépendances

5.1 Graphe de dépendances (tâches BLOQUANTES)

S1: Monorepo + Docker Compose + K8s staging
    └──► S2: Proxy non-streaming + streaming SSE ⚡ (point le plus risqué)
              └──► S3: PII Pipeline (regex + NER + gRPC) ⚡ (point le plus complexe)
                        └──► S4: Multi-provider + RBAC
                                  └──► S5: Moteur de routage
                                            └──► S6: Journalisation ClickHouse
                                                      └──► S7: Dashboard v1
                                                                └──► S8: Playground + Sécurité RSSI
                                                                          └──► S9: Conformité PDF
                                                                                    └──► S10: mTLS + Vault + Hardening
                                                                                              └──► S11: Tests E2E + Beta
                                                                                                        └──► S12: Pentest (commandé en S10)
                                                                                                                  └──► S13: Production

5.2 Actions à lancer en avance (hors sprints)

Action Démarrer Nécessaire pour Responsable
Identifier 5 prospects pilotes et signer LOI S1 S11 onboarding PM
Négocier accès Azure AD test pour SAML S2 S4 Keycloak SAML PM + DevOps
Signer DPA avec OpenAI, Anthropic, Mistral, Azure S4 S9 conformité PM + Légal
Avis juridique architecture RGPD S6-S7 S9 rapports PM + Légal
Rédiger cahier des charges pentest + contacter 3 cabinets S7 S12 pentest PM + DevOps
Signer bon de commande pentest S10 S12 pentest PM
Commander certificats SSL production + domaine S10 S13 production DevOps
Créer compte AWS production + billing alerts S8 S13 production DevOps
Rédiger CGV/CGU S8 S13 lancement PM + Légal

6. Registre des Risques Scrum

# Risque Proba Impact Sprint détection Mitigation Contingence Owner
R1 Latence PII > 100ms M CRITIQUE S3 (benchmark) Cache patterns, préchargement spaCy, regex-only via feature flag Reporter NER en V1.1, MVP en regex uniquement Lead + Backend Sr
R2 Streaming SSE + PII incompatibles H HAUT S3 PII sur le prompt AVANT envoi (pas sur la réponse streamée) Bufferiser réponse complète + feature flag, impact latence perçue Lead Backend
R3 Départ développeur clé M CRITIQUE Continu Documentation ADR par module, cross-reviews (chacun connaît 2+ modules) Consultant senior Malt/Toptal, retard 2-4 semaines accepté CTO
R4 Client pilote indisponible/non engagé H HAUT S8 Identifier 5 prospects dès S1, LOI signé dès S6 Utiliser le produit en interne, démo sur données synthétiques PM
R5 ClickHouse trop complexe à opérer M MOYEN S6 Utiliser ClickHouse Cloud (managé) plutôt que self-hosted Fallback TimescaleDB + PG pour le MVP (migration V1.1) DevOps
R6 Scope creep (features non planifiées) H MOYEN Continu PO dit NON explicitement à toute feature hors backlog validé Créer ticket V1.1, pas de livraison S-sprint courant PM
R7 Findings pentest critiques nombreux M HAUT S12-S13 SAST/DAST dès S10, hardening proactif Buffer 8 SP S13 alloué remédiation. Si > 3 Critical : report de 2 semaines Tous
R8 EKS setup > 3 jours M MOYEN S1 Module Terraform stable (terraform-aws-eks) Passer en eksctl pour débloquer, IaC en parallèle S2 DevOps
R9 Format API provider LLM change M MOYEN Continu Adapter pattern : changements isolés dans 1 fichier/provider Rollback adapter, alerte monitoring sur erreur format Lead Backend
R10 Difficultés recrutement Go/NLP H HAUT Pré-S1 Démarrer recrutement 4 semaines avant S1. Alternative : Malt/Toptal. Consultants spécialisés pour module PII Python PM + CTO

7. Métriques et KPIs Scrum

7.1 Métriques suivies chaque sprint

Métrique Cible Outil Responsable
Vélocité livrée (SP Done) Voir Release Plan GitLab boards Scrum Master
Stories Done / Stories engagées 100% (idéal) GitLab boards Scrum Master
Coverage Go (unit tests) > 75% go test -cover en CI Lead Backend
Coverage Python (PII service) > 85% pytest --cov en CI Backend Sr
Latence proxy p99 (sans PII) < 50ms Prometheus histogram DevOps
Latence proxy p99 (avec PII) < 150ms Prometheus histogram DevOps
F1-score détection PII > 0.92 Benchmark corpus test Backend Sr
Build time CI < 8 min GitLab CI metrics DevOps
CVE critiques non patchées 0 Trivy + Snyk DevOps
Findings SAST critiques 0 Semgrep DevOps
Secrets en clair détectés 0 gitleaks en CI DevOps
Uptime staging > 99% Prometheus uptime DevOps

7.2 Métriques business (suivies par PM)

Métrique Cible Moment
Prospects identifiés 5 Fin S2
LOI signés 2 Fin S6
Clients pilotes connectés 2 Fin S11
NPS clients pilotes > 7 Fin S12
Bugs bloquants ouverts 0 Fin S12
Premier contrat signé 1 Fin S13

7.3 Indicateurs d'alerte (impediments à escalader immédiatement)

  • 1 story BLOQUANT non terminée à J8 du sprint → escalade immédiate
  • Vélocité < 70% de la cible 2 sprints consécutifs → session de réajustement scope
  • p99 PII > 80ms en staging → décision PO requis (régression scope ou optimisation)
  • Finding SAST/DAST Critical non résolu en 48h → blocage du déploiement staging

8. Actions à Lancer Immédiatement

Avant le Sprint 1, les actions suivantes doivent être initiées maintenant :

Semaine -2 (dès aujourd'hui) :

  • Confirmer la disponibilité des 4 développeurs (date de démarrage S1)
  • Créer le compte AWS (eu-west-3), configurer l'organization, billing alerts
  • Créer le compte GitLab (ou activer la licence Premium)
  • Réserver le domaine (ex: veylant.ai, veylant.io)
  • Identifier les 5 premiers prospects pilotes cibles → PM prend contact cette semaine

Semaine -1 (avant S1) :

  • PM rédige les 10 premières User Stories du backlog (E1 + E2) → format DoR atteint
  • CTO valide les choix techniques (Terraform vs Pulumi, Istio vs Linkerd) → ADR rédigés
  • Setup des accès AWS pour le DevOps
  • Sprint 0 (kick-off, 1 journée) :
    • Team building + working agreement signé
    • Definition of Done validée collectivement
    • Sprint 1 planifié (stories prêtes, estimées, backlog S1 verrouillé)
    • Outils configurés (GitLab, Slack, Jira/Linear, Notion)

Annexe — Checklist Go/No-Go Production (S13)

Chaque item doit être avant le déploiement production. Un = No-Go sauf décision explicite documentée.

Catégorie Item Critère
Fonctionnel Proxy relay 4 providers (OpenAI, Anthropic, Azure, Ollama) Tests E2E green
Fonctionnel Anonymisation 6 types PII (IBAN, email, tél, nom, adresse, SS) Tests E2E green + F1 > 0.92
Fonctionnel Streaming SSE avec anonymisation du prompt Démo live
Fonctionnel Routage intelligent avec 5+ règles simultanées Tests E2E green
Fonctionnel Dashboard données réelles (pas de mock) Vérification visuelle
Fonctionnel Rapport RGPD Article 30 PDF générable PDF téléchargeable et lisible
Sécurité Pentest : 0 finding Critical, 0 finding High ouvert Rapport pentest + lettre de remédiation
Sécurité mTLS actif entre tous les composants Wireshark capture staging
Sécurité Vault intégré, 0 secret en clair Audit Vault + gitleaks CI green
Sécurité SAST/DAST : 0 finding critique Rapports Semgrep + ZAP
Performance Proxy p99 < 300ms sous 500 req/s Rapport k6
Performance Dashboard load < 3s Lighthouse score > 70
Ops Monitoring prod opérationnel (Grafana + alertes) Alerte test reçue < 5 min
Ops Backup PostgreSQL auto + test restauration Restauration en < 1h testée
Ops Blue/green deployment fonctionnel Déploiement staging testé
Ops 5+ runbooks rédigés et testés en staging Revue par l'équipe
Commercial 1 client pilote satisfait (NPS > 7) Feedback documenté
Commercial Landing page + matériel commercial prêt Page live, formulaire contact OK
Légal CGV/CGU rédigées et validées avocat Document signé
Légal DPA providers IA (OpenAI, Anthropic, Mistral, Azure) signés Documents archivés

Document maintenu par le Scrum Master — mis à jour à chaque Sprint Review. Prochaine révision : fin Sprint 2 (ajustement vélocité réelle vs cible).