Dossier de Spécifications Complètes

Ce document fournit une spécification exhaustive et opérationnelle, centrée sur une approche agile et Scrum, pour le développement de l'application de gestion de projets agiles destinée aux petites équipes, étudiants et start-ups. Les exigences techniques, fonctionnelles, organisationnelles et de cycle de vie sont détaillées pour garantir la réussite du projet, sa maintenabilité et son évolutivité.

Synthèse des Points Clés

Ce cahier des charges présente une architecture hexagonale (Ports \& Adapters), intégrant un backend Spring Boot, un frontend Angular/NGXS, une infrastructure Dockerisée, une CI/CD GitLab, une gestion avancée de la sécurité, et un monitoring robuste. L'ensemble des modules, frameworks et outils techniques requis est inventorié. Toutes les user stories et technical stories nécessaires pour la gestion exhaustive d'un projet agile sont listées, avec compléments pour assurer la couverture complète du cycle de vie produit, du développement à la maintenance.


1. Environnement Technique

1.1 Vue d'Ensemble Architecturale

L'application repose sur une architecture hexagonale Ports \& Adapters qui garantit la séparation claire des responsabilités, une testabilité optimale et une grande évolutivité. L'intégralité de l'environnement technique est containerisée et automatisée pour des déploiements sûrs et reproductibles.

1.1.1 Schéma PlantUML - Architecture Hexagonale Complète

USER SIDE (Driving)«UserSide»BUSINESS LOGIC(Hexagone - Domain)«Domain»SERVER SIDE (Driven)«ServerSide»Infrastructure & DevOpsAngular 17FrontendREST ControllerSpring WebIRequestVerses(Port Primaire)Use CasesGestion BacklogDomain Model(Entités métier)Business Rules(Règles métier)IObtainData(Port Secondaire)IManageAuth(Port Secondaire)PostgreSQLAdapterSpring Data JPARepositoriesSpring SecurityJWTFlywayMigrationsActuatorMonitoringDockerComposeGitLab CI/CDPipelinesPrometheusGrafanaArchitecture Hexagonale- Domain au centre- Ports : interfaces définies par métier- Adapters : implémentations techniques- Dépendances vers l'intérieurutiliseimplémentepiloteutiliseappliquerequiertrequiertimplémenteimplémenteimplémenteutilise pour migrationsexpose healthdéploie viasupervise
USER SIDE (Driving)«UserSide»BUSINESS LOGIC(Hexagone - Domain)«Domain»SERVER SIDE (Driven)«ServerSide»Infrastructure & DevOpsAngular 17FrontendREST ControllerSpring WebIRequestVerses(Port Primaire)Use CasesGestion BacklogDomain Model(Entités métier)Business Rules(Règles métier)IObtainData(Port Secondaire)IManageAuth(Port Secondaire)PostgreSQLAdapterSpring Data JPARepositoriesSpring SecurityJWTFlywayMigrationsActuatorMonitoringDockerComposeGitLab CI/CDPipelinesPrometheusGrafanaArchitecture Hexagonale- Domain au centre- Ports : interfaces définies par métier- Adapters : implémentations techniques- Dépendances vers l'intérieurutiliseimplémentepiloteutiliseappliquerequiertrequiertimplémenteimplémenteimplémenteutilise pour migrationsexpose healthdéploie viasupervise

1.2 Stack Backend

  • Spring Boot 3.x (Java 17+)
    • Modules principaux :
      • Spring Web : REST API, contrôleurs HTTP
      • Spring Data JPA : accès base de données, repositories
      • Spring Security : authentification JWT, autorisation RBAC
      • Spring Boot Actuator : monitoring, health checks, métriques
      • Spring Boot Test, Mockito : tests unitaires et d'intégration
      • Flyway : migrations DB versionnées et automatisées
      • Spring Boot Loader : packaging JAR exécutable
      • Spring Validation : validation des entrées utilisateur
      • Spring AOP : aspects transversaux (logs, sécurité)
    • Base de données : PostgreSQL en production, H2 pour le développement et les tests
    • Approche hexagonale : découpage par domaine métier, ports/interfaces métiers et adaptateurs d'infrastructure.

