TP2 — Planifier, capaciter et piloter un projet SI orienté data
Modalité : travail individuel.<br> Outils : OpenProject, LibreOffice Calc ou Excel et diagrams.net.
1. Compétences évaluées
À la fin du TP, vous devez être capable de :
- construire une PBS, une WBS et une OBS cohérentes ;
- estimer une charge ascendante et la comparer à une estimation paramétrique ;
- construire un réseau PERT, calculer les marges et identifier le chemin critique ;
- confronter charge, capacité et calendrier ;
- construire une RACI exploitable ;
- replanifier un projet après un changement et documenter la décision.
Le TP reprend les principes de cadrage du TP1, mais utilise un cas indépendant pour évaluer le transfert des méthodes. Le passage du cadrage au pilotage est évalué par la traçabilité des objets, des hypothèses et des décisions, et non par la simple juxtaposition de fichiers. Les identifiants utilisés pour ce transfert sont créés dans le TP2 ; ils ne prétendent pas être des objets du TP1.
2. Cas professionnel
Une collectivité souhaite construire une plateforme analytique pour suivre les incidents de ses bâtiments et préparer un jeu de données destiné à la maintenance prédictive. La première version doit ingérer des événements, contrôler leur qualité, produire une zone analytique et exposer un tableau de bord pour un site pilote.
Données et équipe
- produit complet envisagé : 12 KLOC de services, connecteurs et traitements spécifiques ;
- équipe de six rôles : data product owner, data engineer, data analyst, data scientist, DevOps et data steward qualité ;
- capacité maximale : 15 j.h par personne et par mois, soit 90 j.h par mois pour l’équipe complète ;
- calendrier de planification : jour 1 = lundi 2 mars 2026, du lundi au vendredi, sans jours fériés simulés, avec 20 jours ouvrés par mois ;
- les dates sont fictives, mais cette même convention doit être utilisée dans le calcul manuel et dans OpenProject.
Le fichier data/incidents_batiments.csv est synthétique et ne représente pas
les incidents réels de la collectivité.
Hypothèses imposées pour la comparaison
- la réserve de management est fixée à 15 % de la charge initiale ;
- l’effort COCOMO est exprimé en mois-personnes ;
- pour convertir en jours-homme, utilisez 20 j.h par mois-personne ;
- la réserve est présentée séparément de la charge initiale ;
- tout changement doit être évalué sur le délai, la charge, la capacité, le périmètre, la qualité et le risque.
Périmètre et repères de cohérence
Le chiffre de 12 KLOC représente le produit complet envisagé. Les charges des sept lots représentent le pilote data utilisé dans ce TP ; elles ne décrivent donc pas nécessairement la totalité du produit de 12 KLOC. Cette distinction doit apparaître dans le README de remise et dans la comparaison COCOMO.
Repères de contrôle non notés : la somme des charges initiales est de 139 j.h, la réserve de 15 % vaut 20,85 j.h et la charge planifiée vaut 159,85 j.h. Avec six personnes à 15 j.h par mois, cette charge représente environ 1,78 mois d’équipe. Le résultat COCOMO doit être comparé à ces valeurs, expliqué et non transformé automatiquement en engagement.
3. Contrôle qualité du fichier d’incidents
Conservez le fichier original et créez une feuille controle_qualite avec les
colonnes ID, champ, règle, résultat, impact, action, responsable,
statut, preuve.
| Règle | Critère attendu |
|---|---|
category |
valeur non vide |
severity |
entier compris entre 1 et 4 inclus |
resolution_hours |
valeur présente pour un incident fermé ; valeur positive si présente |
| doublon métier | unicité de (batiment,date,category,severity,resolution_hours,status) en ignorant incident_id |
status |
open ou closed |
Repérez les anomalies, expliquez leur impact sur le planning ou la qualité et
proposez une action. Distinguez les erreurs bloquantes des exceptions
surveillées : l’absence de resolution_hours pour I-005, dont le statut est
open, est conforme à la règle conditionnelle mais doit rester suivie jusqu’à
la clôture. Une anomalie ne doit pas être masquée par une suppression
silencieuse.
4. Conventions de pilotage
Utilisez les conventions communes suivantes, également valables pour le TP1 :
- OpenProject est le point d’entrée du pilotage opérationnel ;
- Calc/Excel est utilisé pour les calculs manuels et les registres ;
- diagrams.net est utilisé pour les PBS, OBS, WBS et PERT ;
- les statuts sont
Nouveau,En cours,À valider,Bloqué,Terminé; - les marqueurs sont
[LOT],[JALON],[CHANGEMENT]et[QUALITE]; - les activités utilisent aussi le marqueur
[ACT]et un code stable (AàI) ; - dans OpenProject, l’effort est saisi dans le champ Travail en heures, avec la
convention 1 j.h = 8 h ; si ce champ n’est pas disponible, créez un champ
personnalisé
Effort (j.h)et signalez-le dans le README ; - chaque objet de pilotage important possède un responsable, un statut, une preuve et un identifiant stable ; les lots parents peuvent servir de conteneurs sans pièce jointe propre ;
- le calcul manuel reste la référence de vérification ; le planning OpenProject doit être cohérent avec lui ou expliquer toute différence ;
- si OpenProject n’est pas disponible, reproduisez la hiérarchie et les relations dans Calc, fournissez une preuve de substitution et signalez la limitation.
Consultez également templates/conventions-openproject.md et
templates/openproject-checklist.md.
Si OpenProject n’est pas encore installé, utilisez le Kit Docker OpenProject attaché aux ressources complémentaires du module. Le guide fournit le fichier Compose, la version de l’image, la persistance des données et la procédure de repli hors ligne.
5. Missions et checkpoints
Mission 1 — Installer le pilotage et qualifier les données
Créez un projet OpenProject nommé Plateforme incidents — TP2. Configurez les
vues Liste, Tableau et Gantt, puis ajoutez les membres de l’équipe avec un rôle.
Créez un lot [QUALITE] pour le fichier d’incidents.
Appliquez les cinq règles de qualité. Ajoutez une proposition de traitement, un responsable, un statut et une preuve pour chaque anomalie. Conservez le fichier original inchangé.
Checkpoint 1 : une personne extérieure peut retrouver le projet, les rôles, les règles de qualité, les anomalies et leurs preuves sans modifier le CSV.
Mission 2 — Construire le périmètre, le travail et les responsabilités
Dans diagrams.net :
- produisez une PBS de niveau 2 représentant les produits et services livrés ;
- produisez une WBS d’au moins huit lots, avec livrable et condition de fin ;
- produisez une OBS représentant l’équipe et les responsabilités externes.
Dans OpenProject, reproduisez la WBS par une hiérarchie parent-enfant et
affectez un responsable aux lots. Construisez une RACI couvrant au minimum :
priorisation, architecture, ingestion, transformations, tests, exposition et
décision de mise en production. Vérifiez un seul A et au moins un R par
activité.
Checkpoint 2 : les produits de la PBS, le travail de la WBS et les acteurs de l’OBS ne sont pas confondus ; les responsabilités sont retrouvables dans OpenProject et dans la RACI.
Ajoutez un tableau de correspondance obligatoire comportant au minimum les
colonnes ID_PBS, ID_WBS, Code_PERT, ID_OpenProject, livrable,
responsable et condition_de_fini. Chaque activité PERT doit être retrouvée
dans la WBS et dans OpenProject ; une activité sans correspondance doit être
justifiée dans le README.
Mission 3 — Estimer, comparer et capaciter
Utilisez les charges initiales suivantes :
| Lot | Charge initiale |
|---|---|
| Sources et exigences data | 18 j.h |
| Architecture stockage et orchestration | 15 j.h |
| Ingestion et transformations | 32 j.h |
| Modèle analytique et tableau de bord | 18 j.h |
| Qualité, observabilité et lignage | 20 j.h |
| Tests et corrections | 24 j.h |
| Documentation et déploiement pilote | 12 j.h |
| Total | à calculer |
Calculez le total, la réserve de 15 % et la charge planifiée. Expliquez au moins deux incertitudes qui justifient la réserve.
Appliquez ensuite le modèle COCOMO :
Effort = 2,4 × KLOC^1,05
Durée = 2,5 × Effort^0,38Indiquez les unités, les arrondis, le nombre de jours-homme équivalent et au moins deux raisons possibles de l’écart avec l’estimation ascendante. Expliquez pourquoi le résultat ne doit pas être transformé automatiquement en engagement contractuel.
Répartissez d’abord la baseline de 139 j.h par activité PERT, lot d’origine,
responsable et mois en utilisant templates/allocation-activites-template.csv.
Dans cette baseline, la somme des efforts affectés doit être exactement 139 j.h
et le sous-total de chaque lot doit être égal à sa charge initiale fournie.
Reportez ces sous-totaux et leurs écarts dans templates/estimation-template.csv.
Consolidez ensuite cette allocation dans templates/capacite-template.csv, puis
comparez chaque mois la charge de chaque personne à sa limite de 15 j.h. Signalez
toute surcharge et proposez une réaffectation, un décalage, une réduction de
périmètre ou une réserve consommée. Ajoutez des lignes au modèle lorsqu’une
activité est répartie entre plusieurs lots, responsables ou mois ; ne dupliquez
pas un même effort dans deux lignes.
Conservez cette baseline comme référence. L’option 1 (attendre la source)
conserve 139 j.h et modifie principalement le calendrier. Pour l’option 2,
copiez la baseline dans un onglet ou un fichier séparé, ajoutez une ligne
CHG-01 — Rapprochement source principale/secondaire de 4 j.h, puis
recalculez la capacité et la comparaison. L’effort direct de l’option 2 est donc
143 j.h = 139 j.h + 4 j.h. Les 4 j.h ne doivent ni être inclus dans le
contrôle de la baseline, ni être ajoutés une seconde fois. La réserve de 15 % de
la baseline reste affichée séparément ; toute consommation ou augmentation de
réserve doit être justifiée dans la comparaison des scénarios.
Checkpoint 3 : les charges initiales, la réserve, COCOMO et la capacité sont recalculables ; tout dépassement de capacité entraîne un arbitrage explicite.
Dans le tableau de remise, indiquez séparément la charge initiale, la réserve, la charge planifiée, la capacité disponible et l’écart. Une ligne « produit complet / pilote » doit expliquer l’écart d’échelle avec COCOMO.
Mission 4 — Construire et valider le planning
Utilisez les activités suivantes, en jours ouvrés :
| Code | Activité | Durée | Antécédents |
|---|---|---|---|
| A | Cadrage data détaillé | 3 | — |
| B | Exigences et inventaire des sources | 5 | A |
| C | Architecture data | 4 | A |
| D | Modèle analytique et transformations | 5 | B et C |
| E | Développement des pipelines | 10 | D |
| F | Règles de qualité et observabilité | 6 | C |
| G | Tests de données et tableau de bord | 5 | E et F |
| H | Documentation et formation | 3 | E |
| I | Pilote data | 2 | G et H |
Calculez les dates au plus tôt, les dates au plus tard, les marges totales et le chemin critique. Utilisez la convention imposée : le projet commence le lundi 2 mars 2026, le début est au jour ouvré 1, une activité de 3 jours finit au jour 3 et l’activité suivante commence au jour 4. Configurez le même calendrier dans OpenProject, sans contrainte de date supplémentaire ni décalage manuel.
Saisissez les neuf activités [ACT] dans OpenProject avec durée, effort,
responsable, antécédents et jalons. Comparez le Gantt OpenProject avec votre
calcul manuel et expliquez tout écart dans le tableau de correspondance.
Checkpoint 4 : le chemin critique, les marges, les responsables et les dépendances sont cohérents entre le tableau de calcul, le schéma et OpenProject.
Repère de contrôle : avec les durées et antécédents fournis, le chemin critique
initial attendu est A → B → D → E → G → I, pour une durée de 30 jours ouvrés.
Une différence est acceptable si la convention est documentée et si les trois
supports sont cohérents entre eux.
Mission 5 — Traiter le changement et décider
La source principale nécessaire à l’activité B sera livrée trois jours ouvrés
en retard après le démarrage du projet. Dans la baseline, B commence au jour 4 ;
avec le changement, sa disponibilité est repoussée au jour 7. Créez un élément
[CHANGEMENT] et :
- identifiez les tâches, lots et exigences affectés ;
- comparez au minimum les deux options suivantes : attendre la source et décaler le planning, ou utiliser un extrait/source secondaire disponible au jour 4, couvrant les mêmes champs, puis réaliser un rapprochement de 4 j.h à la réception de la source principale ;
- mettez à jour le Gantt et le chemin critique pour chaque option ;
- comparez délai, charge, capacité, qualité, périmètre et risque ; pour l’option 2, faites apparaître séparément les 139 j.h de baseline, les 4 j.h de delta et le total direct de 143 j.h ;
- nommez le décideur et consignez la décision retenue ;
- indiquez le risque résiduel, le responsable et la date de réexamen.
Pour rendre l’option 2 reproductible, modélisez CHG-01 — Rapprochement source principale/secondaire comme une activité de changement hors du réseau PERT de
la baseline, planifiée aux jours 7 et 8 à raison de 2 j.h par jour, en parallèle
de B. La source principale étant disponible au jour 7, le rapprochement démarre
dès sa réception. Il consomme 4 j.h de capacité, mais ne prolonge pas la fin au
jour 30 si la condition de qualité et la capacité sont respectées.
Ajoutez à l’élément de changement les versions avant/après du planning, les
preuves de calcul et la décision retenue. Reliez l’élément [CHANGEMENT] à
l’élément [QUALITE] par une relation OpenProject ou, à défaut, par leurs IDs
explicitement reportés dans les deux descriptions. Le contrôle qualité conserve
son propre responsable, état, date de résolution et lien vers la preuve.
Réalisez enfin une courte note de transfert des méthodes : reliez trois objets
du TP2 — une exigence REQ-T2-*, un risque RISK-T2-* et un livrable DEL-T2-*
— à des activités de planification ou de contrôle. Utilisez le modèle
templates/transfert-methodes-template.csv et fournissez au moins trois lignes
complètes. Cette note vérifie le transfert de la méthode, sans inventer des
références à des objets réellement produits dans le TP1.
Utilisez la fiche templates/changement-template.md et joignez une comparaison
avant/après comportant au minimum : date de fin, chemin critique, charge,
capacité, périmètre, qualité et risque résiduel. Conservez le planning initial
comme baseline ou fichier séparé avant de modifier le planning après changement.
Checkpoint 5 : le changement est enregistré, deux options sont comparées, le planning est réellement replanifié, une décision est prise et le risque résiduel est suivi avec un responsable et une date de réexamen.
6. Remise attendue
Déposez NOM_PRENOM_TP2.zip :
NOM_PRENOM_TP2/
├── 00-README-remise.pdf
├── 01-openproject-planning.pdf
├── 02-estimation-capacite.xlsx et .pdf
├── 03-cocomo-pert-capacite.xlsx et .pdf
├── 04-raci-controle-qualite.xlsx et .pdf
├── 05-structures-projet.pdf
├── 06-changement-et-transfert.pdf
├── 07-preuves/
└── 08-sources/Le README indique les outils, versions, convention de calendrier, hypothèses,
limites, tableau de correspondance et différences entre calcul manuel et
OpenProject. Les sources éditables de PBS, WBS, OBS et PERT sont regroupées dans
08-sources/. Vous pouvez partir du modèle templates/README-remise-template.md.
7. Checklist avant remise
- La somme des lots, la réserve et la charge planifiée sont explicites.
- Les unités COCOMO et les arrondis sont indiqués.
- Chaque activité PERT a une durée, un antécédent et un responsable.
- Chaque activité PERT possède une allocation d’effort et une ligne dans la table de correspondance.
- Les marges et le chemin critique sont visibles sur le schéma.
- La capacité est comparée par personne et par mois.
- La somme des allocations de la baseline est exactement de 139 j.h.
- Le sous-total baseline alloué à chaque lot correspond à sa charge initiale et l’écart est nul.
- L’option 1 conserve 139 j.h et décale le calendrier ; l’option 2 présente 139 j.h de baseline, 4 j.h de delta et 143 j.h d’effort direct total.
- Le changement entraîne une vraie mise à jour du planning.
- Les deux options de changement sont comparées sur six dimensions.
- La comparaison avant/après indique la date de fin, le chemin critique, la charge, la capacité, la qualité et le risque résiduel.
- Le planning initial est conservé comme baseline ou fichier séparé.
- Le contrôle du CSV est relié à un lot OpenProject et à une preuve.
- L’élément
[CHANGEMENT]référence explicitement l’élément[QUALITE]. - Les cinq checkpoints sont démontrés dans les fichiers remis.
- La note de transfert contient au moins trois correspondances complètes.
- Les identifiants de transfert sont créés dans le TP2 et ne renvoient pas à des objets inexistants du TP1.
- L’archive s’ouvre sans chemin absolu ni fichier enseignant.