Gestion de Projet
Gestion de Projet
1. Développement………………………………………………………………………………………………………………………………………………15
2. Collaborer……………………………………………………………………………………………………………………………………………………….15
3. Recette……………………………………………………………………………………………………………………………………………………………16
4. Tests unitaires………………………………………………………………………………………………………………………………………………. 16
5. Test
d‟ intégration………………………………………………………………………………………………………………………………………….. 16
6. Livraison…………………………………………………………………………………………………………………………………………………………17
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Un cahier des charges est un document qui explique les besoins et les attentes du client. Ce dernier le rédige et l‟ envoie à
la personne qui réalisera le projet : prestataire externe, agence ou développeur en interne. Le plus souvent, le prestataire
externe questionne le client sur le cahier des charges pour être sûr d‟ avoir bien compris les attentes de son client. Le
cahier des charges peut être modifié en conséquence afin d‟ y indiquer le budget, les contraintes éventuelles et les
deadlines.
Quand les deux parties sont d‟ accord sur le contenu, elles signent un contrat qui se base sur le cahier des charges. C‟ est
pourquoi un cahier des charges est dit contractuel. Le client peut se retourner contre le prestataire si ce dernier n‟ a pas
réalisé ses engagements. À l‟ inverse, le prestataire peut poursuivre le client s‟ il ne respecte pas les conditions de
paiement.
Le cahier des charges : un socle !
Prenons un exemple. Disons que vous et moi travaillons dans une agence spécialisée dans les projets digitaux, Miroir Noir. La
startup Pur Beurre vient de nous contacter :
De : colette@[Link]
A : hey@[Link]
Objet : Plateforme pour amateurs de Nutella
Bonjour,
Nous sommes une jeune startup et nous aimerions réaliser une plateforme web pour nos clients. Ils viennent régulièrement
dans le restaurant que nous avons fondé il y a quelques années, à Montmartre, et nous aimerions leur proposer un service
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
3
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
complémentaire : Pur Beurre. Cette plateforme permettra à nos clients de manger mieux en leur proposant un substitut plus
sain à l‟ aliment qu‟ ils auront proposé. Autrement dit, quand Jean-Philippe entrera “Nutella”, notre gentil robot lui proposera
une “pâte aux noisettes et au sucre de Cannes”.
Vous trouverez plus de détails dans le cahier des charges en pièce-jointe.
Je reste à votre disposition pour de plus amples détails.
Cordialement,
Colette Tatou
Ce cahier des charges est assez succinct mais ce n'est pas toujours le cas. Les plus grands projets font l‟ objet d‟ un cahier
des charges bien plus détaillé et approfondi, notamment lorsqu‟ il s‟ agit d‟ une entreprise publique qui est soumise aux
appels d‟ offres. Dans le cahier des charges d‟ un grand projet, nous retrouvons en général ces quatre parties :
• Contexte. Genèse du projet, objectifs, responsables. Procédures de validation, … Besoins fonctionnels,
techniques et organisationnels, ainsi que les contraintes.
• Prestations et livrables attendus.
• Contexte de la réponse. Planning de l‟ appel d‟ offres, règles de sélection, … C‟ est surtout important dans le
cadre d‟ un appel d‟ offres.
Le cahier des charges peut également inclure les spécifications fonctionnelles et techniques (dont nous parlerons dans le
prochain chapitre). Cela dépend des projets !
Après un premier rendez-vous fructueux, nous nous sommes mis d‟ accord sur un budget et avons signé le cahier des
charges. Il est temps de passer à l‟ étape suivante : la planification du projet !
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
4
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Il existe deux grandes familles de méthodologies de projet : celles dites séquentielles et les méthodes agiles. Découvronsles
rapidement dans les deux prochains chapitres !
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
5
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Un projet informatique est développé conjointement par deux équipes : la maîtrise d‟ ouvrage et la maîtrise d‟ oeuvre.
• La maîtrise d’ouvrage (MOA) est le client ou le représentant des utilisateurs. Si nous faisons un parallèle avec une
maison, ce serait la personne qui passe commande. « Je veux une maison jaune avec un toit rouge et un lutin qui
hoche la tête béatement ».
• La maîtrise d’œuvre (MOE) sera l‟ équipe chargée de réaliser la vision de la maîtrise d‟ ouvrage. Face à la
demande précédente, elle répondra certainement « Nous utiliserons de la brique et une dalle en béton. La peinture
sera sans ammoniaque. Quant au lutin… Ce n‟ est pas vraiment de notre domaine, désolé ».
Il arrive parfois que le client ne soit pas formé en gestion de projet et qu‟ il fasse appel à des prestataires dont c‟ est le
métier. Nous parlons alors d‟ assistance à maîtrise d’ouvrage (AMOA).
Bien. Nous savons un peu mieux qui intervient sur le projet. Voyons maintenant les différentes phases et les documents
produits.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
6
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Une fois que les spécifications fonctionnelles sont écrites, la maîtrise d‟ oeuvre écrit les spécifications techniques et
conçoit l‟ architecture globale de l‟ application.
À la différence des spécifications fonctionnelles, qui se concentrent sur l‟ utilisation de l‟ application, les spécifications
techniques ont pour objectif de définir le cadre technique du projet. Plus ou moins poussées, elles seront une base de
travail solide pour les développeurs.
Dans le cas de Pur Beurre, les spécifications techniques auront, par exemple, une partie sur la recherche. “La
recherche se fera via l‟ API Open Food Facts qui renvoie des réponses en JSON. La documentation de l‟ API est disponible
à cette adresse.”
En parallèle, le chef de projet technique conçoit l‟ architecture en s‟ aidant de diagrammes UML. Une validation est réalisée
par le client et le chef de projet fonctionnel.
d) Etape 4 : recette
La dernière phase a pour objectif de vérifier que l’application fonctionne comme il se doit. Des tests manuels peuvent être
effectués mais, en règle générale, nous préférons utiliser les pouvoirs de l‟ informatique pour automatiser au maximum ces
vérifications. Nous utilisons notamment des tests unitaires.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
7
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Chaque test unitaire a pour but de vérifier qu‟ une partie de l‟ application produit bien le résultat attendu quand un
certain événement a lieu. Nous pouvons vérifier, par exemple, que le formulaire n‟ est pas envoyé si l‟ utilisateur n‟ a pas
renseigné son prénom. Automatiser les tests fait gagner beaucoup de temps !
Puis le maître d‟ ouvrage réalise des tests de recette, c‟ est-à-dire qu‟ il va tester manuellement que l‟ application
correspond à ce qui a été demandé.
Une méthodologie de projet séquentielle permet de réaliser ces phases les unes après les autres dans un ordre
chronologique. L‟ objectif de chaque phase est avant tout un document à remettre, plus que des fonctionnalités. Le logiciel
n‟ est testé qu‟ à la fin et le client commence à voir les résultats du travail de préparation parfois plusieurs mois après le
démarrage du projet.
Un projet séquentiel est à suivre point par point !
Non, bien entendu, mais vous le saviez déjà ! Les méthodologies de projet agiles sont justement apparues pour résoudre
ces problèmes.
Une méthode agile est une approche itérative et incrémentale pour le développement de logiciel, réalisé de manière très
collaborative par des équipes responsabilisées appliquant un cérémonial minimal qui produisent, dans un délai contraint,
un logiciel de grande qualité répondant aux besoins changeants des utilisateurs.
1) Itératif
L‟ itération est le principe de répéter un processus plusieurs fois dans le but d’améliorer un résultat.
Prenons un exemple concret !
Lorsque vous apprenez à faire du vélo, vous commencez par rouler avec les petites roues. Vous savez donc pédaler
seule, c‟ est bien, mais vous prenez de la place et vous n‟ êtes pas très rapide. Vous avez d‟ ailleurs fait un croche-
pattes malheureux à la pauvre Hind en passant près d‟ elle. Vous avez beau lui expliquer que ce n‟ est pas de votre faute
(« ce sont les petites roues ! »), elle vous en veut.
Vos parents vous disent alors que vous feriez moins de malheureux et que vous iriez plus vite sans les petites roues.
Vous recommencez alors avec une seule petite roue. Vous n‟ allez toujours pas assez vite mais, au moins, vous prenez
moins de place en largeur.
Vous tombez, vous vous faites mal mais, quelques écorchures plus tard, vous enlevez l‟ autre petite roue. Le résultat est
presque satisfaisant. Vous continuez le même processus jusqu‟ à être capable de poursuivre les pigeons dans les rues
d‟ Aix en Provence. Ah, la belle vie ! Objectif atteint !
Dans le monde du développement, nous utilisons cette approche pour améliorer une fonctionnalité. Nous sommes
pragmatiques et nous savons bien que rien n‟ est parfait la première fois. Une fonctionnalité a besoin d‟ être testée dans des
conditions réelles pour s‟ adapter à ses utilisateurs et pour révéler des bugs éventuels (la case à cocher n‟ apparaît pas sur
Internet Explorer 5 par exemple ).
2) Incrémental
Adjectif. Qui travaille par incréments ou par comptage d‟ impulsions. (Petit Larousse)
Un processus incrémental permet de construire un produit petit à petit en le découpant en pièces détachées. Elles sont le
plus souvent indépendantes les unes des autres mais ont pour caractéristiques d‟ améliorer le produit.
Reprenons l‟ exemple du vélo. À quoi sert-il ? À se déplacer. Nous pouvons par conséquent découper la conception du vélo en
plusieurs sous-produits :
• Un monocycle. L‟ utilisateur se déplace mais n‟ a pas une grande maîtrise de la direction.
• Un monocycle avec une roue avant. L‟ utilisateur a une meilleure maîtrise de la direction mais l‟ objet est
encombrant et peu maniable.
• Un vélo avec guidon. L‟ utilisateur maîtrise la direction et l‟ objet est plus compact mais il est plus difficile de
s‟ arrêter car nous sommes penchés en avant.
• Un vélo avec des freins. L‟ utilisateur se déplace avec aisance et peut s‟ arrêter en cas de danger. Objectif
atteint ! Adaptée à l‟ informatique, cette approche incrémentale incite les responsables de produit à se concentrer
sur les fonctionnalités essentielles et les développeurs à mettre en production régulièrement.
3) Adaptatif
Suivre une approche incrémentale et itérative suppose une grande communication avec ses utilisateurs et une certaine
humilité. Votre produit sera d‟ abord très minimaliste et s‟ améliorera en fonction des retours. Puis vous ajouterez de
nouvelles fonctionnalités qui, à chaque étape, feront l‟ objet de modifications.
Une méthode incrémentale et itérative mettra en œuvre les quatre phases vues plus haut (définition, conception, code et
test) pour chaque incrément, donc pour chaque nouvelle fonctionnalité. Le responsable du produit communiquera alors
avec les utilisateurs pour connaître les modifications éventuelles à apporter lors d‟ une itération ultérieure.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
9
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Les intérêts sont multiples. Outre le fait que vous communiquez régulièrement avec vos utilisateurs, vous avez un réel
sentiment de satisfaction. Votre produit s‟ améliore au jour le jour, concrètement, et vous avez l‟ impression de passer
moins de temps à écrire de la paperasse.
Un des principes des méthodes agiles, sur lesquels nous reviendrons plus tard, est le rôle actif de l’équipe produit. Les
membres sont choisis avec soin pour leur complémentarité et leur motivation. Les méthodologies agiles prônent le
Pragmatisme, la simplicité et l‟ efficacité. C‟ est pourquoi chaque membre de l‟ équipe choisit lui-même la tâche sur laquelle
il souhaite travailler et doit être capable de communiquer sur son travail.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
0
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Un cérémonial minimal
L‟ accent est mis sur le produit avant tout et non sur les réunions : un produit bancal qui a pourtant des spécifications
parfaites n‟ en restera pas moins un produit inutilisable.
Produire des fonctionnalités, oui, mais de bonne qualité. C‟ est pourquoi les méthodes agiles insistent sur la collaboration
entre les différentes parties prenantes du projet. Les réunions sont conservées mais tout est mis en œuvre pour qu‟ elles
soient le plus efficaces possible. De même, la collaboration entre développeurs est grandement recommandée à travers de la
programmation en binôme par exemple (“pair programming” en anglais).
Jim Highsmith, un des signataires du Manifeste Agile (que nous verrons en détail plus tard), définit d‟ ailleurs l‟ agilité par
rapport au changement :
L„agilité est la capacité à favoriser le changement et à y répondre en vue de s‟ adapter au mieux à un environnement
turbulent.
Attention, cela ne veut pas dire qu‟ une équipe agile dira oui à tout le monde et implémentera toutes les fonctionnalités ! Mais
il lui sera plus facile d‟ intégrer des changements et de modifier l‟ ordre de priorité des tâches que dans une équipe qui suit
une approche séquentielle.
Bien ! Vous avez désormais un bon aperçu des deux approches. Entrons maintenant dans le détail ! Nous allons commencer
par les méthodologies de projet séquentielles car les méthodes agiles leurs empruntent certains concepts.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
1
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
a) Présentation
Une spécification fonctionnelle décrit la manière dont un produit fonctionnera, entièrement du point de vue de l‟ utilisateur.
Ici nous ne parlons pas de technique mais bien de fonctionnalités.
Quel menu ?
Quel écran s‟ affiche lorsque notre utilisateur entre “Nutella” dans le champ de recherche ?
Elle précise également quels sont les acteurs impliqués dans le projet et leur champ de responsabilité.
b) Contenu
Au même titre qu‟ un cahier des charges, le contenu des spécifications fonctionnelles dépend en grande partie de l‟ auteur.
Néanmoins, toute spécification fonctionnelle devrait contenir les champs suivants :
Un auteur (de préférence unique, le chef de projet de la maîtrise d‟ ouvrage)
Des scénarios utilisateurs,
• Un aperçu sous forme de diagramme,
• Des détails concernant chaque scénario utilisateur.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
2
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Pour Joël Spolsky, le fondateur de Trello et de StackOverFlow (entre autres), les spécifications fonctionnelles sont avant
tout un outil d‟ aide à la décision. Elles doivent décrire tous les scénarios utilisateurs (que se passe-t-il si l‟ utilisateur
oublie son mot de passe ? Ou si la recherche ne donne aucun résultat ?) Afin d‟ aider le plus possible les développeurs. Ces
derniers ne devraient pas se poser de questions sur les fonctionnalités mais se concentrer sur les problématiques
techniques. Cela les aide à être plus performants et allège les allers-retours avec le client.
C‟ est pourquoi Joël ajoute quelques éléments à ses spécifications fonctionnelles :
• Une décharge disant que ce n‟ est pas la version finale de la spec, qu‟ elle évoluera. En effet, il préconise une
évolution constante du document qui suit l‟ avancée du projet. Il s‟ agit d‟ un parti pris qui peut être très
intéressant dans le cadre de projets impliquant peu d‟ intervenants (une dizaine de développeurs).
• Des non-buts : non, nous n‟ allons pas développer cette fonctionnalité. Cela permet de prévenir, en amont,
certaines questions.
• Des questions en suspens : les spécifications étant vues par Joël comme un outil d‟ aide à la décision, il est
important d‟ y inclure les points restés sans réponse ou à tester.
• Des annotations pour certaines équipes : elles seront lues par certaines personnes et ignorées par d‟ autres.
Cela permet de centraliser les questions éventuelles. Par exemple, certaines notes concerneront les rédacteurs de
la documentation ou les développeurs.
À l‟ inverse, les spécifications fonctionnelles des très gros projets seront conséquentes et moins flexibles.
Exemple de Pur Beurre : le cahier des charges contient une partie de ce qui est demandé dans les spécifications
fonctionnelles mais il manque les scénarios utilisateurs et le diagramme. Les spécifications fonctionnelles contiendraient
probablement :
• la présentation du cahier des charges,
les esquisses,
• les maquettes réalisées par un graphiste,
• un diagramme : accueil, mon compte, mes aliments favoris, contact
• des scenarios utilisateurs : Lily met un aliment en favoris, Lily fait une recherche, Lily se connecte à son compte,
Lily se déconnecte, Lily oublie son mot de passe, ...
c) Conseils de rédaction
1. Adaptez-vous à votre audience
Cela peut paraître évident mais vous ne rédigerez pas les mêmes spécifications si votre équipe est composée de 40
développeurs travaillant pour le ministère des finances que si vous officiez chez Google. Ils auront d‟ ailleurs très
certainement un premier document de travail sur lequel vous pourrez vous appuyer.
Votre audience a beau être intelligente, elle n‟ aime pas se poser des questions en lisant vos specs. Pour être efficace,
utilisez des phrases courtes qui représentent véritablement votre propos. Évitez les longs paragraphes et, dès que
vous le pouvez, préférez un schéma explicatif à une grande description. Tout est plus simple en image !
2. Soyez drôle
Dans la mesure du raisonnable et en fonction de votre audience, écrivez des specs agréables à lire. En effet, un des grands
arguments à l‟ encontre des specs est que personne ne veut les lire et que, par conséquent, elles ne servent à rien. Mais
imaginez si en place et lieu de “l‟ utilisateur X” vous parlez de Jocelyne Zgara, 20 ans, habitante du merveilleux village
Mouilleron-le-captif dans la Loire ? Cela donne tout de suite plus envie de se plonger dans un document de 100 pages,
n‟ estce pas ?
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
3
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
4
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Ici
L‟ auteur spécifie, notamment, les traitements éventuels des données entrantes (les mails dans notre exemple) et des
données sortantes (les messages envoyés).
Exemple de Pur Beurre : nous pourrions détailler ici l‟ utilisation de l‟ API Open Food Facts (la manière dont nous
récupérons les données).
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
5
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Les développeurs étant également des êtres pragmatiques, ils ont inventé Git, un outil de gestion de versions. Concrètement,
Git vous permet de revenir à une version précédente si vous le souhaitez ainsi que de voir l‟ auteur de toute modification.
Très pratique quand on travaille en équipe !
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
6
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
travaille en
local
il travaille sur son ordinateur. Il récupère une version du code partagé par l‟ équipe, le modifie sur son ordinateur et le
quand
renvoie à l‟ équipe.
Le miroir de la réalité
Quand un développeur a terminé de développer une fonctionnalité il l‟ envoie sur un serveur de test (parfois appelé
“staging” ou “préprod” pour les intimes). Il s‟ agit d‟ un environnement qui ressemble à 100% à celui de production.
Wait, déjà c‟ est quoi un serveur ?
Un serveur est simplement un ordinateur sur lequel un logiciel a été installé. Ce logiciel permet aux langages de
programmation de fonctionner. Vous pouvez "transformer" votre propre ordinateur en serveur ou bien vous connecter à un
autre via internet. C'est ainsi que fonctionnent les hébergeurs !
Utiliser un serveur de pré-production vous permet de tester que les fonctionnalités que vous avez développées ne
buggent pas dans les conditions réelles d’utilisation. En effet, la configuration peut être très différente entre l‟ ordinateur
d‟ un développeur et celui sur lequel se connectent nos utilisateurs.
Quand toutes les fonctionnalités ont été implémentées dans le serveur de pré production, il est temps de tester que le code
fonctionne !
4. Recette
La période de recette peut être assez longue pour les projets fonctionnant en séquentiel. En effet, il faut tester toutes les
fonctionnalités dans les moindres détails ! Elles doivent correspondre point pour point aux spécifications fonctionnelles et
techniques qui ont été signées précédemment.
Les acteurs qui interviennent pendant cette étape s‟ appellent les responsables qualité (ou QA managers). Ils sont
responsables de la vérification.
Contrairement à ce que nous pourrions imaginer, la majorité des tests est automatique, effectuée par un robot (mais
codée par un humain !). Il existe deux sortes de tests : les tests unitaires et les tests d’intégration.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
7
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
5. Tests unitaires
Les tests unitaires vérifient qu‟ une petite partie d’une fonctionnalité est bien implémentée. Par exemple, nous pouvons
vérifier qu‟ un numéro de téléphone sous la forme “0000000000” sera bien refusé par le système et ne sera pas enregistré
dans la base de données.
Exemple Pur Beurre : un test unitaire pourrait vérifier qu'un aliment sans titre ne s'enregistre pas dans la base de
données, ou qu'une recherche vide renvoie bien le résultat "aucun résultat" !
6. Tests d’intégration
Les tests d‟ intégration ont pour but de vérifier que les fonctionnalités sont bien interconnectées et que l‟ ensemble est
homogène. Chaque fonctionnalité ayant probablement été développée par un développeur différent, il est nécessaire de
vérifier qu‟ elles communiquent bien entre elles et qu‟ il n‟ y a pas de bug.
Si notre programme s‟ insère dans un autre système, les tests d‟ intégration vont également
Vérifier que l‟ un et l‟ autre s‟ agencent harmonieusement et que notre programme ne crée pas de troubles dans l‟ ancien
système.
Prenons un exemple. Imaginons que nous ajoutons une boutique sur le site de la NASA. C‟ est une révolution : vous pouvez
désormais réserver un aller pour la Lune (personne ne parle du retour…) et payer en ligne.
Nous commençons par tester que l‟ utilisateur ne peut pas rentrer un faux numéro de carte bleue. Il s‟ agit d‟ un test
unitaire.
Puis nous vérifions que la fonctionnalité “ajouter un produit dans le panier” interagit bien avec la fonctionnalité “payer via
Paypal”. Nous faisons cela via les tests fonctionnels.
Enfin, nous vérifions que notre nouvelle boutique est bien intégrée au site officiel et qu‟ elle ne génère pas de nouveaux bugs.
Ceci est également fait via des tests fonctionnels.
Certaines équipes font également des tests manuels, c‟ est-à-dire qu‟ ils vont exécuter eux-mêmes les scénarios
utilisateurs. Par exemple, la personne effectuant la recette va ajouter “voyage sur la lune” au panier, cliquer sur ce dernier,
payer en carte bancaire et quitter le site.
Ces tests sont assez rares néanmoins car ils prennent beaucoup de temps.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
8
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
7. Livraison
Quand tous les tests sont positifs, on livre le projet au client. C‟ est ensuite à lui de décider s‟ il met en ligne lui-même ou
s‟ il fait appel à la même équipe.
Cette partie du projet devrait être la plus valorisante. Pourtant, c‟ est assez rarement le cas lorsque notre projet s‟ organise
autour de méthodologies séquentielles. En effet, notre client découvre le rendu à la toute fin et souvent après une longue
période de temps. Ses idées ont pu changer, il ne pensait pas que ce qu‟ il avait imaginé ressemblerait à ça dans la vraie vie
du monde véritable.
De plus, les fonctionnalités peuvent être plus ou moins bien écrites et, par conséquent, applicables. Suivre les spécifications
à la lettre peut créer des programmes bancals, d‟ autant plus si aucune personne technique n‟ a été consultée.
Alors comment intégrer les retours du client au fur et à mesure ? Vous connaissez déjà la réponse. Hé oui, souhaitons la
bienvenue aux méthodologies agiles
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
1
9
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Ces discussions ont débouché sur la rédaction d‟ un document, le Manifeste Agile (Agile Manifesto), au début des années
2000. Il définit des valeurs et des principes partagés par tous les signataires et qui vont à l‟ encontre des méthodes
séquentielles, alors utilisées dans tous les secteurs et reconnues comme étant les plus performantes. Il s‟ agissait d‟ une
prise de position considérable !
b. Les valeurs
Les valeurs du manifeste sont les suivantes :
• Les individus et leurs interactions sont plus importants que les processus et les outils,
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
0
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
• Un logiciel qui fonctionne est mieux qu‟ une documentation exhaustive, Collaborer avec
les clients est préférable à la négociation contractuelle, S‟ adapter au changement est mieux
que de suivre un plan.
Puisque vous avez déjà un bon aperçu des méthodologies séquentielles, prenez une minute (ou plus…) pour relire les valeurs
unes à unes et mesurer les changements que cela suppose.
Ces valeurs sont relativement théoriques, mais elles découlent sur des principes très pratiques dans la gestion d‟ un projet
au quotidien.
c. Les principes
Le Manifeste comprend douze principes que je vous laisse lire tranquillement. Allez-y, ce n‟ est pas long !
d. Les pratiques
Les quatre valeurs et les douze principes sont partagés par toutes les pratiques Agiles. Pourquoi avoir plusieurs
méthodologies ? Tout simplement car les projets et les équipes sont différents, il faut donc avoir une palette de méthodes
qui puisse s‟ adapter à tous les cas.
Il existe une soixantaine de pratiques au total. Voici celles qui sont les plus utilisées :
• User stories
• Pair Programming
• Continuous integration (CI)
• Acceptance Testing
• Iteration Planning / Planning Game / Sprint Planning
• Daily Stand-Up Meeting / Daily Scrum Détaillons-les succinctement.
e. User stories
Une user story est une fonctionnalité écrite du point de vue de l’utilisateur et très succincte. Elle raconte ce que fera
l‟ utilisateur dans notre programme sous forme d‟ histoire.
Par exemple : “Linda cherche un aliment sur la page d‟ accueil.”.
Pair Programming (programmation en binôme)
Un écran, un code, deux programmeurs. Le binôme se met d‟ accord sur une fonctionnalité à développer et le fait
ensemble. Les avantages sont multiples : meilleur code, collaboration renforcée et communication facilitée.
Pur Beurre : deux développeurs (ses) pourraient ensemble coder la fonctionnalité d'authentification. Ils / elles
auraient probablement des stratégies différentes au début, puis échangeraient avant de se mettre d'accord puis de
la réaliser ensemble.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
1
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Pur Beurre : la première fonctionnalité pourrait être l'authentification. Elle serait certainement mise directement
sur un serveur de test. Quand la fonctionnalité suivante serait prête (la recherche par exemple), elle serait
"ajoutée" à l'authentification et nous re-testerions l'ensemble. Puis nous ajouterions la mise en favoris. Et ainsi de
suite !
Les méthodes
Les pratiques sont regroupées en méthodes. Il en existe environ 8 que je vous laisse découvrir dans cet excellent article, les
plus populaires étant :
• Dynamic systems development methods (DSDM) : une approche incrémentale et itérative qui comprend une
intégration constante des clients,
• Feature Driven Development (FDD) : une méthodologie légère dont l‟ objectif est de créer un logiciel qui
s‟ adapte efficacement aux changements de demandes,
• Extreme Programming (XP) : une méthode très pragmatique et centrée sur les pratiques,
• Scrum : la méthode agile la plus populaire et la plus largement utilisée. Il s’agit d’une stratégie de développement
très flexible quand une équipe travaille ensemble pour atteindre un but commun. Nous la verrons plus en détail dans
le prochain chapitre !
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
2
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
a. Présentation
Les dieux du Scrum
Scrum veut dire “mêlée” en anglais. Hé oui, cette méthodologie de projet vient du Rugby ! La méthode utilise les valeurs et
l‟ esprit du Rugby pour les adapter au développement de logiciel. Le sens de l‟ équipe, du contact, du travail bien fait !
Comme le pack pendant un ballon porté, l‟ équipe est soudée pour atteindre l‟ objectif. Le Scrum Master est, quant à lui,
similaire au demi de mêlée qui répartit les membres de l‟ équipe et les réorganise pour assurer la réussite du projet.
Alors, comment ça fonctionne ? Voyons ça dans le détail !
Au début du projet, le projet est découpé en fonctionnalités qui sont listées dans un backlog, une sorte de grand tableau.
Puis nous allons nous intéresser à la première version qui sera mise en ligne. Elle sera volontairement minimale, se
concentrant sur les fonctionnalités essentielles qui ont été indiquées comme prioritaires dans le backlog. Chaque mise en
production est appelée release et est constituée de plusieurs sprints.
Un sprint dure entre une et deux semaines et sert à développer une ou plusieurs fonctionnalités. Elles sont décidées par
l‟ équipe et le Product Owner (dont nous parlerons plus tard). Chaque sprint est découpé en Stories mais nous verrons
tout cela en détails plus tard. Pour l‟ instant, gardons en tête que le(a) développeur(se) de chaque story produira les mêmes
livrables que ceux que nous avons vus dans les méthodologies séquentielles mais à l‟ échelle d‟ une story et non du projet
tout entier.
Il / Elle aura donc à :
Pendant un sprint, des points sont effectués lors des mêlées quotidiennes. Cela permet au Scrum Master, l‟ animateur
chargé de faire appliquer Scrum, de déterminer l‟ avancement par rapport aux engagements de chacun et éventuellement
d‟ apporter des ajustements.
À la fin de chaque sprint, l‟ équipe ajoute une nouvelle brique au projet qui devient ainsi, de sprint en sprint, de plus en plus
complet. Son évaluation et le feedback récolté permettent d‟ ajuster le backlog pour le sprint suivant. Cela s‟ appelle
l‟ inspection.
Puis l’équipe passe à un nouveau sprint, constitué de stories, et ainsi de suite !
b. Rôles
Les responsabilités et les missions des intervenants d‟ un projet agile sont très différentes en comparaison avec un projet
séquentiel car l‟ accent est mis sur l‟ appropriation du projet par chaque membre de l‟ équipe et sur la collaboration.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
3
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
c. Le Product Owner
Il représente les utilisateurs finaux (ou clients) du projet. Il est responsable de la définition du contenu du produit et de la
gestion des priorités. C‟ est pourquoi il alimente régulièrement le backlog en nouvelles fonctionnalités et trie les
anciennes par ordre de priorité. Le Product Owner définit l’objectif d’une release et prend les décisions sur son contenu.
Idéalement il est disponible à plein temps pour mettre à jour le backlog, répondre aux questions sur le produit, définir les
tests d‟ acceptation (dont nous parlerons plus tard) et passer les tests.
d. Le Scrum Master
Il n‟ y a pas de chef de projet dans Scrum ! Chaque membre s‟ approprie le projet et l‟ équipe s‟ auto-organise en
conséquence. Le Scrum Master aide l’équipe à appliquer les principes de Scrum, en la guidant sur la rédaction d’User
Stories par exemple. Il fait également en sorte d‟ éliminer tout obstacle qui pourrait entraver le projet. On dit souvent que
le Scrum Master “protège” l‟ équipe car toute demande provenant de l‟ extérieur doit auparavant passer par le processus
Scrum.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
4
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
e. L’équipe
Il s‟ agit du rôle principal ! C‟ est elle qui réalise le produit. Elle doit, par conséquent, posséder toutes les compétences
nécessaires à son bon développement. Les membres sont choisis par le Scrum Master en fonction de leur motivation et de
leurs compétences. C’est l’équipe qui définit elle-même la façon dont elle organise ses travaux,
ce n’est pas le Scrum Master ni le Product Owner. Chaque membre de l’équipe apporte son expertise.
Les responsabilités de l’équipe sont donc essentielles !
h. Utilisateurs
Le Product Owner se doit de connaître parfaitement les utilisateurs qu’il représente. Garder en tête leurs besoins est une
première étape mais connaître leurs usages actuels est encore mieux.
Pour cela, le Product Owner crée une ou plusieurs personas et les partage au reste de l’équipe.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
5
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
i. Backlog
Puis le Product Owner remplit le backlog.
Le Backlog est un grand tableau listant les fonctionnalités prévues pour le produit et leur état d‟ avancement (en attente de
développement, prévu, en cours, fini, …). Chacune est placée par ordre de priorité de haut en bas, celle en haut étant la
prochaine fonctionnalité à développer.
En général un tableau de backlog contient les colonnes suivantes :
• Product backlog : les fonctionnalités qui ont été priorisées par le Product Owner
et qui sont en attente de développement.
• Development : User Stories en développement Done : User Stories qui ont
été mises en production.
À ce stade, il n‟ y a que la colonne Product Backlog qui est remplie. C‟ est normal car nous n‟ avons pas encore démarré le
premier sprint ! L‟ équipe va analyser la première fonctionnalité, la découper en user stories et déterminer le scope du
premier sprint. Nous voyons tout cela dans le prochain chapitre !
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
6
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
3. Sprintez !
a. De la fonctionnalité à la tâche
Avant de démarrer un sprint, l‟ équipe se réunit pour analyser les fonctionnalités en attente et déterminer le scope du
prochain sprint. Mais pourquoi ne pas se dire “un sprint = une fonctionnalité” ?
Tout simplement car une fonctionnalité peut être très large et longue à mettre en oeuvre. Cela peut être, par exemple,
“Compte utilisateur”. Or l‟ intérêt des méthodes agiles est justement de découper le projet en petites tâches plus faciles
à planifier et à tester. Ces tâches sont appelées des “Stories” car elles sont écrites de manière à raconter une histoire.
b. Les Stories
Rappelez-vous de la première valeur du Manifeste : “Les individus et leurs interactions sont plus importants que les
processus et les outils”. L‟ utilisateur est au cœur des méthodes agiles. Notre objectif, en tant qu‟ équipe de développement,
est donc de créer un programme qu’il utilise vraiment. Avoir en tête l‟ utilisation de l‟ outil, plus que le nom d‟ une
fonctionnalité, nous aide à garder en tête ce qui doit effectivement être produit.
Une Story est une action réalisée par l’utilisateur dans un certain but. Par exemple : “Linda veut cliquer sur “se
connecter” pour accéder à son compte”.
La première tâche est donc de découper une fonctionnalité en Stories. Dans notre cas, ça pourrait être :
• “Linda veut cliquer sur “se connecter” pour accéder à son compte.”
• “Linda veut cliquer sur “mon compte” pour voir ses informations personnelles.” “Linda veut cliquer
sur “modifier mes informations” pour changer son mot de passe.”
• etc.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
7
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
En anglais, ce modèle s‟ appelle “As… I want… so that…”. La formulation vient de Mike Cohn, dans son ouvrage User
Stories Applied, et est très en vogue.
Écrire ses User Stories en suivant ce modèle vous permet d‟ être pragmatique et de visualiser très rapidement qui
effectue l‟ action, l‟ action en elle-même et le résultat attendu.
Une User Story raconte une histoire et peut être réalisée en un sprint. La notion nous vient de l‟ Extreme Programming.
Un des cofondateurs de la méthode, Ron Jeffries, propose d‟ ailleurs les trois caractéristiques suivantes :
Vous pouvez ajouter d‟ autres détails importants dans la carte, comme des sous-tâches techniques par exemple.
Il existe trois types de story :
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
8
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
d. Définir un planning
Chaque Story inclut également une estimation de sa complexité en nombre de points. Elle est calculée en équipe pendant un
“planning poker”.
Concrètement, le Scrum Master distribue un paquet de cartes à chaque développeur. L‟ équipe pose des questions sur le
contenu de la story puis chaque membre montre, en même temps, son estimation. L‟ équipe en discute et mise sur un chiffre.
Puis elle propose un planning. Évidemment, plus une story est complexe et plus il sera compliqué de prévoir la date de
livraison. C‟ est pourquoi nous utilisons la suite de Fibonacci et non une suite linéaire.
Un membre se propose alors de réaliser la story et en devient responsable.
e. Découper en tâches
Le responsable de la story la découpe en tâches. Chaque tâche est un jour de travail. Si nous résumons, un sprint a une ou
plusieurs stories qui ont elles-mêmes plusieurs tâches.
Quand tout ceci est prêt, nous pouvons commencer le sprint !
Souvent, la confirmation coule de source car elle correspond à l‟ User Story. Quand “Linda veut cliquer sur “se connecter”
pour accéder à son compte.”, nous savons que la story est terminée quand elle peut effectivement le faire !
Mais quand la story est technique ou correspond à un bug, il peut être intéressant d‟ indiquer les conditions requises. Par
exemple : “Recevoir les données de l‟ API Google Maps”.
Souvent, nous y faisons référence en les appelant “ Tests de confirmation” car les développeurs font rarement la vérification
à la main. Tout comme en séquentiel, ils vont configurer un robot qui va, comme un grand, tester que le programme remplit
bien les conditions demandées.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
2
9
Année Académique : 2024- 2025 2 ème Année BTS IDA Ecole : IES LE CAMPUS COCODY
Les étapes peuvent être différentes selon les pratiques de chaque équipe.
La revue de code (Code Review) est une bonne pratique en développement informatique. Une personne de l‟ équipe relit le
code d‟ un autre membre et suggère des modifications ou pose des questions. Cela améliore la communication et la qualité
du code.
Bravo, vous en savez maintenant plus sur la gestion de projet ! En vérité, il vous reste tout un monde à découvrir.
Support : Cours de gestion de projet informatique Professeur : M. Abou Jean-Baptiste : Ing Informaticien
3
0