1.3 Stack Frontend

  • Angular 17+
    • State Management : NGXS (gestion d'état centralisée)
    • UI Framework : Angular Material (design system Material Design, personnalisable)
    • Angular CLI : build, optimisation, génération de code
    • RxJS : programmation réactive
    • Angular Router : navigation SPA
    • Angular Forms : Reactive Forms et Template-driven
    • Cypress : tests end-to-end
    • Jasmine/Karma : tests unitaires
    • Responsive Design et accessibilité WCAG 2.1 AA.

1.4 Infrastructure, Intégration et Outils

  • Docker \& Docker Compose (containerisation des services : frontend, backend, database)
  • GitLab CI/CD (pipelines automatisés)
    • Build : compilation, packaging
    • Test : unitaires, intégration, end-to-end
    • Deploy : déploiement progressif blue/green (frontend), rolling (backend)
    • Stages : lint, build, test, package, deploy, monitor
  • Supervision et Monitoring
    • Prometheus : collecte de métriques applicatives et système
    • Grafana : dashboards de visualisation, alerting
    • ELK Stack (Elasticsearch, Logstash, Kibana) : centralisation et analyse des logs
    • Spring Boot Actuator : endpoints health, info, metrics
  • Sauvegardes et Haute Disponibilité
    • Sauvegardes automatiques quotidiennes (base de données, fichiers de configuration)
    • Rétention minimum 30 jours
    • Stratégie de restauration documentée
    • Gestion des versions de configuration via Git.

1.4.1 Schéma PlantUML - Infrastructure, Déploiement et CI/CD

GitLabPipeline StagesServeur de ProductionDocker Compose StackMonitoring & LogsCloud StorageRepositoryCode SourceGitLab CI/CDPipelinesLint & BuildTests UnitairesJUnit, MockitoTests E2ECypressPackageDocker ImagesDeployDocker ComposeBackup ServiceCron JobsFrontendAngular:17NginxBackendSpring Boot:3.xJava 17PostgreSQL15.xPrometheusMétriquesGrafanaDashboardsELK StackLogs centralisésSauvegardesQuotidiennesStratégie de déploiement:- Frontend: Blue/Green- Backend: Rolling update- Zero-downtime deploymentPolitique de sauvegarde:- Quotidienne automatique- Rétention: 30 jours min- Tests de restauration mensuelstriggerstage 1stage 2stage 3stage 4stage 5déploie (blue/green)déploie (rolling)utiliseexpose /actuator/metricssource de donnéesenvoie logsenvoie logsbackup quotidienstocke
GitLabPipeline StagesServeur de ProductionDocker Compose StackMonitoring & LogsCloud StorageRepositoryCode SourceGitLab CI/CDPipelinesLint & BuildTests UnitairesJUnit, MockitoTests E2ECypressPackageDocker ImagesDeployDocker ComposeBackup ServiceCron JobsFrontendAngular:17NginxBackendSpring Boot:3.xJava 17PostgreSQL15.xPrometheusMétriquesGrafanaDashboardsELK StackLogs centralisésSauvegardesQuotidiennesStratégie de déploiement:- Frontend: Blue/Green- Backend: Rolling update- Zero-downtime deploymentPolitique de sauvegarde:- Quotidienne automatique- Rétention: 30 jours min- Tests de restauration mensuelstriggerstage 1stage 2stage 3stage 4stage 5déploie (blue/green)déploie (rolling)utiliseexpose /actuator/metricssource de donnéesenvoie logsenvoie logsbackup quotidienstocke

1.5 Sécurité

  • Authentification JWT (JSON Web Tokens)
    • Access Token avec expiration courte (15-30 min)
    • Refresh Token avec expiration longue (7-30 jours)
    • Rotation des tokens
  • Spring Security
    • Configuration RBAC (Role-Based Access Control)
    • Rôles utilisateurs : Admin, Product Owner, Scrum Master, Developer, Observateur
    • Permissions granulaires par produit et par ressource
    • Protection CSRF, XSS, SQL Injection
  • Politique d'accès
    • Validation des permissions au runtime
    • Audit trail des actions sensibles
    • Chiffrement des données sensibles en base.

1.6 Schéma PlantUML - Stack Technique Complet

Application GestionProjets AgilesBackendSpring Boot 3.xSpring WebSpring Data JPASpring SecuritySpring ActuatorFlywaySpring ValidationSpring AOPFrontendAngular 17+NGXS (State)Angular MaterialRxJSAngular RouterAngular FormsCypress (E2E)Jasmine/KarmaInfrastructureConteneurisationDockerDocker ComposeCI/CDGitLab PipelinesAutomated TestingMonitoringPrometheusGrafanaELK StackActuatorBase de DonnéesPostgreSQL (Prod)H2 (Dev/Test)Flyway MigrationsSécuritéJWT AuthenticationSpring SecurityRBACHTTPS/TLSTestsJUnit 5MockitoCypressTestContainers
Application GestionProjets AgilesBackendSpring Boot 3.xSpring WebSpring Data JPASpring SecuritySpring ActuatorFlywaySpring ValidationSpring AOPFrontendAngular 17+NGXS (State)Angular MaterialRxJSAngular RouterAngular FormsCypress (E2E)Jasmine/KarmaInfrastructureConteneurisationDockerDocker ComposeCI/CDGitLab PipelinesAutomated TestingMonitoringPrometheusGrafanaELK StackActuatorBase de DonnéesPostgreSQL (Prod)H2 (Dev/Test)Flyway MigrationsSécuritéJWT AuthenticationSpring SecurityRBACHTTPS/TLSTestsJUnit 5MockitoCypressTestContainers

2. Modules Fonctionnels

2.1 Module Administration

  • Gestion des utilisateurs (CRUD complet)
    • Création, modification, suppression (soft delete), désactivation/activation
    • Attribution et modification des rôles globaux et par produit
    • Gestion des profils utilisateurs (nom, email, avatar, préférences)
  • Gestion des produits
    • CRUD produits agiles
    • Constitution et gestion des équipes
    • Attribution des rôles agiles (PO, SM, Dev, Observateur).

2.2 Module Gestion Projet

2.2.1 Dashboard Produit

  • Vue synthétique des métriques clés
    • Vélocité moyenne et par sprint
    • Burn-down et burn-up charts
    • Points restants au backlog
    • Progression des releases et sprints en cours
  • Planning des événements équipe (ceremonies, congés, événements)
  • Historique des activités récentes
  • Notifications et alertes temps réel.

2.2.2 Gestion du Backlog

Schéma PlantUML - Hiérarchie Backlog Agile
«Epic»Epicid: UUIDtitre: Stringobjectif_business: Stringpriorité: Integerstatut: Status«Feature»Featureid: UUIDtitre: Stringdescription: Stringvaleur_business: Integereffort_estimé: Integer«UserStory»UserStoryid: UUIDformat: "En tant que... je veux... afin de..."critères_acceptation: List<String>points_story: Integerpriorité: Integer«TechnicalStory»TechnicalStoryid: UUIDdescription_technique: Stringimpact_architecture: Stringcomplexité: Integerpoints_story: Integer«Task»Taskid: UUIDtitre: Stringdescription: Stringassigné_à: Userestimation_heures: Integerstatut: Status«Defect»Defectid: UUIDsévérité: Enumpriorité: Integersteps_reproduction: Stringenvironnement: String«Spike»Spikeid: UUIDquestion_recherche: Stringtimebox: Durationobjectif: StringOrganisation hiérarchiqueEpic: Vision long termeFeature: Ensemble fonctionnelUser/Technical Story: Unité livrableTask: Unité de travailDefect/Spike: Types spéciauxcontient10..*contient10..*contient10..*décomposé en10..*décomposé en10..*peut contenir10..*peut nécessiter10..*
«Epic»Epicid: UUIDtitre: Stringobjectif_business: Stringpriorité: Integerstatut: Status«Feature»Featureid: UUIDtitre: Stringdescription: Stringvaleur_business: Integereffort_estimé: Integer«UserStory»UserStoryid: UUIDformat: "En tant que... je veux... afin de..."critères_acceptation: List<String>points_story: Integerpriorité: Integer«TechnicalStory»TechnicalStoryid: UUIDdescription_technique: Stringimpact_architecture: Stringcomplexité: Integerpoints_story: Integer«Task»Taskid: UUIDtitre: Stringdescription: Stringassigné_à: Userestimation_heures: Integerstatut: Status«Defect»Defectid: UUIDsévérité: Enumpriorité: Integersteps_reproduction: Stringenvironnement: String«Spike»Spikeid: UUIDquestion_recherche: Stringtimebox: Durationobjectif: StringOrganisation hiérarchiqueEpic: Vision long termeFeature: Ensemble fonctionnelUser/Technical Story: Unité livrableTask: Unité de travailDefect/Spike: Types spéciauxcontient10..*contient10..*contient10..*décomposé en10..*décomposé en10..*peut contenir10..*peut nécessiter10..*
  • Organisation hiérarchique complète
    • Epic → Feature → User Story / Technical Story → Task
    • Defects (bugs) → Task
    • Spike (recherche/investigation) → Findings
  • Affichage multi-vues
    • Liste avec tri et filtres avancés
    • Board Kanban avec workflow personnalisable
    • Calendrier des échéances
    • Burndown et burnup charts
  • Opérations
    • Drag \& drop pour priorisation et déplacement
    • Estimation collaborative (Planning Poker intégré)
    • Historique des modifications et commentaires.

2.2.3 Planning Poker (Estimation Collaborative)

  • Sessions en temps réel
    • Création de session d'estimation
    • Invitation des participants
    • Vote simultané et anonyme jusqu'à révélation
  • Échelles d'estimation configurables
    • Fibonacci (0, 1, 2, 3, 5, 8, 13, 21, ...)
    • T-shirt sizes (XS, S, M, L, XL, XXL)
    • Heures idéales
    • Personnalisée
  • Fonctionnalités
    • Chat intégré pour discussions
    • Sauvegarde automatique des estimations
    • Historique des sessions
    • Export des résultats.

2.2.4 Gestion des Sprints et Releases

  • Release Planning
    • Définition des releases (nom, objectif, dates, périmètre)
    • Roadmap produit visuelle
    • Suivi des dépendances entre releases
  • Sprint Management
    • Création et configuration de sprints (durée, capacité, objectif)
    • Sprint backlog (sélection depuis product backlog)
    • Calcul automatique de vélocité
    • États : Planifié, En cours, Terminé, Annulé
  • Board Kanban personnalisable
    • Workflow configurable (To Do, In Progress, Review, Done, etc.)
    • WIP limits (Work In Progress) par colonne
    • Swim lanes (par priorité, par membre, par type)
    • Drag \& drop intuitif
    • Filtres et recherche avancée.
Schéma PlantUML - Workflow Kanban
«Column»À FAIRE(To Do)«Column»EN COURS(In Progress)WIP: 3/5«Column»EN REVUE(Review)«Column»EN TEST(Testing)«Column»TERMINÉ(Done)«Card»User Story #123Login OAuth[5 points]«Card»Bug #456Fix validation[3 points]«Card»User Story #124Dashboard[8 points]Assigné: Alice«Card»Tech Story #125Migration DB[5 points]Assigné: Bob«Card»User Story #126Backlog view[5 points]Reviewer: Charlie«Card»User Story #127Sprint board[8 points]Tester: David«Card»User Story #122Authentication[8 points]✓ ValidéWIP Limit:5 items maxAméliore le flux et réduitle temps de cycleDefinition of Done:- Code reviewé- Tests passés- Documentation à jour- Accepté par PODéveloppeur démarreCode completeReview approuvéeTests passés
«Column»À FAIRE(To Do)«Column»EN COURS(In Progress)WIP: 3/5«Column»EN REVUE(Review)«Column»EN TEST(Testing)«Column»TERMINÉ(Done)«Card»User Story #123Login OAuth[5 points]«Card»Bug #456Fix validation[3 points]«Card»User Story #124Dashboard[8 points]Assigné: Alice«Card»Tech Story #125Migration DB[5 points]Assigné: Bob«Card»User Story #126Backlog view[5 points]Reviewer: Charlie«Card»User Story #127Sprint board[8 points]Tester: David«Card»User Story #122Authentication[8 points]✓ ValidéWIP Limit:5 items maxAméliore le flux et réduitle temps de cycleDefinition of Done:- Code reviewé- Tests passés- Documentation à jour- Accepté par PODéveloppeur démarreCode completeReview approuvéeTests passés

2.2.5 Ceremonies Agile

  • Sprint Planning
    • Définition de l'objectif du sprint (Sprint Goal)
    • Sélection et décomposition des stories
    • Estimation de la capacité équipe
    • Engagement de l'équipe
  • Daily Stand-up
    • Template structuré : Hier / Aujourd'hui / Blocages
    • Mise à jour rapide du board
    • Identification des impediments
    • Historique des daily meetings
  • Sprint Review
    • Démonstration des incréments livrés
    • Collecte de feedback
    • Mise à jour du product backlog
    • Traçabilité des décisions
  • Sprint Retrospective
    • Formats multiples : Start/Stop/Continue, Mad/Sad/Glad, 4Ls
    • Identification des points d'amélioration
    • Définition et suivi des actions d'amélioration
    • Historique des rétrospectives pour analyse long terme.

3. User Stories et Technical Stories Exhaustives

3.1 Epic 1 - Administration et Sécurité

User Stories

US-001 : En tant qu'administrateur, je veux créer un compte utilisateur avec attribution de rôles afin de donner accès à l'application.

US-002 : En tant qu'administrateur, je veux modifier les informations et rôles d'un utilisateur existant pour maintenir les données à jour.

US-003 : En tant qu'administrateur, je veux désactiver temporairement un compte utilisateur sans le supprimer pour gérer les départs temporaires.

US-004 : En tant qu'utilisateur, je veux mettre à jour mon profil (nom, email, avatar, préférences) pour personnaliser mon expérience.

US-005 : En tant qu'utilisateur, je veux me connecter avec email/mot de passe ou OAuth2 (Google, GitHub) pour accéder à l'application de manière sécurisée.

US-006 : En tant qu'utilisateur, je veux réinitialiser mon mot de passe par email afin de récupérer l'accès à mon compte.

US-007 : En tant qu'administrateur, je veux consulter les logs d'audit des actions sensibles pour assurer la traçabilité.

Technical Stories

TS-001 : En tant qu'équipe technique, nous devons implémenter l'authentification JWT avec access et refresh tokens pour sécuriser l'API.

TS-002 : En tant qu'équipe technique, nous devons configurer Spring Security avec RBAC pour gérer les autorisations par rôle et ressource.

TS-003 : En tant qu'équipe technique, nous devons implémenter les migrations Flyway pour versionner le schéma de base de données.

TS-004 : En tant qu'équipe technique, nous devons configurer le chiffrement des données sensibles (mots de passe, tokens) en base.

3.2 Epic 2 - Gestion Produit et Équipe

User Stories

US-010 : En tant que Product Owner, je veux créer un nouveau produit agile avec nom, description et vision pour initialiser le projet.

US-011 : En tant que PO, je veux constituer une équipe en assignant des membres avec leurs rôles (PO, SM, Dev, Observateur) pour structurer l'organisation.

US-012 : En tant que Scrum Master, je veux modifier la composition de l'équipe (ajouter/retirer membres) pour adapter aux évolutions.

US-013 : En tant que membre d'équipe, je veux consulter la liste des produits auxquels je suis affecté pour naviguer rapidement.

US-014 : En tant que PO, je veux archiver un produit terminé sans le supprimer pour maintenir l'historique.

3.3 Epic 3 - Gestion du Backlog

User Stories

US-020 : En tant que PO, je veux créer un Epic avec objectif business, priorité et description pour structurer la vision long terme.

US-021 : En tant que PO, je veux créer des Features rattachées à un Epic pour organiser le périmètre fonctionnel.

US-022 : En tant que PO, je veux créer des User Stories au format "En tant que... je veux... afin de..." pour exprimer les besoins utilisateurs.

US-023 : En tant que développeur, je veux créer des Technical Stories pour documenter les besoins techniques non visibles par l'utilisateur.

US-024 : En tant que membre d'équipe, je veux définir des critères d'acceptation pour chaque User Story afin de clarifier la Definition of Done.

US-025 : En tant que PO, je veux prioriser les éléments du backlog par drag \& drop pour refléter la valeur business.

US-026 : En tant que PO, je veux visualiser le backlog en vue liste, Kanban et calendrier pour m'adapter au contexte.

US-027 : En tant que membre d'équipe, je veux ajouter des commentaires et pièces jointes sur les stories pour enrichir la documentation.

US-028 : En tant que PO, je veux filtrer et rechercher dans le backlog (par statut, priorité, assigné, tags) pour naviguer efficacement.

US-029 : En tant que membre d'équipe, je veux créer des Defects (bugs) avec sévérité et priorité pour suivre les anomalies.

US-030 : En tant que PO, je veux créer des Spikes pour documenter les investigations et recherches nécessaires.

Technical Stories

TS-010 : En tant qu'équipe technique, nous devons implémenter la gestion hiérarchique Epic > Feature > Story > Task avec relations en base.

TS-011 : En tant qu'équipe technique, nous devons optimiser les requêtes de chargement du backlog pour supporter 1000+ items.

TS-012 : En tant qu'équipe technique, nous devons implémenter la recherche full-text sur les stories et commentaires.

3.4 Epic 4 - Estimation et Planning Poker

User Stories

US-040 : En tant que Scrum Master, je veux créer une session de Planning Poker pour un ensemble de stories à estimer.

US-041 : En tant que membre d'équipe, je veux rejoindre une session de Planning Poker et voter de manière anonyme.

US-042 : En tant que SM, je veux configurer l'échelle d'estimation (Fibonacci, T-shirt, heures) selon les préférences de l'équipe.

US-043 : En tant que participant, je veux voir les résultats révélés simultanément après que tous aient voté.

US-044 : En tant qu'équipe, nous voulons discuter via chat intégré pour converger vers un consensus d'estimation.

US-045 : En tant que PO, je veux consulter l'historique des sessions d'estimation pour analyser la fiabilité.

Technical Stories

TS-020 : En tant qu'équipe technique, nous devons implémenter WebSocket pour les sessions Planning Poker en temps réel.

TS-021 : En tant qu'équipe technique, nous devons assurer la persistance des votes et résultats d'estimation.

3.5 Epic 5 - Sprints et Releases

User Stories

US-050 : En tant que PO, je veux créer une Release avec nom, objectif, dates et roadmap pour planifier à moyen terme.

US-051 : En tant que SM, je veux créer un Sprint avec durée, dates début/fin et capacité équipe pour cadrer l'itération.

US-052 : En tant que PO, je veux définir un Sprint Goal clair et mesurable pour aligner l'équipe sur l'objectif.

US-053 : En tant que membre d'équipe, je veux sélectionner des stories du product backlog vers le sprint backlog lors du planning.

US-054 : En tant que développeur, je veux décomposer une User Story en tâches techniques pour faciliter l'exécution.

US-055 : En tant que membre d'équipe, je veux mettre à jour le statut des tâches et stories sur le board Kanban par drag \& drop.

US-056 : En tant que PO, je veux consulter le burndown chart du sprint en cours pour suivre la progression.

US-057 : En tant que SM, je veux clôturer un sprint et générer automatiquement le rapport de sprint (vélocité, reste à faire, etc.).

US-058 : En tant que PO, je veux reporter les stories non terminées vers le prochain sprint ou le backlog.

Technical Stories

TS-030 : En tant qu'équipe technique, nous devons calculer automatiquement la vélocité moyenne sur les derniers sprints.

TS-031 : En tant qu'équipe technique, nous devons générer les données pour burndown/burnup charts en temps réel.

TS-032 : En tant qu'équipe technique, nous devons implémenter les WIP limits configurables sur le board Kanban.

3.6 Epic 6 - Ceremonies Agile

User Stories

US-070 : En tant que SM, je veux organiser un Sprint Planning avec ordre du jour et participants pour structurer la cérémonie.

US-071 : En tant que membre d'équipe, je veux enregistrer mon daily stand-up (hier/aujourd'hui/blocages) pour partager ma progression.

