La mise en production peut (devrait) s’effectuer sur des sites pilotes avant généralisation. v- Évaluation de la qualité de la solution. L’utilisation d’un système de gestion de tickets est recommandée pour le suivi des demandes. 3. Livraisons incrémentales – S’assurer que chaque incrément apporte une valeur mesurable. - Qualité totale : Intégrer la démarche qualité à chaque étape (plan qualité, revues, audits).

9.1 Activités classiques

  1. Analyse des besoinsspécifications fonctionnelles (cahier des charges).
  2. Conception généralearchitecture (modules, interfaces).
  3. Conception détailléespécifications des fonctions (contrats d’interface).
  4. Codage (programmation).
  5. Tests unitaires (validation de chaque composant).
  6. Intégration & tests d’intégration (assemblage des modules).
  7. Tests de validation (conformité aux spécifications, scénarios métier).

9.2 Modèles de cycle de vie

Modèle Points forts Points faibles
Cascade Simplicité, documentation complète dès le départ. Rigidité, coûts élevés de retours en arrière.
V‑Model Alignement tests ↔️ conception, détecte tôt les défauts. Même rigidité que la cascade, difficile à adapter aux changements fréquents.
Agile (Scrum, XP) Rapide, itératif, forte participation du client. Nécessite une culture “agile”, gestion du scope plus dynamique.
Environnement Rôle Technologies typiques
Développement (dev) Codage, tests unitaires. Docker, Podman, VS Code, Git.
Intégration / Test (int) Tests d’intégration, validation QA. Docker‑Compose, Kubernetes (minikube), Selenium.
Pré‑production (pre‑prod) Reproduction de la prod, recette client. VM snapshot, Helm charts.
Production (prod) Service en ligne, support. Kubernetes, Helm, monitoring, alerting (Prometheus + Alertmanager).

CI/CD : pipeline automatisé (ex : GitLab CI → build → test → scan security → push image → deploy). Containers : lxc, Docker, Podman simplifient la reproduction d’environnements et accélèrent le déploiement.

9.3.2 Extreme Programming (XP)

Pratique XP Description Valeur ajoutée
Client sur site Représentant client présent en permanence. Décisions rapides, clarification constante.
Planning poker Estimation collective des scénarios. Consensus, visibilité sur le coût.
Intégration continue Chaque modification intégrée immédiatement. Réduction du risque d’intégration massive.
Petites livraisons Release fréquentes (hebdomadaires ou bi‑hebdomadaires). Retour rapide du client, adaptation continue.
Rythme soutenable Pas d’heures supplémentaires systématiques. Qualité du code, bien‑être de l’équipe.
Tests fonctionnels (recette) Scénarios définis par le client, automatisés le plus possible. Validation continue, non‑régression.
Tests unitaires Écrits avant le code (TDD). Code fiable dès le départ.
Conception simple Implémenter uniquement ce qui est demandé. Moins de dette technique.
Métaphores Utilisation d’analogies pour décrire le système. Alignement vocabulaire technique / métier.
Refactoring Amélioration continue du code sans changer le comportement. Maintenabilité, évolutivité.
Appropriation collective Tous peuvent toucher à tout le code. Partage de connaissances, réduction du silo.
Convention de nommage Standards communs (naming, formatage). Cohérence du code base.
Programmation en binôme Deux personnes travaillent ensemble sur le même poste. Qualité, partage de compétences.

Une tâche : activité simple, avec :

  • Entrées (préalables, livrables requis).
  • Ressources (personnes, environnements, outils).
  • Sorties (livrable, livrable pouvant servir d’entrée à d’autres tâches).

Utilisez PERT / MPM pour visualiser les dépendances, Gantt pour planifier, et Kanban (tableau : À faire – En cours – À valider – Terminé) pour le suivi quotidien.

VII. Le découpage d’un projet

Les projets complexes doivent être décomposés en sous-projets, jalonnés, subdivisés en tâches.

VII.1 Le jalonnement

Les jalons (ou milestones) permettent de bien structurer le projet dans le temps. Le jalonnement s’intéresse essentiellement aux résultats de chaque phase (appréciés par le maître d’ouvrage) plus qu’au contenu détaillé.

Exemple de jalonnement :

  1. Jalon d’expression du besoin : validation du cahier des charges.
  2. Jalon de choix de solution : validation de l’architecture retenue.
  3. Jalon de planification : validation du planning détaillé.
  4. Jalon de réalisation : fin du développement.
  5. Jalon de vérification : produit conforme aux spécifications (tests d’intégration).
  6. Jalon de livraison : recette et acceptation par le client.

VII.2 Le découpage en tâches

Une tâche est une activité élémentaire, caractérisée par : - des préalables à sa réalisation (les entrants), - des ressources humaines et matérielles nécessaires à son exécution, - une durée estimée, - les résultats fournis (sortants ou livrables) qui peuvent être les préalables d’autres tâches.

VII.3 Les outils de planification

Plusieurs techniques permettent de matérialiser les dépendances entre tâches et de planifier leur exécution :

Ces outils permettent également de calculer les marges (temps disponible avant retard du projet) et d’identifier les tâches critiques (sans marge).


VIII. Suivi et pilotage du projet

VIII.1 Le rôle du chef de projet

Un chef de projet doit avoir des compétences en gestion de projet, de bonnes capacités relationnelles, ainsi que des connaissances techniques. Il est chargé :

VIII.2 Le suivi de l’avancement

Le chef de projet dispose d’outils collaboratifs pour : - répartir les tâches au sein de l’équipe, - suivre l’avancement du projet (roadmap, tableaux de bord), - comptabiliser les heures passées, - mesurer les écarts entre le prévu et le réalisé.

VIII.3 La mesure des écarts

