Upload
doantuyen
View
217
Download
0
Embed Size (px)
Citation preview
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 1
Génie LogicielGénie Logiciel
Gestion de ProjetGestion de Projet
Renaud Marlet
LaBRI / INRIA
http://www.labri.fr/~marlet
(d'après A.-M. Hugues)
màj 19/04/2007
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 2
Est-ce bien nécessaire ?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– ...
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 3
Objectif de ce coursObjectif 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 4
Gestion ProjetGestion 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 5
Processus d'estimationProcessus 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 6
Importance / qualitéImportance / qualitédes méthodes d'estimationdes méthodes d'estimation
Marge d'erreur– LOC (par analogie / « au pif ») : facteur 9– points de fonctions : facteur 3
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 7
Processus d'estimationProcessus d'estimation
Sort du cadre de ce cours
→ juste quelques principes ici
→ pas de méthode effective
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 8
EstimationEstimation
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
EstimationEstimation
● 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 10
Estimation : Ne pas oublier les Estimation : Ne pas oublier les tâches récurrentes 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, ...)● ...
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 11
Gestion ProjetGestion 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 12
Ordonnancement et dépendances : Ordonnancement et dépendances : Graphe PERTGraphe 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 13
Graphe PERT :Graphe PERT :Définition de tâches élémentairesDéfinition de tâches élémentaires
A
B
D
E
G
finF
C H
début
Tâche
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 14
Graphe PERT :Graphe PERT :Dépendances entre tâchesDépendances entre tâches
A
B
D
E
G
finF
C H
début
Tâche
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 15
Graphe PERT :Graphe PERT :Durée des tâches élémentairesDurée des tâches élémentaires
A3
B2
D2
E6
G4
finF4
C4
H2
début
Tâchedurée
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 16
Ordonnancement et dépendances : Ordonnancement et dépendances : Graphe PERTGraphe 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 17
Exercice : quel est le chemin Exercice : quel est le chemin critique et la durée minimale ?critique et la durée minimale ?
A3
B2
D2
E6
G4
finF4
C4
H2
début
Tâchedurée
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 18
Graphe PERT :Graphe PERT :Chemin critique et durée minimaleChemin critique et durée minimale
A3
B2
D2
E6
G4
finF4
C4
H2
début
duréeminimale
= 15
Tâchedurée
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 19
Ordonnancement et dépendances : Ordonnancement et dépendances : Graphe PERTGraphe 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 20
Exercice : quelles sont les dates Exercice : quelles sont les dates de début et de fin au plus tôt ?de début et de fin au plus tôt ?
A3
B2
D2
E6
G4
finF4
C4
H2
début
Tâchedurée
(début au plus tôt,fin au plus tôt)
(15,15)(0,0)
(0,2)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 21
Graphe PERT :Graphe PERT :Dates de début et de fin au plus tôtDates de début et de fin au plus tôt
A3
B2
D2
E6
G4
finF4
C4
H2
début
(0,3)
(0,0)
(3,7)
(3,5)
(0,2)
(2,8)
(7,9)
(15,15)
(11,15)
(7,11)
Tâchedurée
(début au plus tôt,fin au plus tôt)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 22
Ordonnancement et dépendances : Ordonnancement et dépendances : Graphe PERTGraphe 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 23
Exercice : quelles sont les dates Exercice : quelles sont les dates de début et de fin au plus tard ?de début et de fin au plus tard ?
A3
B2
D2
E6
G4
finF4
C4
H2
début
Tâchedurée
(début au plus tard,fin au plus tard)
(15,15)(0,0)
(13,15)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 24
Graphe PERT :Graphe PERT :Dates de début et de fin au plus tardDates de début et de fin au plus tard
A3
B2
D2
E6
G4
finF4
C4
H2
début
(0,0)
(0,3)(3,7)
(9,11)
(3,5)
(5,11)
(13,15)
(15,15)
(11,15)
(7,11)
Tâchedurée
(début au plus tard,fin au plus tard)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 25
Graphe PERT completGraphe PERT complet
A3
B2
D2
E6
G4
finF4
C4
H2
début
(0,3)
(0,0)
(0,0)
(0,3)
(3,7)
(3,7)
(3,5)
(9,11)
(0,2)
(3,5) (2,8)
(5,11)
(7,9)
(13,15)(15,15)
(15,15)
(11,15)
(11,15)
(7,11)
(7,11)
Tâchedurée
(début au plus tôt,fin au plus tôt)
(début au plus tard,fin au plus tard)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 26
Ordonnancement et dépendances : Ordonnancement et dépendances : Graphe PERTGraphe PERT
● 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 ProjetGestion 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 28
Répartition des activités :Répartition des activités :diagramme de Ganttdiagramme 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 29
Exemple deExemple dediagramme de Ganntdiagramme de Gannt
mois1
mois2
mois3
\ Mois Tâche \
mois5
1mois
6mois
7mois
4mois
91
mois10
Cumul(en h-m)
mois8
Tâche 1
Tâche 2.1
Tâche 2.2
Tâche 2.3
Tâche 2.4
Tâche 2.5
Tâche 3
TotalmensuelCumul
(en h-m)1 3 5 12 16 178 21 2219
1 2 2 4 4 13 2 12
A,BA
A,B
A,C
B B,D
A,C C
C,D
C,D D
3
2
4
5
3
2
3
22
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 30
Répartition des activités :Répartition des activités :diagramme de Ganttdiagramme 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)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 31
Gestion ProjetGestion 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 projetPlan 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 33
Contenu du plan projet (1)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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 34
Contenu du plan projet (2)Contenu du plan projet (2)
● Ressources– humaines– matérielles– logicielles
● Coût● Calendrier
☛ Il existe des modèles standards de document (IEEE, ...)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 35
Plan projetPlan 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 projetSuivi 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 ProjetGestion 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 38
Organisation du travailOrganisation du travail
● Partage du travail● Communication dans un projet● Profil des membres du projet● Facteurs humains
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 39
Partage du travailPartage du travail
● Partage du travail pas toujours facile à réaliser● Dépend du type de tâche à effectuer
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 40
Partage du travail : cas d'une Partage du travail : cas d'une tâche bien partitionnéetâche bien partitionnée
durée
personnel
Exemple : codage et tests unitaires
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 41
Partage du travail : cas d'une Partage du travail : cas d'une tâche non partitionnabletâche non partitionnable
Exemple : analyse et conception globaledurée
personnel
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 42
Partage du travail : tâche exigeant Partage du travail : tâche exigeant une interaction complexeune interaction complexe
durée
personnel
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 43
Le dilemme de la communicationLe 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 44
Structurer la communicationStructurer la communication
● Eviter que tout le monde communiqueavec tout le monde– croissance suivant une loi carrée : N(N-1)/2
● Faire des niveaux– groupes et responsables
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 45
Rôles principaux dans un projet (1)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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 46
Rôles dans un projet (2)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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 47
Rôles dans un projet (3)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)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 48
Profil des membres du projet (1)Profil des membres du projet (1)
● Définition et analyse des besoins– savoir anticiper, analyser les stratégies
● Spécifications fonctionnelles– clarté, précision, cohérence, rigueur
● Conception– capacité à communiquer, formaliser, abstraire
● Programmation et tests unitaires– discipline de programmation (style), rigueur,
communication, sens du groupe
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 49
Profil des membres du projet (2)Profil des membres du projet (2)
● Intégration– compétence ~ ingénieur système
● Qualification– ingénieur d'application, proche du domaine du produit
● Maintenance– rigueur, analyse, expertise
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 50
Facteurs humainsFacteurs 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
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 51
À propos de motivationÀ 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 humainsFacteurs humains
● 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 (☹)
(d'après A.-M. Hugues)
Génie logiciel – Gestion de projet © 2005-2007 Renaud Marlet 53
À retenirÀ 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