US-072 : En tant que SM, je veux consulter l'historique des daily meetings pour identifier les patterns de blocage.

US-073 : En tant que PO, je veux organiser une Sprint Review avec démonstration des incréments et collecte de feedback.

US-074 : En tant que SM, je veux faciliter une rétrospective avec format configurable (Start/Stop/Continue, Mad/Sad/Glad, etc.).

US-075 : En tant qu'équipe, nous voulons définir des actions d'amélioration lors de la rétrospective et suivre leur réalisation.

US-076 : En tant que SM, je veux consulter l'historique des rétrospectives pour mesurer l'amélioration continue.

Technical Stories

TS-040 : En tant qu'équipe technique, nous devons implémenter les templates de ceremonies configurables.

TS-041 : En tant qu'équipe technique, nous devons stocker et versionner les notes de ceremonies pour traçabilité.

3.7 Epic 7 - Dashboard et Reporting

User Stories

US-080 : En tant que PO, je veux visualiser le dashboard produit avec métriques clés (vélocité, progression, qualité).

US-081 : En tant que membre d'équipe, je veux consulter le calendrier des événements équipe (sprints, ceremonies, congés).

US-082 : En tant que PO, je veux exporter les rapports (sprint, release, vélocité) au format PDF/Excel pour partage externe.

