Gestion de Projet

Transcription

Gestion de Projet
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
1
Génie Logiciel
(d'après A.-M. Hugues)
Gestion de Projet
Renaud Marlet
LaBRI / INRIA
http://www.labri.fr/~marlet
màj 19/04/2007
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Est-ce bien nécessaire ?
●
Principes de gestion = beaucoup d'évidences
●
Pourtant beaucoup de projets sont mal gérés
–
dépassement du temps
–
objectifs non atteints
–
mécontentements divers
–
...
2
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Objectif de ce cours
●
Donner des éléments structurants
–
●
sans rentrer dans les détails
(sort du cadre de ce cours)
Intérêt :
–
pour celui qui va géré
–
pour celui qui va « être géré »
→ comprendre un réseau d'interactions complexes
●
Plus général qu'appliqué au seul génie logiciel
3
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
4
Gestion Projet
→ Estimation des tâches à effectuer
●
Ordonnancement et dépendances de tâches
●
Répartition des activités
●
Plan projet
●
Organisation du travail
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Processus d'estimation
1) Estimer la taille du produit
–
nombre de lignes de code (LOC)
–
ex. points de fonctions, feature points, ...
2) Estimer l'effort (hommes-mois)
–
ex. : COCOMO (COnstructive COst Model)
3) Estimer la durée
–
mois ou semaines calendaires
5
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Importance / qualité
des méthodes d'estimation
Marge d'erreur
–
LOC (par analogie / « au pif ») : facteur 9
–
points de fonctions : facteur 3
6
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Processus d'estimation
Sort du cadre de ce cours
→ juste quelques principes ici
→ pas de méthode effective
7
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
8
Estimation
En faire une tâche raisonnée
–
allouer du temps pour réfléchir
–
étudier la situation sereinement (pas sous la pression)
–
planifier l'estimation (!)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
9
Estimation
●
●
●
Prendre l'avis de ceux qui vont réaliser le travail
–
développeurs, etc.
–
estimer par consensus
Prendre en compte
–
les niveaux de difficultés (facile, moyen, difficile)
–
l'expérience / la compétence des développeurs
–
les risques (y compris de gestion de projet)
Utiliser des données des projets précédents
–
importance de l'expérience
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Estimation : Ne pas oublier les
tâches récurrentes
●
documentation
●
préparation des démonstrations utilisateurs
●
formation des utilisateurs et développeurs
●
intégration à l'existant
●
récupération des données existantes
●
revues
●
réunions
●
maintenance de l'existant pendant le développement nouveau
●
gestion qualité
●
absences (congés, maladie, RTT, absentéisme, ...)
●
...
10
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
11
Gestion Projet
●
Estimation des tâches à effectuer
→ Ordonnancement et dépendances de tâches
●
Répartition des activités
●
Plan projet
●
Organisation du travail
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Ordonnancement et dépendances :
Graphe PERT
●
PERT (Project Evaluation & Review Technique)
●
Graphe exprimant :
–
les tâches élémentaires
–
les dépendance entre tâches
–
la durée des tâches
–
les dates
●
de début et de fin
●
au plus tôt et au plus tard
12
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Graphe PERT :
Définition de tâches élémentaires
C
A
début
H
F
D
B
G
E
Tâche
fin
13
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
14
Graphe PERT :
Dépendances entre tâches
C
A
début
H
F
D
B
G
E
Tâche
fin
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
15
Graphe PERT :
Durée des tâches élémentaires
C
4
A
3
H
2
F
4
D
2
début
B
2
Tâche
durée
fin
G
4
E
6
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Ordonnancement et dépendances :
Graphe PERT
Détermination d'un chemin critique :
= le plus long, au sens de la somme des durées
→ détermine la durée minimale du projet
16
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
17
Exercice : quel est le chemin
critique et la durée minimale ?
C
4
A
3
H
2
F
4
D
2
début
B
2
Tâche
durée
fin
G
4
E
6
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Graphe PERT :
Chemin critique et durée minimale
C
4
A
3
H
2
F
4
D
2
début
B
2
Tâche
durée
18
fin
G
4
E
6
durée
minimale
= 15
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Ordonnancement et dépendances :
Graphe PERT
Dates de début et de fin au plus tôt :
–
partir du nœud « début », aller vers le nœud « fin »
–
pour tout nœud :
●
date de début = max(dates de fin des tâches entrantes)
●
date de fin = date de début + durée
19
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
20
Exercice : quelles sont les dates
de début et de fin au plus tôt ?
C
4
A
3
H
2
(15,15)
(0,0)
F
4
D
2
début
fin
(0,2)
B
2
(début au plus tôt,
fin au plus tôt)
Tâche
durée
G
4
E
6
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Graphe PERT :
Dates de début et de fin au plus tôt
C
4
A
3
(0,0)
(7,9)
(3,7)
(0,3)
H
2
(7,11)
(3,5)
(0,2)
Tâche
durée
fin
(11,15)
B
2
(début au plus tôt,
fin au plus tôt)
(15,15)
F
4
D
2
début
21
(2,8)
E
6
G
4
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Ordonnancement et dépendances :
Graphe PERT
Dates de début et de fin au plus tard :
–
partir du nœud « fin », aller vers le nœud « début »
–
pour tout nœud :
●
date de fin = min(dates de début des tâches sortantes)
●
date de début = date de fin - durée
22
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
23
Exercice : quelles sont les dates
de début et de fin au plus tard ?
C
4
A
3
H
2
(13,15)
F
4
D
2
début
fin
(15,15)
(0,0)
B
2
Tâche
durée
(début au plus tard,
fin au plus tard)
G
4
E
6
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Graphe PERT :
Dates de début et de fin au plus tard
C
4
A
3
H
2
(3,7)
(0,3)
(13,15)
F
4
D
2
début
B
2
(3,5)
Tâche
durée
(début au plus tard,
fin au plus tard)
fin
(7,11)
(9,11)
(0,0)
24
(15,15)
G
4
E
6
(5,11)
(11,15)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
25
Graphe PERT complet
(0,3)
C
4
A
3
H
2
(3,7)
(0,3)
(0,0)
(7,9)
(3,7)
(7,11)
(3,5)
F
4
D
2
début
(0,2)
(début au plus tôt,
fin au plus tôt)
Tâche
durée
(début au plus tard,
fin au plus tard)
(3,5)
(15,15)
(11,15)
B
2
(2,8)
E
6
(5,11)
(15,15)
fin
(7,11)
(9,11)
(0,0)
(13,15)
G
4
(11,15)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Ordonnancement et dépendances :
Graphe PERT
●
26
Si plusieurs équipes, projet complexe, ...
→ graphe PERT à plusieurs niveaux (c.-à.-d. emboîtés) :
un noeud complexe est lui-même découpé en un graphe
●
Pas spécifique au génie logiciel
→ utilisé dans le BTP, ...
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
27
Gestion Projet
●
Estimation des tâches à effectuer
●
Ordonnancement et dépendances de tâches
→ Répartition des activités
●
Plan projet
●
Organisation du travail
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Répartition des activités :
diagramme de Gantt
●
●
Fait apparaître :
–
répartition des activités dans le temps
–
affectation des individus
Détaille :
–
les coûts en hommes-mois (ou h-semaine, h-jour)
–
dates de début et de fin pour chaque tâche
28
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
29
Exemple de
diagramme de Gannt
\ Mois
Tâche \
mois
1
mois
2
Tâche 1
A
A,B
Tâche 2.1
mois
3
mois
1
4
mois
5
mois
6
mois
7
mois
1
8
mois Cumul
10 (en h-m)
3
2
A,B
Tâche 2.2
4
A,C
Tâche 2.3
B
5
B,D
Tâche 2.4
A,C
3
C
Tâche 2.5
2
C,D
Tâche 3
Total
mensuel
Cumul
(en h-m)
mois
9
C,D
D
3
22
1
2
2
3
4
4
1
2
2
1
1
3
5
8
12
16
17
19
21
22
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Répartition des activités :
diagramme de Gantt
Gestion de projet pratique :
–
à chaque tâche on associe un objectif
→ permet de repérer la terminaison de la tâche
→ contrôle des dérives
(+ se souvenir que les hommes ne sont pas
interchangeables)
30
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
31
Gestion Projet
●
Estimation des tâches à effectuer
●
Ordonnancement et dépendances de tâches
●
Répartition des activités
→ Plan projet
●
Organisation du travail
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
32
Plan projet
●
Document
●
Élément de base de la planification
●
Responsable = chef de projet du développement
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Contenu du plan projet (1)
●
●
Nature de l'application
–
objectifs
–
principales fonctionnalités
–
autres caractéristiques : limites, performances, ...
Scénario de développement
–
classification des priorités et contraintes
–
brève description de chaque composant
33
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Contenu du plan projet (2)
●
Ressources
–
humaines
–
matérielles
–
logicielles
●
Coût
●
Calendrier
☛ Il existe des modèles standards de document (IEEE, ...)
34
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
35
Plan projet
●
Élaboré dès la phase de planification
●
Actualisations successives et raffinements
→ Suivi de projet (→)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
36
Suivi de projet
●
Analyse (régulière) de l'écart au plan projet
●
Par le responsable de projet
–
●
utilise : fiches de suivi, rapports d'activité
Actualisation de :
–
graphe(s) PERT
–
diagramme(s) de Gantt
–
diagramme(s) à 45°
(perception visuelle de la dérive par rapport aux objectifs)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
37
Gestion Projet
●
Estimation des tâches à effectuer
●
Ordonnancement et dépendances de tâches
●
Répartition des activités
●
Plan projet
→ Organisation du travail
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Organisation du travail
●
Partage du travail
●
Communication dans un projet
●
Profil des membres du projet
●
Facteurs humains
38
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Partage du travail
●
Partage du travail pas toujours facile à réaliser
●
Dépend du type de tâche à effectuer
39
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Partage du travail : cas d'une
tâche bien partitionnée
durée
40
Exemple : codage et tests unitaires
personnel
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Partage du travail : cas d'une
tâche non partitionnable
durée
41
Exemple : analyse et conception globale
personnel
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Partage du travail : tâche exigeant
une interaction complexe
durée
personnel
42
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
43
Le dilemme de la communication
●
●
Positif :
–
améliore la compréhension du projet
–
permet une plus grande mobilité dans le projet
Négatif :
–
fait perdre du temps (cf. ↑)
+ la communication orale peut nuire à la documentation
(mémoire à long terme du projet)
qui devient moins nécessaire... à court terme
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Structurer la communication
●
Eviter que tout le monde communique
avec tout le monde
–
●
croissance suivant une loi carrée  : N(N-1)/2
Faire des niveaux
–
groupes et responsables
44
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Rôles principaux dans un projet (1)
Définition de rôles :
–
chef de projet
–
responsable qualité
–
responsable de l'intégration
–
responsable de la qualification
–
responsable de la maintenance
–
responsable de la documentation
–
...
☛ Une même personne peut avoir plusieurs rôles
45
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Rôles dans un projet (2)
Avantages :
–
responsabilisation → motivation
–
permet de trouver des (bons) compromis
●
–
chacun défend son activité
il y a plus de chances que les choses soient faites
●
sinon, « pente » naturelle = on compte sur les autres
46
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Rôles dans un projet (3)
Importance d'une bonne définition des rôles
–
check-list des tâches et objectifs
–
périmètres disjoints
●
●
mais tensions possibles entre missions « incompatibles »
ex. compromis qualité / temps (responsable qualité
contre responsable du développement)
47
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Profil des membres du projet (1)
●
Définition et analyse des besoins
–
●
Spécifications fonctionnelles
–
●
clarté, précision, cohérence, rigueur
Conception
–
●
savoir anticiper, analyser les stratégies
capacité à communiquer, formaliser, abstraire
Programmation et tests unitaires
–
discipline de programmation (style), rigueur,
communication, sens du groupe
48
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Profil des membres du projet (2)
●
Intégration
–
●
Qualification
–
●
compétence ~ ingénieur système
ingénieur d'application, proche du domaine du produit
Maintenance
–
rigueur, analyse, expertise
49
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
Facteurs humains
●
Motivations individuelles et collectives
●
Relations entre les membres et avec l'extérieur
●
Dynamique du chef de projet
●
Formation et apprentissage
●
Éviter :
–
trop ou pas assez de niveaux (structuration)
–
déresponsabilisation
–
spécialisation excessive (cf. XP) : déplacer les gens
50
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
51
À propos de motivation
Si tu veux construire un bateau, inutile de
battre le tambour pour rassembler les gens,
inutile de se procurer du bois, préparer
les outils, distribuer les tâches et répartir
le travail ; c'est d'abord la nostalgie du
large et de l'infini de la mer qu'il faut
éveiller dans les cœurs.
Antoine de St-Expéry
(Citadelle)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
52
Facteurs humains
(d'après A.-M. Hugues)
●
●
Grandes variations
–
temps de codage : rapport de 1 à 25
–
temps de mise au point : 1 à 26
–
temps d'exécution du code : 1 à 13
–
nombre d'erreurs restantes : 1 à 10
Peuvent être
–
réduits : méthodologies, standards, normes, outils
–
jamais annulés (☹)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet
53
À retenir
●
●
●
Estimation :
–
planifier sereinement
–
converger par consensus
–
se baser sur des données précédentes (expérience...)
Découpage en tâches :
–
peser le besoin d'interaction, de communication
–
définir un objectif pour chaque tâche (→ mesure)
Il existe des « outils », des méthodologies :
–
●
ordonnancer (PERT), répartir les activités (Gantt), ...
Gestion de projet : responsabiliser

Documents pareils