Commit bf08da1a authored by Fabrice's avatar Fabrice
Browse files

modification fiche agile

parent 1bff3af7
Loading
Loading
Loading
Loading
+49 −55
Original line number Diff line number Diff line
@@ -20,14 +20,14 @@ L'objectif : fournir très tôt un produit exploitable, tout en restant capabl
> **Illustration**  
> ![Diagramme RAD](fiche2-img/image-20211119105951484.png)

### Outils RAD n°1 : Générateurs d'interfaces  
### 1.1. Outils RAD n°1 : Générateurs d'interfaces  
Un générateur d'interfaces crée automatiquement les écrans d'une application à partir d'un modèle de données (tables, champs, types, contraintes).  
- **Entrée** : description structurée du schéma (ex. : `client {nom, email, date_naissance}`)  
- **Sortie** : formulaires de saisie, listes, menus, navigation et thème graphique uniformes.  
- **Avantages** : gain de temps, cohérence visuelle, mise à jour instantanée lorsqu'on modifie le modèle.  
- **Exemples** : *Power Apps* UI Builder, `rails generate scaffold`, modules d'admin Django.

### Outils RAD n°2 : Frameworks low‑code / no‑code  
### 1.2. Outils RAD n°2 : Frameworks low‑code / no‑code  
Plateformes qui permettent de bâtir des applications entières avec très peu ou aucun code.  

| Niveau     | Principes                                                                                     | Quand l'utiliser                                                                                 |
@@ -49,7 +49,7 @@ Plateformes qui permettent de bâtir des applications entières avec très peu o
- *Low‑code* : Microsoft Power Apps, OutSystems, Mendix.  
- *No‑code* : Bubble, AppGyver, Retool.

### Où les générateurs d'interfaces et les plateformes low‑/no‑code s'insèrent‑ils ?
### 1.3. Les générateurs d'interfaces et les plateformes low‑/no‑code dans le processus