US-083 : En tant que stakeholder, je veux accéder à un dashboard public (avec permissions) pour suivre l'avancement sans se connecter.

US-084 : En tant que membre d'équipe, je veux configurer mes préférences de widgets sur mon dashboard personnel.

Technical Stories

TS-050 : En tant qu'équipe technique, nous devons implémenter le cache des métriques pour améliorer les performances du dashboard.

TS-051 : En tant qu'équipe technique, nous devons générer les rapports PDF via templating avec données en temps réel.

3.8 Epic 8 - Notifications et Collaboration

User Stories

US-090 : En tant qu'utilisateur, je veux recevoir des notifications en temps réel (assignation, mentions, changements) sur l'interface.

US-091 : En tant qu'utilisateur, je veux configurer mes préférences de notifications (email, push, in-app) par type d'événement.

US-092 : En tant que membre d'équipe, je veux mentionner (@) un collègue dans un commentaire pour attirer son attention.

US-093 : En tant que membre d'équipe, je veux suivre (watch) une story pour être notifié de ses changements.

Technical Stories

TS-060 : En tant qu'équipe technique, nous devons implémenter le système de notifications avec WebSocket pour temps réel.

TS-061 : En tant qu'équipe technique, nous devons configurer l'envoi d'emails transactionnels via service externe (SendGrid, SES).

