🏠

8 · Documentation et Connaissance Métier

8.1 État de la Documentation Technique

Audit Exhaustif (via scripts audit_tool.py)

ArtefactAttenduObservéCouvertureCommentaire
package-info.java35 (1 par module)✗ Aucun0%🔴 Critique — aucune doc package
Javadoc classes726 classes232 documentées32%⚠️ Insuffisant (cible : 80%)
Javadoc méthodes publiques~4 800 méthodes~1 200 documentées25%🔴 Très insuffisant
ADR (Architecture Decision Records)≥10 décisions majeures✗ Aucun0%Perte de contexte architectural
Diagrammes C44 niveaux (Context, Container, Component, Code)✗ Aucun0%Difficulté onboarding
User Stories / Acceptance Criteria~200 US estimées✗ Non accessibles?Stockées dans Jira ?
Documentation BPM30+ workflows⚠️ Fichiers BPMN non fournis?Bloquant pour analyse

Exemple de Javadoc Manquante (God Class)

Recommandations Documentation

  1. Court terme (0–3 mois)

    • ✅ Créer package-info.java pour 35 modules (effort : 7 j/h)

    • ✅ Documenter 14 God Classes (méthodes publiques uniquement) — effort : 10 j/h

    • ✅ Générer diagrammes C4 niveau 1–2 (Context + Container) — effort : 3 j/h

  2. Moyen terme (3–6 mois) — si Option A (Refactoring) retenue

    • Documenter toutes APIs publiques (cible 80% couverture) — effort : 25 j/h

    • Créer 15 ADRs pour décisions architecturales passées — effort : 5 j/h

    • Reverse engineering User Stories depuis code + interviews PO — effort : 15 j/h

  3. Option B (Greenfield) — Documentation Native

    • Documentation First : Javadoc obligatoire pour tout nouveau code (Checkstyle enforced)

    • ADRs systématiques : toute décision architecture documentée (template Markdown)

    • Living Documentation : génération automatique doc depuis tests BDD (Cucumber)

8.2 Connaissance Métier — Risques Identifiés

Bus Factor Analysis

Domaine MétierExpert(s) Clé(s)Bus FactorRisqueMitigation
Modèle de données SIAS1 architecte (nom non communiqué)1🔴 CritiqueEvent Storming + doc
Workflows BPM (30+ processus)2 développeurs BPM2🔴 ÉlevéReverse engineering
Intégrations SPQR/SSOL1 tech lead1🔴 CritiqueDocumentation contrats
Logique métier TICC3 développeurs3⚠️ MoyenPair programming
Migration PostgreSQL0 (connaissance externe)0⚠️ MoyenFormation + POC

Actions Urgentes

  1. Event Storming SIAS (2 semaines) — capturer processus métier complets

    • Participants : PO SIAS, architecte, 3 développeurs seniors

    • Livrable : 200+ User Stories, diagramme événements métier

  2. Knowledge Transfer Sessions (1 mois)

    • 10 sessions × 2h avec experts techniques

    • Enregistrement vidéo + transcription

    • Création documentation "How-To" (Confluence)

  3. Pair Programming Systématique (continu)

    • Rotation développeurs juniors ↔ seniors

    • Code review obligatoire (≥2 reviewers par PR)


 


9 · Tests et Qualité

9.1 Couverture de Tests — État Actuel

⚠️ Absence de Données Empiriques

Type de TestFichiers DétectésEstimation CouvertureCommentaire
Tests unitaires JUnit142 fichiers *Test.java~30–40%Principalement utilitaires/DTO
Tests d'intégration18 fichiers *IT.java~10%Quelques tests DAO/Service
Tests Selenium/UI✗ Aucun0%Aucun test end-to-end détecté
Tests API (REST Assured)✗ Aucun0%Aucun test contrat d'API
Tests BPM✗ Aucun0%3 processus Software AG détectés, non testés
Tests de charge (JMeter)✗ Aucun0%Performance non testée

Exemples de Tests Existants

Métrique Qualité Estimée

9.2 Stratégie Tests — Option B (Greenfield)

Test Pyramid (approche moderne)

Outils et Frameworks Cibles

NiveauFrameworkUsageExemple
UnitaireJUnit 5 + MockitoTester logique métier isoléeIncidentServiceTest
IntégrationSpring Boot Test + TestContainersTester avec vraie DB (PostgreSQL dockerisé)IncidentRepositoryIT
APIREST Assured + WireMockTester contrats REST + mocker services externesIncidentApiContractTest
End-to-EndCypress (recommandé) ou SeleniumTester parcours utilisateur completsCreateIncidentE2ETest
ChargeGatling (Scala DSL)Tester scalabilité (1000 req/s cible)IncidentLoadTest
MutationPitestVérifier qualité assertions testsDétection tests "vides"
ContratPact (Consumer-Driven)Vérifier contrats API SPQR/SSOLSPQRContractTest

BDD (Behavior-Driven Development) — Recommandé

Implémentation avec Cucumber

Couverture Cible Option B

Phase MVPCouverture UnitaireCouverture IntégrationE2ECible Globale
Phase 1 (4–5 mois)75%60%5 scénarios critiques70%
Phase 2 (3–4 mois)80%70%15 scénarios75%
Phase 3 (3–4 mois)85%75%30 scénarios80%