| Étape du RAD | Rôle du générateur d'interfaces | Rôle du low‑/no‑code |
|--------------|----------------------------------|----------------------|
@@ -58,14 +58,14 @@ Plateformes qui permettent de bâtir des applications entières avec très peu o
| **Itération & feedback** | Toute modification du schéma (ajout d'un champ, changement de type) entraîne la régénération instantanée des écrans, garantissant que le prototype reste synchronisé avec les besoins. | Les équipes métier peuvent, via l'interface no‑code, ajuster les règles de workflow ou les champs affichés, puis republier le prototype en quelques minutes. |
| **Déploiement** | Le générateur exporte le code front‑end (HTML/CSS/JS) ou un package prêt à être intégré dans l'application finale. | Les plateformes low‑code offrent un déploiement cloud automatisé (one‑click) et la génération d'APIs pour consommer les données côté serveur. |

### Pourquoi combiner RAD avec low‑/no‑code ?
### 1.4. Pourquoi combiner RAD avec low‑/no‑code ?

- **Vitesse** : le temps de mise en place d'un prototype passe de semaines à quelques heures.  
- **Flexibilité** : les changements de spécifications sont immédiatement reflétés dans l'interface, ce qui correspond exactement à l'esprit itératif du RAD.  
- **Implication du client** : les utilisateurs voient rapidement un produit tangible et peuvent fournir des retours concrets, réduisant ainsi le risque d'incompréhension des besoins.  
- **Réduction du coût** : moins de lignes de code à maintenir, moins de ressources de développement dédiées.

### Exemple concret (illustratif)
### 1.5. Exemple concret

1. **Modélisation** : on crée les entités `Produit`, `Facture`, `Client`.  
2. **Générateur d'interfaces** : il produit automatiquement les formulaires d'ajout/modif, les listes paginées et les vues détaillées.  
@@ -76,7 +76,7 @@ Plateformes qui permettent de bâtir des applications entières avec très peu o
**En résumé** : les générateurs d'interfaces et les frameworks low‑/no‑code sont les outils idéaux pour concrétiser la philosophie du RAD — prototype ultra‑rapide, itérations fréquentes, et adaptation continue aux besoins du client. Le RAD ne se limite plus à une simple méthodologie, mais s'appuie désormais sur des plateformes qui automatisent la création d'interfaces et la logique métier.


## 3. eXtreme Programming (XP) – Vue densemble et outils usuels
## 3. eXtreme Programming (XP) – Vue d'ensemble et outils usuels

eXtreme Programming (XP) est une méthode agile conçue pour livrer rapidement un logiciel de haute qualité tout en maintenant une forte implication du client.  

@@ -95,15 +95,15 @@ Elle repose sur **quatre valeurs fondamentales** (communication, simplicité, fe
| Pratique XP                     | Description courte | Outils typiques (exemples) |
|---------------------------------|--------------------|----------------------------|
| **Développement itératif** – cycles de 1 à 2 semaines (sprints courts). | Livrer un incrément fonctionnel à chaque itération. | JIRA, Azure Boards, Trello (gestion du backlog). |
| **Planning Game** (User Stories + Estimations) | Le client priorise les stories, léquipe estime en points. | Planning Poker (online : *PlanningPoker.com*, *Scrum Poker*), Miro (tableau blanc). |
| **Planning Game** (User Stories + Estimations) | Le client priorise les stories, l'équipe estime en points. | Planning Poker (online : *PlanningPoker.com*, *Scrum Poker*), Miro (tableau blanc). |
| **User Stories** (format « As a … I want … so that … ») | Capture concise des besoins. | Confluence, Notion, GitHub Issues. |
| **Test‑Driven Development (TDD)** | Écrire dabord le test, puis le code qui le satisfait. | JUnit/NUnit/PyTest, Jest, Mocha, Cypress (tests dUI). |
| **Test‑Driven Development (TDD)** | Écrire d'abord le test, puis le code qui le satisfait. | JUnit/NUnit/PyTest, Jest, Mocha, Cypress (tests d'UI). |
| **Tests unitaires automatisés** | Vérifient chaque unité de code à chaque build. | JaCoCo (coverage), Istanbul (JS), Coveralls. |
| **Intégration continue (CI)** | Build + tests exécutés à chaque commit. | GitHub Actions, GitLab CI, Jenkins, CircleCI, Azure Pipelines. |
| **Déploiement continu (CD)** | Livraison automatisée vers un environnement de staging ou prod. | Octopus Deploy, AWS CodeDeploy, Heroku pipelines, Netlify. |
| **Refactoring continu** | Améliorer la structure du code sans changer son comportement. | IDEs avec refactoring (IntelliJ, VS Code, Eclipse), SonarQube (qualité). |
| **Pair‑Programming** | Deux développeurs partagent un poste de travail (driver + navigator). | VS Code Live Share, Tuple, CodeTogether, Remote‑SSH. |
| **Collective Code Ownership** | Tout le monde peut modifier nimporte quel morceau de code. | Repos Git centralisés, pull‑request reviews. |
| **Collective Code Ownership** | Tout le monde peut modifier n'importe quel morceau de code. | Repos Git centralisés, pull‑request reviews. |
| **Continuous Design** | Architecture évolutive, diagrammes légers (UML, C4). | PlantUML, draw.io, Structurizr. |
| **Metaphore du système** (simple métaphore partagée) | Un vocabulaire commun pour parler du domaine. | Documentation wiki, Confluence, Notion. |
| **Customer On‑Site** (client présent) | Le client répond aux questions en temps réel. | Slack/Discord channel dédié, Zoom, Teams. |
@@ -112,13 +112,13 @@ Elle repose sur **quatre valeurs fondamentales** (communication, simplicité, fe
| **Simple Design** (YAGNI, KISS) | Ne coder que ce qui est nécessaire maintenant. | Revues de code, linters. |


### 3.2. Cycle typique dune itération XP (1‑2 semaines)
### 3.2. Cycle typique d'une itération XP (1‑2 semaines)

1. **Planning Game** (lundi) – Sélection des stories, estimation en points.  
2. **Développement** – Pair‑programming, TDD, refactoring continu.  
3. **Intégration continue** – Chaque commit déclenche build + suite de tests.  
4. **Daily Stand‑up** (15 min) – Synchronisation, blocages, progrès.  
5. **Release** (vendredi) – Livraison dun incrément fonctionnel à lenvironnement de test ou de démonstration.  
5. **Release** (vendredi) – Livraison d'un incrément fonctionnel à l'environnement de test ou de démonstration.  
6. **Feedback client** – Démo, recueil des remarques, mise à jour du backlog.  

### 3.3. Stack technologique « type XP »
@@ -135,10 +135,10 @@ Elle repose sur **quatre valeurs fondamentales** (communication, simplicité, fe
| **Déploiement** | Helm charts, Terraform (infra‑as‑code) |


### 3.4. Points dattention / bonnes pratiques
### 3.4. Points d'attention / bonnes pratiques

* **Automatiser tout** : chaque changement de code doit déclencher un build + les tests unitaires.  
* **Maintenir la discipline du pair‑programming** : même si léquipe grandit, garder la pratique (alternance régulière des rôles).  
* **Maintenir la discipline du pair‑programming** : même si l'équipe grandit, garder la pratique (alternance régulière des rôles).  
* **Ne jamais négliger la couverture de tests** : viser > 80 % pour garantir la sécurité du refactoring.  
* **Faire participer le client** : même à distance, un canal de communication instantané évite les malentendus.  
* **Planifier les rétrospectives** : identifier les frictions (ex. : trop de dette technique) et ajuster le processus.  
@@ -146,7 +146,7 @@ Elle repose sur **quatre valeurs fondamentales** (communication, simplicité, fe

### 3.5. Résumé

**XP** se distingue par son **focus sur la qualité du code** (TDD, refactoring, pair‑programming) et **sur le feedback continu** (livraisons fréquentes, client présent).  Les **outils modernes** (Git, CI/CD, IDE collaboratifs, tests automatisés) rendent la mise en œuvre dXP plus aisée que jamais.  En combinant ces pratiques avec une **culture déquipe ouverte** et une **communication fluide**, on obtient un rythme de livraison soutenable, une dette technique maîtrisée et une satisfaction client élevée.
**XP** se distingue par son **focus sur la qualité du code** (TDD, refactoring, pair‑programming) et **sur le feedback continu** (livraisons fréquentes, client présent).  Les **outils modernes** (Git, CI/CD, IDE collaboratifs, tests automatisés) rendent la mise en œuvre d'XP plus aisée que jamais.  En combinant ces pratiques avec une **culture d'équipe ouverte** et une **communication fluide**, on obtient un rythme de livraison soutenable, une dette technique maîtrisée et une satisfaction client élevée.

## 4. Scrum

@@ -154,8 +154,6 @@ Scrum est un *framework* (cadre de travail) itératif basé sur des **sprints**

> 📄 Guide officiel : [Scrum Guide 2020 (FR)](https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-French.pdf)



### 4.1. Qui ?

| Rôle               | Mission |
@@ -170,11 +168,11 @@ Scrum est un *framework* (cadre de travail) itératif basé sur des **sprints**

Un **sprint** a une durée de quelques heures à 1 mois (typique : 2 semaines). Voici les étapes de déroulement du processus :
1. **Sprint Planning** – estimation et sélection des stories du backlog.  
2. **Sprint Backlog** – liste des tâches à réaliser pendant le sprint (plan ditération).  
2. **Sprint Backlog** – liste des tâches à réaliser pendant le sprint (plan d'itération).  
3. **Développement** – travail quotidien, souvent en binôme.  
4. **Daily Scrum (Daily Stand Up)** – réunion courte chaque jour pour partager lavancement et les blocages.  
5. **Sprint Review** – démonstration de lincrément réalisé.  
6. **Sprint Retrospective** – analyse du sprint pour saméliorer au suivant.  
4. **Daily Scrum (Daily Stand Up)** – réunion courte chaque jour pour partager l'avancement et les blocages.  
5. **Sprint Review** – démonstration de l'incrément réalisé.  
6. **Sprint Retrospective** – analyse du sprint pour s'améliorer au suivant.  

### 4.3. Quoi (Artefacts clés) ?
On produit les documents suivants.
@@ -200,12 +198,10 @@ On produit les documents suivants.
    - Description  
    - Estimation (points, souvent arbitraires)  
    - Priorité (définie par le PO, modifiable à tout moment)  
    - (Optionnel) Équipe assignée lorsqu’il y a plusieurs équipes.  

    - (Optionnel) Équipe assignée lorsqu'il y a plusieurs équipes.  


- **Sprint Backlog** – tâches sélectionnées pour le sprint.  
- **Increment de produit (livraison)** – version fonctionnelle à la fin du sprint.  
* **Sprint Backlog** – tâches sélectionnées pour le sprint.  
* **Increment de produit (livraison)** – version fonctionnelle à la fin du sprint.  


### 4.4. Jeux sérieux (facilitation)
@@ -218,7 +214,7 @@ On produit les documents suivants.
| Buy a Feature | Priorisation économique | [Buy a Feature](https://lagrandeourse.design/blog/lexique-ux/buy-the-feature/) |
| Speed Boat | Identifier les freins et accélérateurs | [Speed Boat](https://klaxoon.com/communaute/speed-boat-une-methode-agile-a-decouvrir) |

## 4.5. Matrice de compétences (outil daccompagnement)
## 4.5. Matrice de compétences (outil d'accompagnement)

Chaque personne de l'équipe de développement inscrit ses propres compétences dans une matrice. L'intérêt est de fixer qui est expert dans un domaine et qui souhaite apprendre.

@@ -226,7 +222,7 @@ Chaque personne de l'équipe de développement inscrit ses propres compétences
|--------|---------|----------------|
| Maîtrise | 🟢 | Expertise avérée |
| Junior   | 🟡 | Connaissances de base |
| Aucun    | 🔴 | Pas dexpérience |
| Aucun    | 🔴 | Pas d'expérience |

> Exemple visuel :  
> ![Matrice de compétences](fiche2-img/matrice-de-competences-resultats-1-e1510610790303.jpg)  
@@ -234,7 +230,7 @@ Chaque personne de l'équipe de développement inscrit ses propres compétences


### 4.5. Résumé 
Scrum organise le travail autour dun backlog priorisé par le Product Owner, découpé en user stories. Les équipes livrent des incréments fonctionnels à chaque sprint (généralement 2 semaines) en suivant un cycle : planification → daily scrums → revue → rétrospective. La flexibilité du backlog et la collaboration quotidienne (binômes, daily) permettent dajuster rapidement le produit jusquau MVP souhaité.
Scrum organise le travail autour d'un backlog priorisé par le Product Owner, découpé en user stories. Les équipes livrent des incréments fonctionnels à chaque sprint (généralement 2 semaines) en suivant un cycle : planification → daily scrums → revue → rétrospective. La flexibilité du backlog et la collaboration quotidienne (binômes, daily) permettent d'ajuster rapidement le produit jusqu'au MVP souhaité.


## 5. XP vs Scrum 
@@ -247,9 +243,9 @@ Scrum organise le travail autour d’un backlog priorisé par le Product Owner,
  - Gestion du travail via un *backlog* priorisé.  

- **Modèle de produit**  
  - Lincrément de produit livré à la fin de chaque sprint.  
  - L'incrément de produit livré à la fin de chaque sprint.  
  - Le *Product Backlog* (liste ordonnée des besoins).  
  - Le *Sprint Backlog* (travail prévu pour litération).  
  - Le *Sprint Backlog* (travail prévu pour l'itération).  

Scrum est surtout un **cadre organisationnel** : il structure la gestion du projet, mais dit peu de choses sur *comment coder*.

@@ -261,7 +257,7 @@ Scrum est surtout un **cadre organisationnel** : il structure la gestion du proj

- **Modèle de produit**  
  - *User stories* pour exprimer les besoins.  
  - Tests unitaires et dacceptation intégrés au produit.  
  - Tests unitaires et d'acceptation intégrés au produit.  

- **Pratiques techniques clés**  
  - *Pair programming*.  
@@ -271,7 +267,7 @@ Scrum est surtout un **cadre organisationnel** : il structure la gestion du proj

XP est surtout une **méthode technique** : elle précise comment produire du code de qualité.

### 3. Différences et complémentarité
### Différences et complémentarité
- **Scrum** → cadre organisationnel (*qui fait quoi, quand*).  
- **XP** → cadre technique (*comment coder et tester*).  
- Ensemble, ils couvrent à la fois :  
@@ -286,21 +282,21 @@ XP est surtout une **méthode technique** : elle précise comment produire du co
  Chaque carte correspond à une tâche (user story, bug, etc.).  

- **Limites WIP (Work-In-Progress)**  
  On fixe un nombre maximum ditems par colonne, afin déviter les engorgements et de favoriser la fluidité.  
  On fixe un nombre maximum d'items par colonne, afin d'éviter les engorgements et de favoriser la fluidité.  
  Exemple : pas plus de 3 tâches en "In Progress".  

- **Mesure et amélioration continue**  
  - *Lead time* : temps total écoulé entre la demande et la livraison.  
  - *Cycle time* : temps passé réellement en cours de traitement.  
  Ces indicateurs servent à identifier les goulets détranglement et à améliorer le processus.  
  Ces indicateurs servent à identifier les goulets d'étranglement et à améliorer le processus.  

- **Flux tiré (pull system)**  
  Contrairement à Scrum, il ny a pas de sprints fixes.  
  Une tâche est tirée dans la colonne suivante dès quil y a de la capacité, plutôt que poussée par un planning prédéfini.  
  Contrairement à Scrum, il n'y a pas de sprints fixes.  
  Une tâche est tirée dans la colonne suivante dès qu'il y a de la capacité, plutôt que poussée par un planning prédéfini.  

![Kanban](fiche2-img/Kanban_board-elements.webp)

👉 Kanban met laccent sur **la fluidité du flux de travail** et **loptimisation continue**, plus que sur la planification par itérations.
👉 Kanban met l'accent sur **la fluidité du flux de travail** et **l'optimisation continue**, plus que sur la planification par itérations.

> 📚 Ressource : [Kanban – Wikipedia FR](http://fr.wikipedia.org/wiki/Kanban)

@@ -311,9 +307,9 @@ XP est surtout une **méthode technique** : elle précise comment produire du co
- La **visualisation et les limites WIP de Kanban** pour fluidifier le flux.  

### Caractéristiques :
- On garde la **cadence des sprints** (comme en Scrum) pour la planification et linspection régulière.  
- On garde la **cadence des sprints** (comme en Scrum) pour la planification et l'inspection régulière.  
- On adopte le **tableau Kanban** pour mieux visualiser le travail et éviter les surcharges.  
- Les limites WIP permettent didentifier rapidement les blocages.  
- Les limites WIP permettent d'identifier rapidement les blocages.  

### Quand utiliser Scrumban ?
- Dans des contextes où les **priorités changent fréquemment** (projets en environnement instable ou maintenance).  
@@ -324,17 +320,17 @@ XP est surtout une **méthode technique** : elle précise comment produire du co

**DevOps** est avant tout une **culture** et un ensemble de pratiques, visant à rapprocher :
- Les équipes de **développement** (Dev).  
- Les équipes **opérationnelles** en charge de linfrastructure et de la production (Ops).  
- Les équipes **opérationnelles** en charge de l'infrastructure et de la production (Ops).  

### Principes clés :
- **Intégration Continue (CI)**  
  Chaque commit déclenche des builds et des tests automatisés → détection rapide des erreurs.  

- **Déploiement Continu (CD)**  
  Les livrables validés sont automatiquement déployés en production → mise en valeur rapide pour lutilisateur.  
  Les livrables validés sont automatiquement déployés en production → mise en valeur rapide pour l'utilisateur.  

- **Infrastructure as Code (IaC)**  
  Linfrastructure est décrite par du code versionné (ex. Terraform, Ansible, Puppet) → reproductible et auditable.  
  L'infrastructure est décrite par du code versionné (ex. Terraform, Ansible, Puppet) → reproductible et auditable.  

- **Monitoring & Feedback**  
  Mise en place de métriques, logs, alertes, dashboards → boucles de rétroaction courtes pour corriger vite.  
@@ -350,36 +346,34 @@ Le **Lean appliqué au logiciel** reprend les principes du *Toyota Production Sy
1. **Éliminer le gaspillage**  
   Supprimer les activités sans valeur ajoutée (travail inutile, attente, défauts).  

2. **Amplifier lapprentissage**  
   Favoriser lexpérimentation, la revue de code, les feedbacks rapides.  
2. **Amplifier l'apprentissage**  
   Favoriser l'expérimentation, la revue de code, les feedbacks rapides.  

3. **Décider le plus tard possible**  
   Garder de la flexibilité en différant les choix techniques jusquau dernier moment raisonnable.  
   Garder de la flexibilité en différant les choix techniques jusqu'au dernier moment raisonnable.  

4. **Livrer rapidement**  
   Réduire les lots de travail et accélérer les cycles de livraison.  

5. **Responsabiliser léquipe**  
   Donner aux équipes la capacité de prendre des décisions et de sauto-organiser.  
5. **Responsabiliser l'équipe**  
   Donner aux équipes la capacité de prendre des décisions et de s'auto-organiser.  

6. **Construire la qualité à la source**  
   Intégrer les tests et la qualité dès le développement (TDD, CI/CD).  

7. **Optimiser le tout**  
   Penser en termes de système global et non doptimisation locale (éviter de maximiser une seule équipe au détriment du flux global).  
   Penser en termes de système global et non d'optimisation locale (éviter de maximiser une seule équipe au détriment du flux global).  

👉 Lidée centrale est de **maximiser la valeur pour le client** en améliorant en continu le processus de bout en bout.
👉 L'idée centrale est de **maximiser la valeur pour le client** en améliorant en continu le processus de bout en bout.


## 6. Comparaison des méthodes agiles et lean



| Méthode       | Modèle de processus (comment on produit) | Modèle de produit (quoi on produit) | Orientation Processus | Orientation Produit |
|---------------|------------------------------------------|--------------------------------------|------------------------|---------------------|
| **Scrum**     | Sprints, rôles (PO, SM, Dev), cérémonies, backlog priorisé | Incrément de produit, Product Backlog, Sprint Backlog | ★★★★★ | ★★☆☆☆ |
| **XP**        | Cycles courts, feedback client, intégration continue, pratiques collaboratives (pair programming, TDD) | User stories, code testé (TDD), refactoring, standards de code | ★★★☆☆ | ★★★★★ |
| **Kanban**    | Flux visuel (tableau Kanban), limites WIP, flux tiré, amélioration continue via métriques | Cartes de tâches (stories, bugs), suivi jusquà livraison | ★★★★☆ | ★★☆☆☆ |
| **Kanban**    | Flux visuel (tableau Kanban), limites WIP, flux tiré, amélioration continue via métriques | Cartes de tâches (stories, bugs), suivi jusqu'à livraison | ★★★★☆ | ★★☆☆☆ |
| **Scrumban**  | Rituels Scrum + tableau Kanban, gestion en flux avec limites WIP, sprints plus souples | Backlogs Scrum + visualisation Kanban, incréments réguliers | ★★★★☆ | ★★★☆☆ |
| **DevOps**    | CI/CD, automatisation, collaboration Dev/Ops, monitoring et feedback | Logiciel déployé en continu, infrastructure as code, logs/metrics | ★★★☆☆ | ★★★★★ |
| **Lean SW Dev** | Optimisation globale, suppression du gaspillage, décisions tardives, responsabilisation des équipes | Produit livré rapidement, qualité intégrée dès la source, valeur client | ★★★★☆ | ★★★★☆ |
@@ -387,7 +381,7 @@ Le **Lean appliqué au logiciel** reprend les principes du *Toyota Production Sy

### Que retenir ?

- **Choisir le cadre** : en fonction de la taille de léquipe, du degré dincertitude et des exigences de livraison.  
- **Adapter les pratiques** : aucune méthode nest figée ; combinez‑les (ex. : Scrum + Kanban = Scrumban).  
- **Mettre lhumain au centre** : communication, transparence et amélioration continue sont les véritables moteurs du succès.
- **Choisir le cadre** : en fonction de la taille de l'équipe, du degré d'incertitude et des exigences de livraison.  
- **Adapter les pratiques** : aucune méthode n'est figée ; combinez‑les (ex. : Scrum + Kanban = Scrumban).  
- **Mettre l'humain au centre** : communication, transparence et amélioration continue sont les véritables moteurs du succès.