3.9 Epic 9 - Intégrations Externes (Compléments)

User Stories

US-100 : En tant que développeur, je veux synchroniser les commits Git avec les stories pour tracer le code produit.

US-101 : En tant que PO, je veux importer/exporter le backlog au format CSV/JSON pour migration ou backup.

US-102 : En tant qu'administrateur, je veux configurer l'intégration Slack pour notifications équipe.

US-103 : En tant que développeur, je veux créer des webhooks sortants pour intégration avec outils externes.

Technical Stories

TS-070 : En tant qu'équipe technique, nous devons implémenter l'API REST publique documentée avec OpenAPI/Swagger.

TS-071 : En tant qu'équipe technique, nous devons sécuriser les webhooks avec validation de signature.

3.10 Epic 10 - DevOps, Monitoring et Maintenance (Compléments)

Technical Stories

TS-080 : En tant que DevOps, nous devons configurer les pipelines GitLab CI/CD avec stages (lint, build, test, deploy).

TS-081 : En tant que DevOps, nous devons conteneuriser l'application avec Docker Compose pour environnements de dev/prod.

TS-082 : En tant que DevOps, nous devons configurer Prometheus pour collecter les métriques applicatives et système.

TS-083 : En tant que DevOps, nous devons créer des dashboards Grafana avec alerting pour supervision 24/7.

