Aller au contenu principal

Rétrospectives & Registre des risques

Projet : ktayl-solution Claims & Policy Platform (CERT-1 / RNCP39583 BC01)


1. Rétrospectives de sprint

Chaque rétrospective suit le format Keep / Improve / Action (KIA) — simple, actionnable, et adapté au contexte solo/micro-équipe.


Sprint 0 — Architecture et Cadrage

Dates : 2026-08-13 · Durée : 1 session · Items livrés : 8/8

Ce qui a bien fonctionné

ObservationImpact
CdCF rédigé en une session avec structure complète (14 sections + RACI)Artefact BC01 principal livré à temps
Choix de Docusaurus comme dépôt des artefacts de certificationUn seul endroit pour tous les documents, déployé en continu sur GitHub Pages
Standard de gouvernance défini avant tout développementÉvite de devoir retrofit le RACI sur les sprints futurs
Critères d'acceptation (REC-*) définis dès M0Les tests E2E du sprint M8 peuvent être écrits maintenant

Ce qui peut s'améliorer

ObservationCause identifiéePriorité
Les items du sprint n'étaient pas tracés dans GitHub avant de commencerTravail démarré directement sans créer les issues GitHub d'abordHaute
Le registre des risques n'existait pas en début de sprintAucun template établiHaute
La dénomination des blocs BC dans le CdCF ne correspondait pas exactement à RNCP39583Copie approximative du référentielMoyenne

Actions

#ActionResponsableDeadline
A0-1Créer les GitHub Issues avant de démarrer le sprint M1 (ktayl-policy-service)TLAvant Sprint 1
A0-2Adopter BMAD pour la génération structurée des stories M1–M8SA + PMSprint 1
A0-3Corriger les noms de blocs BC dans le CdCF (BC03/BC04 libellés RNCP exacts)BASprint 1

Platform Sprint — Infra Automation (2026-08-13)

Dates : 2026-08-07 → 2026-08-13 · Items livrés : 5/6 · Item différé : MAAS → dnsmasq

Ce qui a bien fonctionné

Observation
Identification rapide du problème drain/finalizer Longhorn (diagnostic < 30 min)
cloudflared → k8s HA livré sans interruption de service (transition transparente)
GRUB_TIMEOUT=3 appliqué sur les 4 ThinkPads via SSH séquentiel — aucun reboot manual
k3s upgrade 5 nœuds sans drain : ~30s par nœud, aucune indisponibilité

Ce qui peut s'améliorer

ObservationCause
PR #689 fusionnée vide (branch créée avant git add)git push lancé sans vérifier git diff --stat
L'item MAAS → dnsmasq a consommé du temps d'analyse avant d'être différéManque de critère de décision Go/No-Go explicite en début de sprint

Actions

#Action
A-INF-1Toujours exécuter git diff --stat avant git push origin <branch>
A-INF-2Définir un critère Go/No-Go explicite pour chaque item en début de sprint

Platform Sprint — ERP-1 (2026-08-10)

Dates : 2026-08-10 · Items livrés : 6/6

Ce qui a bien fonctionné

Observation
PCG 2025 (845 comptes) chargé en une migration sans perte de données
TSCA correctement identifié comme taxe assurance (≠ TVA) dès la conception
Test invoice ACC-SINV-2026-00001 (MRH, TSCA 13%, 1695€) valide le parcours complet

Ce qui peut s'améliorer

ObservationCause
Redis stale cache après remplacement COA — erreur non anticipéeComportement interne Frappe non documenté
Suffix - KS sur les noms de templates — découvert en productionConvention ERPNext non lue au préalable

Actions

#Action
A-ERP-1Documenter les gotchas Frappe dans la section Migration du guide ERPNext
A-ERP-2Ajouter frappe.cache.flushall() au script de migration standard

2. Registre des risques

Légende probabilité/impact : H = Haute · M = Moyenne · L = Faible Score = P × I (HH=9, HM=6, MH=6, MM=4, etc.)

2.1 Risques techniques

IDRisqueCatégoriePIScoreMitigationStatutDate
RT-01k3s upgrade drain bloqué par finalizers Longhorn instance-manager (iSCSI)TechniqueHH9cordon: true uniquement dans les Plans system-upgrade — pas de drain:✅ Fermé2026-08-13
RT-02Prometheus WAL replay > probe failureThreshold → restart loop infiniTechniqueHH9failureThreshold=240, walCompression: true, memory-snapshot-on-shutdown✅ Fermé2026-08-07
RT-03Longhorn volume RWO deadlock lors du rolling update d'un DeploymentTechniqueMH6strategy: Recreate + dataLocality: best-effort + nodeSelector pour StatefulSets✅ Fermé2026-08-01
RT-04MinIO conserve l'état disk-full en mémoire après libération d'espaceTechniqueMH6remediate_minio_disk_recovery() dans minicloud-ops (flag file + restart automatique)✅ Fermé2026-08-13
RT-05Redis cache Frappe obsolète après remplacement du plan comptableTechniqueMM4frappe.cache.flushall() ajouté au script de migration ERPNext✅ Fermé2026-08-10
RT-06ArgoCD SSA + Helm CSA conflict : nouvelles clés ConfigMap silencieusement ignoréesTechniqueLM2kubectl patch --type merge (kubectl-patch manager prioritaire)✅ Fermé2026-08-07
RT-07Longhorn replica rebuild lente sur swift-mac (port switch limité à 100 Mbps)TechniqueMM4Correction physique câble/port switch requise — surveillance active⚠️ Ouvert2026-08-08
RT-08ThinkPads bootent sur PXE au lieu du NVMe après coupure secteurTechniqueHM6GRUB_TIMEOUT=3 + efibootmgr --create sur les 4 nœuds✅ Fermé2026-08-13
RT-09KEDA ScaledObject Lua health check — nil == 0 false → Rollout bloqué en ProgressingTechniqueLM2Vérification status.phase=="Healthy" avant coercion numérique✅ Fermé2026-08-07
RT-10Incompatibilité RNCP39583 BC03/BC04 libellés dans le CdCF vs référentiel officielDocumentationMH6Correction des libellés dans le CdCF avant dépôt dossier jury⚠️ Ouvert2026-08-13

