Académique Documents
Professionnel Documents
Culture Documents
informatique
Les acteurs d’un projet informatique
Elles sont décrites de façon indépendante en indiquant leur rôle, utilisent et produisent des
“artefacts”
Selon le modèle, une activité peut jouer un rôle plus ou moins important et parfois ne pas
exister du tout.
Elles concernent :
Planification (Étude de la faisabilité)
Spécification des besoins (Requirement analysis)
Analyse (Spécification formelle)
Conception (Spécification technique)
Implémentation (Codage) et tests unitaires
Intégration et tests d’ensemble
Livraison
Maintenance
Planification
Spécification des besoins
Analyse
Conception
Impléméntation
Intégration et test du système
Livraison, maintenance, évolution
Du prédictif à l’adaptatif
Choisir une méthodologie efficace
Une méthode définit une démarche en vue de produire des résultats. Une méthode permet
d’assister une ou plusieurs étapes du cycle de vie du logiciel. Les méthodes d’analyse et de
conception fournissent des notations standards et des conseils pratiques qui permettent d’aboutir
à des conceptions «raisonnables»
Il existe de nombreuses méthodologies en gestion de projet, telles que :
les méthodes traditionnelles (les méthodes prédictives) qui correspondent à un cycle de vie
du logiciel en cascade ou en V, sont basées sur une planification très précise et très détaillée,
qui a pour but de réduire les incertitudes liées au développement du logiciel. Cette
planification rigoureuse ne permet pas d’évolutions dans les besoins des utilisateurs, qui
doivent donc être figes dès l’étape de définition des besoins.
les méthodes Agile (les méthodes adaptatives) : Scrum, Kanban, Extreme Programming. Ce
sont des méthodes qui correspondent à un cycle de vie itératif, incrémental et adaptatif.
Elles sont inévitables et doivent être pris en compte par les modèles de développement. Ces
méthodes privilégient la livraison de fonctionnalités utiles au client à la production de
documentation intermédiaire sans intérêt pour le client.
Cycle de vie en cascade
C’est un modèle qui a comme objectif majeur de jalonner (présenter sobrement)
rigoureusement le processus de développement et de définir de façon précise les
rôles respectifs du fournisseur qui produit un livrable et du client qui accepte ou
refuse le résultat. Le découpage temporel se présente comme une succession de
phases affinant celles du découpage classique : Étude de faisabilité, Définition
des besoins, Conception générale, Conception détaillée, Programmation,
Intégration, Mise en œuvre. Chaque phase donne lieu à une validation officielle.
Si le résultat du contrôle n’est pas satisfaisant, on modifie le livrable. En
revanche, il n’y a pas de retour possible sur les options validées à l’issue de
phases antérieures
Cycle de vie en cascade
Parce que les méthodes de gestion de projet en cycle linéaire et prédictif ne répondaient pas bien
aux complexités que comporte la vie d’un projet.
Ils rédigent ensemble le Manifeste Agile qui est composé de 4 valeurs et de 12 principes généraux.
En réalité il n’existe pas une mais plusieurs méthodes agiles. Elles regroupent un ensemble de
pratiques flexibles, itératives et donc plus réactives face au changement. Elles impliquent
davantage le client dans la réalisation du projet en mettant l’objectif final du projet au cœur de ses
préoccupations.
Les méthodes agiles reposent donc sur un cycle itératif et adaptatif laissant cette place tant
nécessaire aux changements.
Agile représente un ensemble de “méthodes et pratiques basées sur les valeurs et les principes du
Manifeste Agile”, qui repose entre autre sur la collaboration, l’autonomie et des équipes pluri-
disciplinaires.
17
Itératif
Une méthode agile est avant tout itérative sur la base d’un affinement du besoin mis en œuvre dans des fonctionnalités en cours de réalisation
et même déjà réalisées. Cet affinement, indispensable à la mise en œuvre du concept adaptatif, se réalise en matière de génie logiciel sous
deux aspects :
fonctionnellement, par adaptation systématique du produit aux changements du besoin détecté par l’utilisateur lors de la
conception-réalisation du produit (notion de validation permanente de l’utilisateur avec RAD et notion de conception émergente
avec XP) ;
techniquement, par remaniement régulier du code déjà produit (refactoring).
Le développement itératif n'est pas une idée récente, il existe depuis longtemps sous différentes appellations: évolutionnaire, à paliers, spirale,
ainsi que de nombreuses autres désignations. D'après Fowler, l'idée dans le développement itératif est de produire fréquemment une version du
système qui fonctionne, mais n'ayant qu'une partie des fonctionnalités demandées qui doivent être intégrées et testées aussi soigneusement
qu'une livraison finale (Fowler, 2005).
Une méthode itérative est caractérisée par sa capacité à planifier une itération de production en termes de fonctionnalités et
d'interdépendances. Le processus de développement est appliqué plusieurs fois. Le terme itération fait référence à la nature cyclique d'un
processus dans lequel les activités sont répétées d'une manière structurée.
18
Incrémental
Une méthode agile est, éventuellement, incrémentale. Lorsque le projet, quel que
soit le nombre de participants, dépasse en durée une dizaine de journées en
moyenne, la production de ses fonctionnalités s’effectue en plusieurs incréments
Dans le développement itératif, chaque itération augmente la quantité
d'information, la quantité de logiciel fonctionnel, etc. Dans une méthode dite
incrémentale, le logiciel évolue par incrément et chaque itération correspond à un
incrément. Le terme incrément fait donc référence au résultat de chaque
itération. Le système croît avec le temps de façon incrémentale, itération par
itération, d'où le terme de développement incrémenta!.
19
Itératif-incrémental
20
Itératif, incrémental et adaptatif
21
Itératif, incrémental et adaptatif
22
Itératif, incrémental et adaptatif
23
VALEURS AGILES
Pour répondre à ce problème est créé en 2001 le manifeste Agile. Rédige par
17 experts qui se dressent contre l'échec des cycles en cascade, Il propose 4
valeurs fondamentales, et 12 principes
24
Méthodes agiles
Classées par date de publication
Rapid Application Development(RAD, 1991)
Dynamic systems developmment method(DSDM, 1995, consortium anglais
commercialisant le RAD)
Scrum(1996)
Feature Driven Development ((en)FDD) (1999)
Extreme programming(XP, 1999)
Adaptative software development(ASD, 2000)
Crystal clear(2004)
Autres méthodes se reconnaissant un lien avec l'agilité :
2TUP (2 track unified process, prononcez « toutiyoupi ») ,
Rational Unified Process (RUP)
25
Exemple de méthode agile : Scrum
La méthodologie Scrum
28
Cycle de vie de Scrum
Product Backlog
:
Fonctionnalités Daily Scrum
priorisées par Meeting
le client
Sprint Review
Meeting
Sprint Planning
Meeting
Sprint Backlog :
Fonctionnalités affectées Deliverable :
à l'itération (Sprint) Incrément 29potentiellement
estimées par l'équipe. exploitable
Roles
‣The Product Owner manages the product (and
return on investment)
‣The ScrumMaster manages the process
‣The team manages itself
30
Le product owner
31
Le scrum master
32
Equipe
Didiée
Pluridisciplinaire(architectes, développeurss, testeurs, analystes, graphistes, etc): Des
équipes pluridisciplinaires ont toutes les compétences nécessaires pour réaliser le
travail sans dépendre de personnes ne faisant pas partie de l'équipe.
Stable
Co-localisée
Auto-organisé : Des équipes auto-organisées choisissent la meilleure manière de
réaliser leur travail, plutôt que d'être dirigées par des personnes extérieures à l'équipe.
7 personne (+/-2) : Une équipe de développement de taille optimale est assez petite
pour demeurer agile et assez grande pour effectuer du travail significatif.
Le modèle d'équipe de Scrum est conçu pour optimiser la flexibilité, la créativité et la
productivité.
33
Renions
34
Sprint Planning
36
Product Backlog Refinement
37
Daily scrum
38
Daily scrum
C’est le moment privilégié pour une Equipe auto-organisée
d’échanger sur la bonne marche de l’activité, et de se
coordonner.
Une personne note les problèmes rencontrés, et le
ScrumMaster doit aider les membres de l’Equipe à les
résoudre.
Il y a peu ou pas de discussion approfondie durant le Daily
Scrum, l’objectif n’étant que de répondre à ces trois
questions. Si des discussions sont nécessaires, elles se tiennent
lors de réunions consécutives, immédiatement après le Daily
Scrum.
=> un moyen supplémentaire d’inspection et d’adaptation.
39
Daily scrum
40
Sprint Review
42
La rétrospective
43
La rétrospective
44
‣Product Backlog
‣Sprint Backlog
‣Burndown Chart
Artifact
45
Product Backlog
46
Product Backlog
The Scrum Product Owner uses the Scrum Product Backlog during the Sprint
Planning Meeting to describe the top entries to the team. The Scrum Team
then determines which items they can complete during the coming sprint.
Each Scrum Product Backlog has certain properties that differentiate it from a
simple to-do list: an entry in the Scrum Product Backlog always add value for
the customer
the entries in the Scrum Product Backlog are prioritized and ordered accordingly
the level of detail depends on the position of the entry within the Scrum Product Backlog
all entries are estimated
the Scrum Product Backlog is a living document
there are no action-items or low-level tasks in the Scrum Product Backlog
47
Product Backlog
48
Sprint Backlog
Most teams will know the sprint backlog as the task board,
which is the physical representation of the list of work they
have committed to do during the current sprint.
The task board tells the whole team and anyone else what
work they have planned or the sprint and their current status.
49
Sprint Backlog
50
Burndown chart (graphe de combustion)
51
Burndown chart (graphe de combustion)
52
Product or Release Burndown chart
53
Release Burndown chart
54
Les systèmes intégrés de gestion de projet
De nombreuses équipes travaillent avec Jira (le produit phare d’Atlassian) ou
avec VSTS selon qu’elles évoluent dans l’écosystème open source ou
Microsoft. Ces deux systèmes intégrés de gestion de projet ont de nombreux
points communs. Une fois le backlog créé, ils présentent des tableaux de bord
pour chaque projet à dérouler selon un processus personnalisable de type
Scrum ou Kanban. Outre d’innombrables états du projet, ces systèmes sont
aussi intégrés à la production de code.