TS-084 : En tant que DevOps, nous devons implémenter la stratégie de sauvegarde automatisée quotidienne avec tests de restauration.

TS-085 : En tant que DevOps, nous devons configurer l'ELK Stack pour centralisation et analyse des logs.

TS-086 : En tant que DevOps, nous devons implémenter le blue/green deployment pour le frontend et rolling pour le backend.

TS-087 : En tant qu'équipe technique, nous devons atteindre 80% de couverture de tests (unitaires + intégration).

TS-088 : En tant qu'équipe technique, nous devons mettre en place TestContainers pour tests d'intégration avec PostgreSQL.

3.11 Epic 11 - Accessibilité et UX (Compléments)

User Stories

US-110 : En tant qu'utilisateur en situation de handicap, je veux naviguer l'application au clavier pour l'accessibilité.

US-111 : En tant qu'utilisateur, je veux basculer entre thème clair/sombre pour confort visuel.

US-112 : En tant qu'utilisateur mobile, je veux accéder aux fonctionnalités essentielles en mode responsive.

US-113 : En tant que nouvel utilisateur, je veux suivre un onboarding guidé pour découvrir l'application.

Technical Stories

TS-090 : En tant qu'équipe technique, nous devons garantir la conformité WCAG 2.1 AA pour accessibilité.

TS-091 : En tant qu'équipe technique, nous devons optimiser les performances frontend (temps de chargement < 3s).


4. Cycle de Vie, Mise en Production et Maintenance

4.1 Cycle de Vie Agile du Développement

  1. Planification (Inception)
    • Rédaction du product backlog initial
    • Priorisation des Epics et Features
    • Définition de la roadmap et des releases
    • Constitution de l'équipe et attribution des rôles.
  2. Développement Itératif (Construction)
    • Sprints de 2-3 semaines
    • Découpage des stories en tâches
    • Développement, tests, code review
    • Intégration continue via GitLab CI/CD
    • Démonstration en Sprint Review.
  3. Lancement (Transition)
    • Déploiement en environnement de staging
    • Tests d'acceptation utilisateur (UAT)
    • Migration des données si nécessaire
    • Déploiement en production (blue/green, rolling)
    • Monitoring intensif post-déploiement.
  4. Production (Exploitation)
    • Surveillance continue (Prometheus, Grafana, ELK)
    • Recueil des feedbacks utilisateurs
    • Hotfixes en cas d'incidents critiques
    • Mises à jour de sécurité.
  5. Amélioration Continue (Évolution)
    • Analyse des métriques d'usage
    • Priorisation des évolutions et nouvelles features
    • Rétrospectives d'amélioration process
    • Refactoring et réduction dette technique.

4.2 Stratégie de Déploiement

  • Frontend (Angular)
    • Blue/Green Deployment : deux environnements identiques, bascule instantanée
    • Zero-downtime
    • Rollback immédiat en cas de problème
  • Backend (Spring Boot)
    • Rolling Deployment : mise à jour progressive des instances
    • Health checks avant bascule de trafic
    • Stratégie de rollback automatisée
  • Base de données
    • Migrations Flyway versionnées et testées
    • Stratégie backward-compatible (additive changes)
    • Backup avant chaque migration majeure.

4.3 Supervision et Monitoring

  • Métriques applicatives (promtail + loki + Grafana)
    • Temps de réponse API
    • Taux d'erreur (4xx, 5xx)
    • Throughput (requêtes/sec)
    • Nombre d'utilisateurs actifs
    • Vélocité des sprints (métrique métier)

4.4 Sauvegardes et Reprise

  • Sauvegardes quotidiennes automatisées (PostgreSQL + fichiers)
  • Rétention 30 jours minimum
  • Tests de restauration mensuels
  • Documentation des procédures de rollback