2.2 Risques opérationnels

IDRisqueCatégoriePIScoreMitigationStatutDate
RO-01Perte d'accès SSH si Tailscale tombe (accès controller)DisponibilitéMH6Cloudflare Tunnel SSH backup path (controller.devandre.sbs → ssh://10.0.0.1:22) PR #680✅ Fermé2026-08-13
RO-02Interruption de 90s sur devandre.sbs à chaque redémarrage du controllerDisponibilitéHH9cloudflared → k8s 2 réplicas HA (PRs #678+#679)✅ Fermé2026-08-13
RO-03Disque controller plein → Velero backup failure → MinIO stale errorDonnées/DRMH6Monitoring disk usage + minicloud-recovery-check check 14/15 + auto-restart MinIO✅ Fermé2026-08-08
RO-04Absence de redondance géographique — panne secteur = cluster entier hors serviceDisponibilitéLH3Velero off-site Cloudflare R2 (backup hebdomadaire) + RTO < 4h documenté⚠️ Résiduel2026-08-07
RO-05MAAS DHCP race condition avec box SFR — attribution IP incorrecte aux nœudsRéseauMH6Plage dynamique supprimée, entrées DHCP statiques par MAC✅ Fermé2026-08-07
RO-06swift-mac ne démarre pas après coupure secteur (WoL non configuré)DisponibilitéMM4minicloud-wake-swift-mac.service — envoi magic packet 60s après k3s✅ Fermé2026-08-07

2.3 Risques projet / certification

IDRisqueCatégoriePIScoreMitigationStatutDate
RP-01BC02 non validé si les 4 microservices ne sont pas construits avant la soutenancePlanningMH6Plan de livraison M1–M7 (Sep 2026 → Apr 2027), démarrage Sprint 1 immédiat⚠️ Ouvert2026-08-13
RP-02Critères d'acceptation (REC-*) non validés faute de services déployésQualitéMH6Validation incrémentale sprint par sprint — REC-POL-01 visé Sprint 1⚠️ Ouvert2026-08-13
RP-03Audit RGAA non réalisé sur ktayl-portal avant la soutenanceConformitéMH6Sprint M7 dédié RGAA AA — axe-core CI gate (issue #204)⚠️ Ouvert2026-08-13
RP-04Dérive scope — ajout de fonctionnalités non dans le CdCFPlanningMM4CdCF §3.3 hors périmètre v1.0 explicite — toute évolution = avenant de CdCF✅ Mitigé2026-08-13
RP-05Manque d'artefacts BC03 (coordination équipe, grille compétences)DocumentationHM6Issue #195 checklist : grille d'évaluation + plan développement compétences à livrer avant sept. 2026⚠️ Ouvert2026-08-13

3. Tableau de bord des risques ouverts

Score ≥ 6 (Haute priorité) :
RP-01 BC02 — microservices non construits [P: M, I: H]
RP-02 REC-* non validés [P: M, I: H]
RP-03 RGAA audit non réalisé [P: M, I: H]
RP-05 Artefacts BC03 manquants [P: H, I: M]
RT-10 Libellés BC erronés dans le CdCF [P: M, I: H]

Score 3–5 (Surveillance) :
RT-07 swift-mac rebuild lente (port 100 Mbps) [P: M, I: M]
RO-04 Absence redondance géographique (résiduel acceptable) [P: L, I: H]

Score ≤ 2 (Accepté) :
aucun risque résiduel en dessous du seuil

4. Processus de gestion des risques

Identification

Chaque début de sprint : revue de ce registre + identification de nouveaux risques via la checklist :

  1. Un seul nœud est-il critique pour ce livrable ?
  2. Une migration de données est-elle impliquée ?
  3. Une dépendance externe non testée est-elle dans le périmètre ?
  4. Le délai est-il tendu (< 1 semaine de marge) ?

Escalade

ScoreTraitement
≥ 9Blocant — sprint ne démarre pas sans mitigation
6–8Haute priorité — plan de mitigation défini avant J+2
3–5Surveillance — revue hebdomadaire
≤ 2Accepté — documenté, pas d'action immédiate

Clôture

Un risque est fermé quand :

  • La mitigation est déployée en production (PR mergée + ArgoCD Synced), et
  • Le risque a été observé absent lors d'au moins un test ou incident réel

5. Prochaine revue

Date cibleDéclencheur
Début Sprint 1 (Sep 2026)Revue risques RP-01, RP-02, RP-05 — plan de mitigation concret
Fin Sprint M3 (Jan 2027)Revue risques certification : REC-CLM-*, COREP
Sprint M7 (Mar 2027)Revue RP-03 — RGAA audit réalisé
4 semaines avant soutenanceRevue globale — tous les risques ouverts doivent être fermés ou acceptés