Le suivi régulier permet de détecter les écarts de : - coût : comparaison budget prévu / dépenses réelles, - délai : comparaison planning prévu / avancement réel, - périmètre : évolution des spécifications par rapport au cahier des charges initial.

Ces écarts doivent être analysés, justifiés et, si nécessaire, donner lieu à des actions correctives.

VIII.4 Le tableau Kanban

Le Kanban est un outil visuel de gestion des tâches, organisé en colonnes représentant les états successifs : - À faire (To Do) - En cours (In Progress) - À valider (To Review) - Terminé (Done)

Il permet de visualiser le flux de travail, d’identifier les goulets d’étranglement et de limiter le travail en cours (WIP — Work In Progress).


IX. Gestion des demandes et des incidents

IX.1 Le système de tickets

Un système de gestion de tickets (ou issue tracker) permet de : - collecter les demandes (incidents, évolutions, questions), - qualifier et prioriser les demandes, - affecter les demandes aux intervenants compétents, - suivre le traitement jusqu’à résolution, - communiquer avec le demandeur (compte rendu).

IX.2 Classification des demandes

Les demandes peuvent être classées selon : - leur nature : incident, demande d’évolution, demande d’information, - leur priorité : critique, haute, moyenne, basse, - leur impact : nombre d’utilisateurs affectés, criticité du processus, - leur périmètre : module ou fonctionnalité concernée.

IX.3 Introduction à ITIL

ITIL (Information Technology Infrastructure Library) est un référentiel de bonnes pratiques pour la gestion des services informatiques. Il définit notamment :

ITIL introduit les notions d’impact (conséquences de l’incident) et de périmètre (étendue des utilisateurs ou systèmes affectés) pour prioriser le traitement.


X. Cycle de vie du logiciel

X.1 Les activités du cycle de vie

X.2 Le cycle en cascade

Hérité du secteur des bâtiments et travaux publics, le cycle en cascade enchaîne les étapes les unes après les autres de manière séquentielle.

Inconvénient : manque de réactivité en cas de retour en arrière ; les erreurs détectées tardivement sont coûteuses à corriger.

X.3 Le cycle en V

Le cycle en V met en correspondance les étapes descendantes (spécification, conception) et montantes (tests), en anticipant les attendus des futures validations : - les tests unitaires sont rédigés au moment de la conception détaillée, - les tests de validation sont définis lors des spécifications.

Cette approche permet de détecter les erreurs plus tôt et de mieux maîtriser la qualité.

X.4 Les méthodes agiles

Les méthodes de développement dites « agiles » visent à accélérer le cycle de vie en développant d’abord une version minimale (MVP — Minimum Viable Product), puis en intégrant les fonctionnalités au fur et à mesure des versions successives (processus itératif).

Elles se justifient par la difficulté du client à définir précisément et exhaustivement ses besoins dès le début du projet. Le terme « agile » fait référence à la nécessité d’adaptation aux changements de spécifications.

En 2001, 17 personnes ont rédigé le Manifeste Agile (agilemanifesto.org), qui privilégie : - les individus et leurs interactions plutôt que les processus et les outils, - un logiciel fonctionnel plutôt qu’une documentation exhaustive, - la collaboration avec le client plutôt que la négociation contractuelle, - l’adaptation au changement plutôt que le suivi d’un plan.


XI. L’Extreme Programming (XP) en pratique

XI.1 Principes fondamentaux

XI.2 Pratiques de développement

XI.3 Travail en équipe

XIII. Environnements et intégration continue

XIII.1 Les environnements

Un projet informatique s’appuie généralement sur plusieurs environnements distincts :

XIII.2 L’intégration continue (CI)

L’intégration continue (Continuous Integration) consiste à fusionner fréquemment les modifications de code dans une branche commune et à déclencher automatiquement : - la compilation du code, - l’exécution des tests automatisés, - la génération de rapports de qualité.

Cette pratique permet de détecter rapidement les régressions et les conflits d’intégration.

XIII.3 Le déploiement continu (CD)

Le déploiement continu (Continuous Deployment) prolonge l’intégration continue en automatisant le déploiement vers les environnements de test, voire de production.

On distingue parfois : - Continuous Delivery : déploiement automatisé jusqu’à la pré-production, mise en production manuelle. - Continuous Deployment : déploiement automatisé jusqu’en production.

XIII.4 La conteneurisation

Les technologies de conteneurisation (Docker, Podman, LXC) permettent de : - isoler les applications et leurs dépendances, - garantir la reproductibilité des environnements, - faciliter le déploiement et la scalabilité.

Un conteneur embarque l’application et toutes ses dépendances, assurant un comportement identique quel que soit l’environnement d’exécution.

V. Conduite du changement

V.1 Les facteurs déclencheurs

Le changement est généralement motivé par :

V.2 Les résistances au changement

La conduite du changement est une opération délicate, notamment lorsque les processus métier sont impactés. Elle peut donner lieu à des résistances :

V.3 Facteurs clés de succès

Pour réussir la conduite du changement :

Étape Action clé Pourquoi
Diagnostic Analyse des impacts (processus, rôle, outils). Identifier les résistances potentielles.
Implication Ateliers de co‑construction, journées de démonstration. Créer du sentiment d’appartenance.
Communication Plan de communication (messages, canaux, fréquence). Aligner attentes et réalité.
Formation Sessions pratiques, e‑learning, “train‑the‑trainer”. Réduire la courbe d’apprentissage.
Déploiement progressif Pilotes, versions bêta, feedback en continu. Bénéficier d’un effet de marketing viral.
Suivi Indicateurs d’adoption, enquêtes de satisfaction. Corriger les écarts avant l’échelle globale.

Principe d’agilité : livrer rapidement des avancées concrètes, célébrer les succès à court terme pour maintenir la motivation.