5. Planification et Priorisation du Backlog

5.1 Méthodologie de Priorisation

Pour garantir un développement efficace et structuré, nous utilisons une approche combinée de priorisation:[^2][^3][^1]

  1. MoSCoW (Must have, Should have, Could have, Won't have)
  2. Dépendances techniques (Technical Debt Priority)
  3. Valeur métier (Business Value vs Effort)

5.2 Releases et Sprints Planifiés

Release 0 - Infrastructure et Fondations (Sprints 0-2)

Objectif: Mettre en place l'environnement technique et les fondations applicatives

Sprint 0 (2 semaines) - Setup Infrastructure

ID Type Titre Priorité Points Dépendances
TS-100 TS Configuration Spring Boot Must-Have 5 -
TS-101 TS Configuration Angular 17 Must-Have 5 -
TS-102 TS Docker Compose local Must-Have 8 TS-100, TS-101
TS-103 TS Migrations Flyway initiales Must-Have 5 TS-100
TS-104 TS GitLab CI/CD Pipeline Must-Have 8 TS-100, TS-101

Total Sprint 0: 31 points

Sprint 1 (2 semaines) - Authentification et Sécurité

ID Type Titre Priorité Points Dépendances
TS-001 TS Authentification JWT Must-Have 13 TS-103
TS-002 TS Spring Security RBAC Must-Have 8 TS-001
TS-004 TS Chiffrement données sensibles Must-Have 5 TS-001
US-005 US Connexion email/OAuth2 Must-Have 8 TS-001, TS-002
US-006 US Réinitialisation mot de passe Should-Have 5 TS-001

Total Sprint 1: 39 points

Sprint 2 (2 semaines) - Administration Utilisateurs

ID Type Titre Priorité Points Dépendances
US-001 US Création compte utilisateur Must-Have 5 US-005
US-002 US Modification utilisateur Must-Have 3 US-001
US-003 US Désactivation compte Must-Have 3 US-001
US-004 US Mise à jour profil Must-Have 5 US-005
US-007 US Logs d'audit Should-Have 5 US-001
US-008 US MFA (2FA) Could-Have 8 US-005
TS-105 TS Prometheus/Grafana setup Should-Have 8 TS-104

Total Sprint 2: 37 points


Release 1 - MVP Gestion Produit et Backlog (Sprints 3-6)

Objectif: Livrer les fonctionnalités core de gestion de produit agile

Sprint 3 (2 semaines) - Gestion Produit

ID Type Titre Priorité Points Dépendances
US-010 US Création produit agile Must-Have 5 US-001
US-011 US Constitution équipe Must-Have 5 US-010
US-012 US Modification équipe Must-Have 3 US-011
US-013 US Liste produits affectés Must-Have 3 US-010
US-014 US Archivage produit Should-Have 3 US-010
TS-010 TS Hiérarchie Epic>Feature>Story Must-Have 13 US-010

Total Sprint 3: 32 points

Sprint 4 (2 semaines) - Backlog Management (Partie 1)

ID Type Titre Priorité Points Dépendances
US-020 US Création Epic Must-Have 5 TS-010
US-021 US Création Feature Must-Have 5 US-020
US-022 US Création User Story Must-Have 5 US-021
US-023 US Création Technical Story Must-Have 5 US-021
US-024 US Critères d'acceptation Must-Have 3 US-022
US-025 US Priorisation drag \& drop Should-Have 8 US-020
TS-011 TS Optimisation SQL/pagination Should-Have 8 TS-010

Total Sprint 4: 39 points

Sprint 5 (2 semaines) - Backlog Management (Partie 2)

ID Type Titre Priorité Points Dépendances
US-026 US Vues multiples backlog Must-Have 8 US-020
US-027 US Commentaires et PJ Must-Have 5 US-022
US-028 US Filtrage et recherche Must-Have 8 US-020
US-029 US Création Defects Must-Have 5 US-020
US-030 US Création Spikes Should-Have 5 US-020
TS-012 TS Recherche full-text Should-Have 8 US-028

Total Sprint 5: 39 points

Sprint 6 (2 semaines) - Planning Poker

ID Type Titre Priorité Points Dépendances
TS-020 TS WebSocket temps réel Must-Have 13 TS-001
US-040 US Création session Planning Poker Must-Have 8 TS-020
US-041 US Vote anonyme Must-Have 5 US-040
US-042 US Configuration échelles Should-Have 3 US-040
US-043 US Révélation simultanée Must-Have 5 US-041
US-044 US Chat intégré Should-Have 5 US-040
US-045 US Historique sessions Should-Have 3 US-040

Total Sprint 6: 42 points


Release 2 - Sprints et Cérémonies (Sprints 7-10)

Objectif: Gestion complète des sprints et ceremonies agiles

Sprint 7 (2 semaines) - Sprint Management

ID Type Titre Priorité Points Dépendances
US-050 US Création Release Must-Have 5 US-010
US-051 US Création Sprint Must-Have 8 US-050
US-052 US Définition Sprint Goal Must-Have 3 US-051
US-053 US Sélection stories sprint backlog Must-Have 8 US-051
US-054 US Décomposition en tâches Must-Have 5 US-053
TS-030 TS Calcul vélocité auto Should-Have 5 US-051
TS-031 TS Génération burndown/burnup Should-Have 8 US-051

Total Sprint 7: 42 points

Sprint 8 (2 semaines) - Board Kanban et Suivi

ID Type Titre Priorité Points Dépendances
US-055 US Board Kanban drag \& drop Must-Have 13 US-053
US-056 US Burndown chart Must-Have 8 TS-031
US-057 US Clôture sprint et rapport Must-Have 8 US-051
US-058 US Report stories non terminées Must-Have 5 US-057
TS-032 TS WIP limits configurables Should-Have 5 US-055

Total Sprint 8: 39 points

Sprint 9 (2 semaines) - Cérémonies Agile

ID Type Titre Priorité Points Dépendances
US-070 US Organisation Sprint Planning Must-Have 5 US-051
US-071 US Daily stand-up Must-Have 5 US-051
US-072 US Historique dailies Should-Have 3 US-071
US-073 US Sprint Review Must-Have 5 US-057
US-074 US Rétrospective Must-Have 8 US-057
US-075 US Actions d'amélioration Should-Have 5 US-074
US-076 US Historique rétrospectives Should-Have 3 US-074
TS-040 TS Templates ceremonies Should-Have 5 US-070

Total Sprint 9: 39 points

Sprint 10 (2 semaines) - Dashboard et Reporting

ID Type Titre Priorité Points Dépendances
US-080 US Dashboard produit Must-Have 8 US-050
US-081 US Calendrier événements Must-Have 5 US-077
US-082 US Export rapports PDF/Excel Must-Have 8 US-057
US-077 US Synchro calendrier agile Should-Have 5 US-070
TS-050 TS Cache métriques dashboard Should-Have 5 US-080
TS-051 TS Génération PDF templating Should-Have 8 US-082

Total Sprint 10: 39 points


Release 3 - Collaboration et Intégrations (Sprints 11-13)

Objectif: Fonctionnalités avancées de collaboration et intégrations externes

Sprint 11 (2 semaines) - Notifications et Collaboration

ID Type Titre Priorité Points Dépendances
TS-060 TS Système notifications WebSocket Must-Have 8 TS-020
US-090 US Notifications temps réel Must-Have 5 TS-060
US-091 US Préférences notifications Must-Have 5 US-090
US-092 US Mentions (@) commentaires Must-Have 3 US-027
US-093 US Suivi (watch) story Should-Have 3 US-090
TS-061 TS Emails transactionnels Should-Have 5 US-090
US-083 US Dashboard public stakeholders Could-Have 5 US-080
US-084 US Widgets dashboard personnel Could-Have 5 US-080

Total Sprint 11: 39 points

Sprint 12 (2 semaines) - Intégrations Externes

ID Type Titre Priorité Points Dépendances
TS-070 TS API REST publique OpenAPI Must-Have 8 TS-001
US-100 US Synchro commits Git Must-Have 8 TS-070
US-101 US Import/export backlog CSV Should-Have 5 US-020
US-102 US Intégration Slack Should-Have 5 TS-070
US-103 US Webhooks sortants Should-Have 5 TS-070
TS-071 TS Sécurisation webhooks Should-Have 5 US-103

Total Sprint 12: 36 points

Sprint 13 (2 semaines) - Accessibilité et UX

ID Type Titre Priorité Points Dépendances
TS-090 TS Conformité WCAG 2.1 AA Must-Have 8 TS-101
US-110 US Navigation clavier Must-Have 5 TS-090
US-111 US Thème clair/sombre Must-Have 5 TS-101
US-112 US Responsive mobile Must-Have 8 TS-101
US-113 US Onboarding interactif Should-Have 5 US-005
TS-091 TS Optimisation performances <3s Should-Have 8 TS-101

Total Sprint 13: 39 points


Release 4 - DevOps et Production (Sprints 14-15)

Objectif: Finalisation DevOps, monitoring et mise en production

Sprint 14 (2 semaines) - Monitoring et Observabilité

ID Type Titre Priorité Points Dépendances
TS-082 TS Prometheus métriques Must-Have 5 TS-105
TS-083 TS Dashboards Grafana alerting Must-Have 8 TS-082
TS-084 TS Sauvegarde automatisée Must-Have 8 TS-103
TS-085 TS ELK Stack logs Should-Have 8 TS-082
TS-086 TS Blue/green \& rolling deployment Must-Have 8 TS-104

Total Sprint 14: 37 points

Sprint 15 (2 semaines) - Qualité et Tests

ID Type Titre Priorité Points Dépendances
TS-087 TS Couverture tests 80% Must-Have 13 TS-100
TS-088 TS TestContainers intégration Must-Have 8 TS-087
TS-080 TS Finalisation CI/CD pipelines Must-Have 5 TS-104
TS-081 TS Conteneurisation production Must-Have 8 TS-102

Total Sprint 15: 34 points


5.3 Synthèse de la Planification

Release Sprints Durée Stories Points Total Objectif Principal
Release 0 0-2 6 sem 11 US + 10 TS 107 Infrastructure \& Auth
Release 1 3-6 8 sem 24 US + 5 TS 152 MVP Backlog \& Planning
Release 2 7-10 8 sem 20 US + 6 TS 159 Sprints \& Cérémonies
Release 3 11-13 6 sem 16 US + 4 TS 114 Collaboration \& Intégrations
Release 4 14-15 4 sem 0 US + 8 TS 71 DevOps \& Production

Total: 15 sprints (30 semaines) | 71 US + 33 TS = 104 stories | 603 points