1
GESTION DE PROJETS
Formateur :
• A.KARIM
2
I-Qu'est ce qu'un projet ?
Un projet est un ensemble de tâches indissociables permettant de répondre à
un besoin exprimé
• Les résultats attendus du projet sont appelés « livrables ».
• On distingue:
• des « projets-ouvrage » dont le résultat est unique (Ex : une Application, le
déploiement d’une solution informatique),
• des « projets-produit » (exemple:un Nouveau model de voiture,nouvelle
boisson..) dont l'objectif est la mise au point d'un ou d'une gamme de
produit(s) ou service(s), qui sera diffusé à plus ou moins grande échelle.
3
Qu'est ce qu'un projet ?
Un projet doit combiner quatre aspects :
• fonctionnel (réponse à un besoin)
• technique (respect des spécifications)
• délais (respect des échéances c’est-à-dire la durée)
• coûts (respect du budget).
• La Charte de projet :est un document contractuel entre le directeur de projet d’une
part et la comité de pilotage du projet d’autre part .
• Il a pour objectifs d’identifier la documentation de référence et les dispositions
spécifiques d’organisation de la phase de développement à venir .
4
II-La Gestion de projets.
• La gestion de projet est une démarche visant à structurer, assurer et
optimiser le bon déroulement d'un projet,
• L'objectif est d'obtenir un résultat conforme à des normes de qualité et de
performances prédéfinies, pour le moindre coût et dans le meilleur délai
possible.
5
Contraintes dans la gestion d’un projet
• Temps .
• Coût .
• qualité.
6
III-Caractéristiques générales d’un
projet informatique
• objectifs .
• résultat ou produit attendu .
• durée .
• activités .
• ressources.
7
Acteurs(Le couple MOA-MOE )
• La réussite d'un projet informatique repose en grande partie sur deux acteurs
principaux que sont la maîtrise d'ouvrage(MAO;client) et la maîtrise d'œuvre
(MOE;fournisseur). Le premier décrit ce qu'il faut faire, et le second le met en
oeuvre.
• MOE:la maîtrise d'oeuvre détient le pouvoir de "faire« , il transforme une idée
à une solution informatique.
• La maîtrise d'ouvrage déléguée (MOAD) : interface entre la maîtrise
d'ouvrage et la maîtrise d'oeuvre, la maîtrise d'ouvrage déléguée peut
gommer une bonne partie des lacunes d'une maîtrise d'ouvrage dite "faible".
8
9
Le chef de projet
• le chef de projets porte sur ses épaules la responsabilité de la réussite -
ou de l'échec - du projet qu'on lui a confié.
• Les missions du Chef de projet
• Définition du projet
• Planification du projet
• Pilotage du projet
• Négociations internes et externes au projet
• Animation des équipes
• Gestion du fond documentaire
10
Le chef de projet
Q ualité s d'un che f de projet
Comprendre Obtenir l'adhé sion Savoir produire Vaincre les obstacles
Imagination
Communication Confiance
Raisonnement Efficacité
Relationnel Créativité
Savoir-faire Direction
Motivation Méthodologie
Expertise Autonomie
Influence Initiative
Curiosité
Solidarité Capacité à défendre
Ecoute une idée
Responsabilité
Ouverture d'esprit
Synthèse
11
Cycle de vie d’un projet
informatique
• -- phase préparatoire (cahier de charges détaillé)
-phase de conception
- phase de développement
- phase de test
- phase de recette
- phase de maintenance
12
(Cycle en V)
13
(Cycle en Y)
14
phase de recette
• VABF : Validation au bon fonctionnement. Lors de cette étape, la MOE va
tester que le logiciel réalisé fonctionne bien, que tout les fonctionnalités
demandées sont présentes ( il s’agit de valider que le logiciel fourni répond
aux besoins du client ).
• VABE : Validation à la bonne exploitation .Il s’agit de procéder à des tests
avec des utilisateurs réels afin de vérifier que le logiciel est correctement
exploitable, que les utilisateurs cibles puissent utiliser toutes les
fonctionnalités dont ils ont besoin. La période de VABE varie d’une
application à l’autre.
15
IV-L’ordonnancement et la planification
• Planification: choisir et organiser dans le temps les actions qui vont permettre
d'atteindre l'objectif du projet
• Les objectifs du planning sont les suivants :
• déterminer si les objectifs sont réalisés ou dépassés
• suivre et communiquer l’avancement du projet
• affecter les ressources aux tâches
• Ordonnancement :placer dans le temps un ensemble de taches à exécuter
• Exemple :
• on ne pourra pas Créer la base de données sans conception.
16
V-LE DIAGRAMME DE
GANTT
• Le diagramme de GANTT est un outil permettant de modéliser la
planification de tâches nécessaires à la réalisation d'un projet. Cette
méthode permet de représenter graphiquement dans le temps les
diverses tâches composant un projet et de visualiser l’avancement du
projet. C’est également un bon moyen de communication entre les
différents acteurs d’un projet.
17
VI-LE DIAGRAMME DE
PERT
• Le diagramme de PERT est un outil qui permet de bien représenter
l'ordonnancement du projet .
Tâche critique
Toute tâche qui en dérapant, fait déraper le
projet dans sa globalité
Chemin critique
Enchaînement de toutes les tâches critiques
18
Exemples
• Réalisation d’un diagramme de GANTT
• Réalisation d’un diagramme de PERT
19
D=4
D=2
0-4 9-12
13-17 D=12
27-24
7-9
0 19-17 27
0-7 19-25 25-27
0-7
19-25 25-27
D=0 7-19
D=0 D=0
Les dates au plus tôt 7-19
D=0
Chemin critique
Les dates au plus tard
Calcul des marges D
20
21
• Exercice 2
• L'entreprise SDB-Plus fabrique et commercialise, auprès des particuliers, du mobilier de salle de
bains. Les services de fabrication de la SDB-Plus ont étudié l'ordonnancement des tâches à partir
de la commande d'un client dans un magasin jusqu'à la livraison. Le tableau suivant répertorie les
tâches et les contraintes d'enchaînement.
22
23
caractéristiques:
• définir les rôles de chaque intervenant sur le projet
• définir l’ensemble des processus à suivre afin de garantir
un résultat satisfaisant en fin de projet
• Principe fondamental : la planification
• Pas de retour sur les phases précédentes, une fois
validées
• Inconvénient : Effet tunnel
24
25
• méthode de gestion de projet caractérisée par une
démarche itérative et incrémentale.
• En d’autres termes, les projets agiles sont construits
étape par étape.
• Dans la gestion de projet traditionnelle, on attend
généralement d’avoir exécuté l’ensemble des étapes d’un
projet avant de soumettre le produit final au client.
• Avec l’approche agile, les clients peuvent évaluer la
qualité du projet en cours de réalisation et intervenir pour
rectifier le tir au besoin.
26
4 valeurs
• Les individus et leurs interactions plus que les processus
et les outils
• Des logiciels opérationnels plus qu’une documentation
exhaustive
• La collaboration avec les clients plus que la négociation
contractuelle
• L’adaptation au changement plus que le suivi d’un plan
27
12 principes
• 1.la principale priorité est de satisfaire le client en
livrant rapidement et régulièrement des solutions qui
apportent de la valeur.
2.Accueillez positivement les changements de besoins,
même tardifs dans le développement.
3.Livrez fréquemment un logiciel opérationnel, à une
fréquence allant de quelques semaines à quelques mois
28
• 4.Les utilisateurs et les développeurs doivent travailler
ensemble tout au long du projet
5.Réalisez les projets avec des personnes motivées.
Fournissez-leur l’environnement et le soutien dont elles ont
besoin et faites-leur confiance pour atteindre les objectifs
fixés
6.La méthode la plus simple et la plus efficace pour
transmettre de l’information est le dialogue en face à face
29
• 7.Un logiciel opérationnel est la principale mesure
d’avancement
8.Les processus agiles encouragent un rythme de
développement soutenable
9.Porter continuellement attention à l’excellence
technique et à la qualité de la conception renforce l’agilité
10.La simplicité – l’art de minimiser la quantité de travail
inutile – est essentielle
30
• 11.Les meilleures architectures, spécifications et
conceptions émergent d’équipes auto-organisées
12.A intervalles réguliers, l’équipe réfléchit aux façons
de devenir plus efficace, puis modifie son comportement et
l’ajuste en conséquence
31
Agile est une approche qui se basent sur 4 valeurs et 12
principes et se manifeste à travers des pratiques
32
33
SCRUM
• Scrum est un cadre de travail (Framework) au sein duquel
les acteurs peuvent aborder des problèmes complexes et
adaptatifs, en livrant de manière efficace et créative des
produits de la plus grande valeur possible
34
35
Les différents rôles -L’équipe
• 1-Scrum Master
36
• 2-Product Owner
37
• 3-développeur
38
User Stories & Product Backlog
39
40
41
Grooming
42
43
Planning poker
44
Qu’est ce qu’un sprint ?
• Pour maintenir la continuité, les sprints sont des
événements d’un mois ou moins. Après l’achèvement du
sprint précédent, un nouveau sprint commence.
• Les sprints contiennent tout le travail nécessaire pour
atteindre le but du produit, y compris la planification du
sprint, les scrum quotidiennes, la revue du sprint et la
rétrospective du sprint.
45
46
Sprint planning
47
Sprint Execution
• 1-Daily Scrum : la mêlée quotidienne (au début de la
matinée , durée 15min)
Qu’est-ce que j’ai fait hier ?
Qu’est-ce que je vais faire aujourd’hui ?
Qu’est-ce qui me bloque ?
48
• 2-suivi du Sprint (tableau des taches)
Un sprint de 2 semaines peut contenir une trentaine de
cartes
49
• Un burndown chart ou BDC est une représentation
graphique de l'évolution de quantité de travail réalisée par
rapport au temps sur une période de temps donnée.
50
• 3-Sprint Review
• La sprint review, ou revue de sprint en français, est la
réunion destinée à évaluer les résultats obtenus par l’
équipe scrum après un sprint.
• Elle permet d’analyser les progrès réalisés par le
développement afin d’atteindre l’objectif fixé.
51
• Objectif du sprint Review:
• -pour l’équipe Scrum : Présenter le résultat du sprint sous
forme de démonstration.
• -pour l’utilisateur : vérifier si l’incrément(résultat du sprint)
Répond aux besoins
Partcipants:
Product owner – scrum master- developpeurs
52
• 4-Sprint Retrospective
• Objectif:
• Discuter les pratiques utilisées (amélioration continue)
Partcipants:
scrum master- developpeurs
53
Jira
• Jira est un système de gestion de projets développé par
Atlassian et publié pour la première fois en 2002
• Il permet d’organiser votre backlog en sprints
• https://www.atlassian.com/fr/try/cloud/signup?bundle=jira-
software&edition=free
54
Nom du projet
55
56
57
Créer epic
58
Créer story
59
Démarrer le Sprint
60
Tableau du Sprint
61
• https://www.youtube.com/watch?v=P_8Zav29rJs
62
Quiz 1
63
64
65
66
Questions 1 (ce qui est faux)
• Vous lisez une offre d’emploi indiquant qu’une société de services recherche un
chef de projet Scrum
• A – Vous essayez d’en savoir plus
• B – Vous passez à autre chose
• Vous arrivez dans une équipe Scrum et on vous présente le Product Owner
• A – Il s’agit désormais de votre responsable hiérarchique
• B – Il s’agit de la personne qui est responsable du produit
• Un bon Scrum Master est
• A – Une personne qui sert l’équipe
• B – Une personne qui prend les décisions
• En tant que Développeur vous êtes
• A – Responsable solidaire des objectifs de l’équipe
• B – Avant tout un codeur
• Participer à la réunion quotidienne est pour un développeur
• A - Une corvée
• B - Un plaisir
67
Réponses 1( ce qui est faux)
• Vous lisez une offre d’emploi indiquant qu’une société de services recherche un chef de projet Scrum
• A – Vous essayez d’en savoir plus
• B – Vous passez à autre chose
• 1 - Réponse A
• Vous arrivez dans une équipe Scrum et on vous présente le Product Owner
• A – Il s’agit désormais de votre responsable hiérarchique
• B – Il s’agit de la personne qui est responsable du produit
• 2 - Réponse A
• Un bon Scrum Master est
• A – Une personne qui sert l’équipe
• B – Une personne qui prend les décisions
• 3 - Réponse B
• En tant que Développeur vous êtes
• A – Responsable solidaire des objectifs de l’équipe
• B – Avant tout un codeur
• 4 - Réponse B
• Participer à la réunion quotidienne est pour un développeur
• A - Une corvée
• B - Un plaisir
• 5 - Réponse A
68
Questions 2
• Vous êtes Scrum Master
• Le Product Owner présente la 4ème carte
• Au bout de 2 minutes, vous demandez à l’équipe de développement d’estimer l’effort via le jeu de Planning Poker
• - 5 cartes avec la valeur 5
• - Catherine a montré sa carte avec la valeur 40
• Que faîtes-vous ?
•
• A - Vous indiquez que le plus grand nombre a choisi 5
• B - Vous demandez à Catherine pourquoi elle estime cette valeur
• Vous êtes Archibald, Développeur
• Le Product Owner présente la 4ème carte
• Au bout de 2 minutes, il demande à l’équipe d’estimer l’effort via le jeu de Planning Poker
• - 5 cartes avec la valeur 5
• - Vous hésitez à mettre la même valeur de carte que les autres membres car vous n’avez pas bien compris les
explications du Product Owner
• Quelle serait selon vous la meilleure situation à faire pour Archibald ?
•
• A - Montrer la carte ?
• B - Montrer la carte 5
69
Réponses 2
• Vous êtes Scrum Master
• Le Product Owner présente la 4ème carte
• Au bout de 2 minutes, vous demandez à l’équipe de développement d’estimer l’effort via le jeu de Planning Poker
• - 5 cartes avec la valeur 5
• - Catherine a montré sa carte avec la valeur 40
• Que faîtes-vous ?
•
• A - Vous indiquez que le plus grand nombre a choisi 5
• B - Vous demandez à Catherine pourquoi elle estime cette valeur
• 1 - Réponse B
• Vous êtes Archibald, Développeur
• Le Product Owner présente la 4ème carte
• Au bout de 2 minutes, il demande à l’équipe d’estimer l’effort via le jeu de Planning Poker
• - 5 cartes avec la valeur 5
• - Vous hésitez à mettre la même valeur de carte que les autres membres car vous n’avez pas bien compris les
explications du Product Owner
• Quelle serait selon vous la meilleure situation à faire pour Archibald ?
•
• A - Montrer la carte ?
• B - Montrer la carte 5
• 2 - Réponse A
70
Questions 3
• Vous êtes Scrum Master et effectuez un Daily Scrum avec les développeurs
• Un développeur prend la parole et explique un problème qu’il a rencontré la veille
• Comment réagissez-vous ?
•
• A – Vous lui demandez d’en savoir plus au détriment du temps de parole des autres développeurs
• B – Vous lui dites que vous prenez en compte son problème, et que vous le verrez après le meeting pour en
connaître les détails
• Vous êtes Product Owner et participez au Daily Scrum avec les développeurs et le Scrum Master
• Un développeur prend la parole et explique un problème de compréhension qu’il a eu la veille d’une carte en cours
• Comment réagissez-vous ?
•
• A – Vous lui expliquez ce qu’il faut faire
• B – Vous attendez que le Scrum Master prenne en compte ce problème et qu’il programme un point entre vous 3
•
71
Réponses 3
• Vous êtes Scrum Master et effectuez un Daily Scrum avec les développeurs
• Un développeur prend la parole et explique un problème qu’il a rencontré la veille
• Comment réagissez-vous ?
•
• A – Vous lui demandez d’en savoir plus au détriment du temps de parole des autres développeurs
• B – Vous lui dites que vous prenez en compte son problème, et que vous le verrez après le meeting pour en
connaître les détails
• 1 - Réponse B
• Vous êtes Product Owner et participez au Daily Scrum avec les développeurs et le Scrum Master
• Un développeur prend la parole et explique un problème de compréhension qu’il a eu la veille d’une carte en cours
• Comment réagissez-vous ?
•
• A – Vous lui expliquez ce qu’il faut faire
• B – Vous attendez que le Scrum Master prenne en compte ce problème et qu’il programme un point entre vous 3
• 2 - Réponse B
72
Quiz2
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
définition
• GIT :c'est un logiciel CVS (control version system)
• pour gérer l'évolution et le suivi collaboratif du contenu
d'un projet.
90
travailler sur un dépôt local (local
repository)
• 1-installer git
• 2-se positionner dans le dossier de travail et executer la commande :
• git init
• 3-créer un fichier (groupes.txt) et l'ajouter au surveil
• git add groupes.txt
• 4-créer un commit (photo : quand-qui-pourquoi)
• git commit --m "création du fichier des groupes"
• 5-log des commit :
• git log (repo history)
91
• 6-afficher/récupérer une version d'un fichier (via idcommit)
• git show ee0c89b9ecd352e8ed858fef297dc126575f3f38 groupes.txt :afficher
• git checkout ee0c89b9ecd352e8ed858fef297dc126575f3f38 groupes.txt :récupérer
• git checkout master ( se positionner dans le branche master)
• .gitignore ( contient les fichiers à ne pas tracker exemple : *.txt : tous les fichiers txt)
• git rm --cached nomfile
92
• 7-créer une nouvelle branche :
• git brach : pour afficher la branche actuelle
• git checkout -b nombranche : pour créer une nouvelle branche
• git checkout nombranche : pour se positionner dans une
branche
• 8-git merge newbranch : fusionner newbranch vers master
(ou je me situe)
• 9-git branch --delete newbranch : supprimer newbranch
93
94
Définition
• GITHUB :est un service web d'hébergement et de gestion
de développement de logiciels, utilisant le logiciel de
gestion Git
95
Etude de cas : User1 User2
96
User 1:
• 1-User1 : crée un projet (site1)
• créer un remote repository (private)
• inviter User2 pour collaborer
• User2 accepter l'invitation par email
• se positionner dans le dossier local :
• commande : git init
97
• créer une page login.html avec un titre h1
• Ajouter la page login au surveil (dans la branche master)
• git add login.html
• Faire un commit (comme prendre une photo qui designe qui-quand-pourquoi)
• git commit --m "Création de la page login.html avec un titre h1"
• git log (liste des commit)
• upload de la page login.html
98
• pour cela il faut faire une liaison vers le remote repository
• git remote add origin
https://github.com/karim-azeggouar/atelier.git (chemin du
remote repo)
• faire un push vers le remote :
• git push origin master
99
User 2: Modifier dans la page
login.html
• se positionner dans le dossier
• git init
• download de la page login.html
• pour cela il faut faire une liaison vers le remote repository
• git remote add origin https://github.com/karim-
azeggouar/atelier.git
• faire un pull depuis le remote :
• git pull origin master
100
DevOps
La première, l'équipe de développement,
a pour objectif principal de faire évoluer
l'application,
La seconde équipe, l'équipe des ops, a
comme objectif de maintenir l'application
en conditions opérationnelles
Le DevOps est un ensemble de pratiques qui met l'emphase
sur l'automatisation des processus entre les équipes de
développement, et les équipes en charge du maintien en
conditions opérationnelles de l'application développée.
101
• Les pratiques devops permettent alors de développer,
tester et livrer des applications plus rapidement et avec
plus de fiabilité.
• Les principaux avantages du DevOps sont :
-l'accélération des déploiements applicatifs ;
-la réduction du Time-to-Market.
Le Time-to-Market est le temps d'arrivée d'une
fonctionnalité sur le marché, c'est-à-dire le temps entre
le moment de décision de la création de cette
fonctionnalité, et son arrivée sur le produit final en
production.
102
103
CI
104
CI
• L'intégration continue est un ensemble de pratiques
utilisées en génie logiciel consistant à vérifier à chaque
modification de code source que le résultat des
modifications ne produit pas de régression dans
l'application développée.
• En gros c’est un programme qui va s'exécuter
régulièrement (souvent à chaque fois que tu commit /
push du code).
105
• L'Intégration Continue va :Récupérer tout le code du
projet (git clone ou équivalent) .
• Lancer une installation des dépendances (yarn install ou
équivalent)
• Lancer tous les tests (yarn test ou équivalent)
106
CD
107
• Imagine maintenant !
Il est 16h vendredi, tu push ton code sur GIT, l'Intégration Continue
déclenche tes tests unitaires et t'indique qu'il y a une régression à la ligne 47
du fichier User.js.
C’est le code que tu viens de modifier il y a seulement quelques minutes,
c’est tout frais dans ta tête.
Tu corriges la régression, tu relances les tests, tu as confiance en eux, tu
push et tu rentres chez toi voir ta famille ou avec tes amis.
Les développeurs les plus productifs sont les développeurs qui travaillent
sereinement, l’esprit libéré, ils ont confiance dans leurs tests et leurs
intégrations continues.
108
Exemple GitLab (web hosting)
• https://www.youtube.com/watch?v=cERdbQ-GgOo
109
c'est un outil qui permet de faire l'analyse statique du code
dans le cadre de CI CD .
une fois votre code est comité vers github,gitlab
sonarqube verifie la qualité du code et donne un
feedback aux developpeurs pour faire des modifications au niveau
du code avant de faire le submit du code en production
110
• SonarQube est un logiciel open source de mesure de la
qualité du code source de projets de développement.
• Il permet d’obtenir des informations sur la qualité au
niveau du projet
• . Son périmètre est le code source, le design ainsi que les
tests unitaires, il supporte plus d’une vingtaine de
langages de programmation, dont C/C++,C#,Java,
Python, PHP, JavaScript..
111
1-Scores de maintenabilité, fiabilité et
sécurité (MFS):
• SonarQube classe les défauts logiciels selon 3 catégories :
Scores MSF:
• •Les bugs : est un défaut de conception d’un programme informatique à
l’origine d’un dysfonctionnement, Ils impactent la fiabilité (reliability) de
l’application. Ce nom vient du tout premier incident informatique qui a
été causé par un insecte.
• •Les vulnérabilités : faiblesses du code pouvant nuire au système. Elles
impactent la sécurité de l’application.
• •Les code smells : anti-patrons (ou anti-patterns). en général les défauts
pratiques dans le code d’un programme comme code dupliqué , répété ,
commentaires non nécessaires … Ils impactent la maintenabilité de
l’application
112
2.Mesures pour la documentation
113
3- Mesures pour la duplication du
code :
114
4.Mesures pour les tests
115
5.Mesures de complexité :
116
Exemple:
• on va tester sonarqube en local
• 1-telecharger : la version community edition
117
118
• Lancer le fichier : StarSonar.bat
ouvrir le navigateur : http://localhost:9000/
par defaut (admin/admin) changer le pass exemple: (admin-root)
119
• Pour pouvoir analyser le code télécharger : sonarscanner
download sonarscanner for windows:
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
120
• Créer un projet qui contient du code javascript
121
• -créer un fichier de properties : sonar-project.properties
• sonar.projectKey=sonarjs
• sonar.projectName=sonarjsp
• sonar.projectVersion=1.0
• sonar.sources=.
• sonar.login=admin
• sonar.password=root
• sonar.sourceEncoding=UTF-8
122
• se positionner dans le dossier du projet à ananlyser
cd D:\Mediatheque\9-Agile\sonarqube\projet_test_js>
• lancer le scanner :
D:\Mediatheque\9-Agile\sonarqube\sonar-scanner-
4.7.0.2747-windows\bin\sonar-scanner.bat
123
124
125
relancer le scanner
126
Projet