1. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Principes de génie logiciel et développement
agile : une analyse préliminaire
Houda Bagane Guy Tremblay Normand Séguin
24 mars 2011
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
2. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Plan de la présentation
1 Contexte : Fondements du génie logiciel et principes
Constat/Motivation
Objectifs
2 Méthodologie de recherche : Qu’est-ce qu’un principe ?
Cadre conceptuel
Méthode d’analyse
3 Résultats : Principes agiles et principes de génie logiciel
4 Conclusion et travaux futurs
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
3. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Aperçu
1 Contexte : Fondements du génie logiciel et principes
Constat/Motivation
Objectifs
2 Méthodologie de recherche : Qu’est-ce qu’un principe ?
Cadre conceptuel
Méthode d’analyse
3 Résultats : Principes agiles et principes de génie logiciel
4 Conclusion et travaux futurs
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
4. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Constat de la situation
Caractéristiques du génie logiciel :
Domaine qui évolue très rapidement
Manque relatif de maturité
Ne repose pas sur les les lois scientifiques classiques
(physique, chimie, . . . )
⇒ difficile de comprendre l’ensemble de ses principes
Doit développer ses propres principes
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
5. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Rôles des principes au sein du GL (1)
Les principes donnent une base stable à la discipline =
fondements
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
6. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Travaux de Normand Séguin (2006)
Normand Séguin a analysé plus de 300 principes
présentés dans la littérature entre 1970 et 2003
Objectifs
Départager les principes propres au GL de ceux des
disciplines sous-jacentes
Clarifier une certaine confusion terminologique
(concept, loi, principe, . . . )
Méthode
Définir les termes «principe», «loi» et «concept»
Proposer une liste de critères d’identification des principes
Concevoir une méthodologie d’analyse
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
7. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Développement agile
Constat de la situation
Années 90 = Émergence des méthodes agiles en réaction
à une certaine lourdeur du génie logiciel «traditionnel»
Deux courants de pensée se font concurrence :
Méthodes dites «lourdes» — plan-driven methods
Méthodes agiles — lightweight methods
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
8. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Développement agile
Un peu d’histoire
1988 : Spiral Model (Boehm)
1991 : Rapid Application Development (Martin)
1995 : Dynamic Systems Development Method (Stapleton)
1995 : Scrum (Schwarber et Sutherland)
1999 : Extreme Programming (Beck et Jeffries)
1999 : RAD2 (Gartner Group)
2001 : Manifeste agile (Agile Alliance)
2001 à aujourd’hui : L’utilisation des méthodes agiles se
développe
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
9. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Motivation
Divers auteurs ont proposé des principes du génie logiciel
Séguin a proposé une méthode permettant d’identifier les
énoncés qui sont des principes du génie logiciel
Le manifeste agile et les diverses méthodes agiles
proposent leurs propres principes
Question : Les principes agiles sont-ils des principes de
génie logiciel ?
Question (bis) : Les méthodes agiles sont-elles du génie
logiciel ?
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
10. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Aperçu
1 Contexte : Fondements du génie logiciel et principes
Constat/Motivation
Objectifs
2 Méthodologie de recherche : Qu’est-ce qu’un principe ?
Cadre conceptuel
Méthode d’analyse
3 Résultats : Principes agiles et principes de génie logiciel
4 Conclusion et travaux futurs
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
11. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Constat/Motivation
Résultats : Principes agiles et principes de génie logiciel Objectifs
Conclusion et travaux futurs
Orientations de notre recherche
Identifier les divers principes proposés par la communauté
agile (manifeste + quelques méthodes bien connues)
Analyser les énoncés proposés pour voir s’il s’agit de
principes de génie logiciel selon
la définition de principe
les critères d’identification des principes de génie logiciel
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
12. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Aperçu
1 Contexte : Fondements du génie logiciel et principes
Constat/Motivation
Objectifs
2 Méthodologie de recherche : Qu’est-ce qu’un principe ?
Cadre conceptuel
Méthode d’analyse
3 Résultats : Principes agiles et principes de génie logiciel
4 Conclusion et travaux futurs
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
13. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Éléments du cadre conceptuel (1)
Qu’est-ce qu’un principe ?
« Proposition fondamentale de la discipline formulée
sous forme prescriptive (règle), à la source des
actions, pouvant être vérifiée dans ses conséquences
et par l’expérience. » (Séguin, 2006)
Trois styles différents de formulation :
Terme unique (représentant un concept)
Proposition descriptive
Proposition prescriptive
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
14. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Éléments du cadre conceptuel (2)
Les principes doivent être :
moins spécifiques que les méthodes
plus durables que les méthodes et les techniques
tirés de la pratique
reliés à au moins un concept sous-jacent
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
15. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Éléments du cadre conceptuel (3)
Critères d’identification des principes
1 Proposition formulée de façon prescriptive
2 Ne doit pas être associé directement ou découler d’une
technologie, méthode ou technique ou être une activité du
génie logiciel
3 Ne doit pas énoncer un compromis
4 Doit inclure des concepts reliés à la discipline ou au génie
5 Doit pouvoir être testé en pratique
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
16. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Sources des principes (1)
Manifeste Agile
Source du mouvement = Manifeste Agile
Écrit en 2001 par 17 praticiens du développement logiciel
(Beck, Cunnigham, Fowler, etc.)
Décrit les principes recherchés en développement agile
Représente la base de toutes les méthodes agiles
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
17. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Sources des principes (2)
Méthodes agiles
Méthodes agile : nombreuses et variées !
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
18. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Sources des principes analysés (3)
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
19. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Aperçu
1 Contexte : Fondements du génie logiciel et principes
Constat/Motivation
Objectifs
2 Méthodologie de recherche : Qu’est-ce qu’un principe ?
Cadre conceptuel
Méthode d’analyse
3 Résultats : Principes agiles et principes de génie logiciel
4 Conclusion et travaux futurs
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
20. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Analyse des principes agiles
Évaluer chaque principe selon cinq critères individuels
Rendre la reformulation du principe prescriptive si seul le
premier critère n’est pas satisfait
La reformulation proposée doit être mineure
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
21. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Analyse des principes
o
Critère n 1
Critère no 1 : Un principe est une proposition formulée de
façon prescriptive
Exemple :
Énoncé : Working software is the primary measure of
progress
Formulation non prescriptive
⇒ Trouver une reformulation mineure
Reformulation : Measure the progress primarily through
working software
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
22. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Analyse des principes
o
Critère n 2
Critère no 2 : Un principe ne doit pas être associé
directement ou découler d’une technologie, d’une méthode ou
d’une technique ou être une activité du génie logiciel
Un principe n’est pas en soi une activité, mais une ou
plusieurs activités peuvent découler du principe
Soutenu par la norme ISO/IEC 12207 qui regroupe
l’ensemble des activités du GL
Exemple :
Plan tests long before it is time to test
Constatation :
Aucun des énoncés analysés ne contrevenait à ce critère
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
23. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Analyse des principes
o
Critère n 3
Critère no 3 : Le principe ne doit pas énoncer un compromis
(dosage) entre deux actions ou concepts
Exemple :
Use coupling and cohesion
Constatation :
Aucun des énoncés analysés ne contrevenait à ce critère
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
24. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Analyse des principes
o
Critère n 4
Critère no 4 : Un principe du génie logiciel devrait inclure des
concepts reliés à la discipline ou au génie
Un énoncé qui ne contient pas de concepts explicites du
GL n’est pas retenu
Référence : Guide to the SWEBOK (2004)
Exemple :
Iterative and incremental development is necessary to
converge on an accurate business solution
Testing is integrated throughout the life cycle
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
25. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Analyse des principes
o
Critère n 5
Critère no 5 : La formulation d’un principe doit permettre de le
tester en pratique ou de le vérifier dans ses conséquences
Le critère le plus difficile à appliquer
Plusieurs formulations de principe sous-entendent les
conséquences
Exemple :
Deliver working software frequently, from a couple of
weeks to a couple of months, with a preference to the
shorter timescale
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
26. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ? Cadre conceptuel
Résultats : Principes agiles et principes de génie logiciel Méthode d’analyse
Conclusion et travaux futurs
Fiche d’évaluation
Exemple : Build projects around motivated individuals. Give them
the environment and support they need, and trust them to get the job
done.
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
27. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Analyse des principes du Manifeste Agile (extrait)
Principe 1 2 3 4 5 Résultat
Our highest priority is to satisfy the customer + + + + + Retenu
through early and continuous delivery of va-
luable software.
Build projects around motivated individuals. + + + + + Retenu
Give them the environment and support they
need, and trust them to get the job done.
Working software is the primary measure of - + + + + Retenu*
progress.
The best architectures, requirements, and desi- - + + - - Rejeté
gns emerge from self-organizing teams.
At regular intervals, the team reflects on how to - + + - - Rejeté
become more effective, then tunes and adjusts
its behavior accordingly.
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
28. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Analyse des principes de XP
Principe 1 2 3 4 5 Résultat
Provide rapid feedback to its customers and + + + + + Retenu
learn from that feedback.
Favor simplicity and always attempts a simple + + + - - Rejeté
solution before moving to a more complex one.
Improve the software through small, incremen- + + + + + Retenu
tal changes.
Embrace change because they know they are + + + + - Rejeté
truly adept at accommodating and adapting.
Insist that the software consistently exhibits the + + + + + Retenu
highest level of quality workmanship.
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
29. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Analyse des principes de Scrum
Principe 1 2 3 4 5 Résultat
Built-in instability. - + + - - Rejeté
Self-organizing project teams. - + + + - Rejeté
Overlapping development phases. - + + + + Retenu*
Multilearning. - + + - - Rejeté
Subtle control. - + + - - Rejeté
Organizational transfer of learning - + + + - Rejeté
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
30. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Analyse des principes de DSDM
Principe 1 2 3 4 5 Résultat
Active user involvement is imperative. - + + + + Retenu*
DSDM teams must be empowered to make de- + + + + + Retenu
cisions.
The focus is on frequent delivery of products. - + + + + Retenu*
Fitness for business purpose is the essential cri- - + + + + Rejeté
terion for acceptance of deliverables.
Iterative and incremental development is neces- - + + + + Retenu*
sary to converge on an accurate business solu-
tion.
All changes during development are reversible. - + + + + Retenu*
Requirements are baselined at a high level. - + + + + Retenu*
Testing is integrated throughout the life cycle. - + + + + Retenu*
A collaborative and cooperative approach bet- - + + + + Retenu*
ween all stakeholders is essential.
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
31. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Sommaire des résultats
Source Nb. énoncés Nb. retenus
Manifeste agile 12 7
eXtreme Programming 5 3
Scrum 6 1
DSDM 9 8
Total 32 19
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
32. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Conclusion
Le développement agile est une combinaison :
d’idées et pratiques établies
d’idées et pratiques existantes améliorées
de nouvelles idées et pratiques
Notre analyse a montré que le mouvement agile repose
bien sur un certain nombre de principes. . . et que ce sont
bien des principes de génie logiciel
Donc :
Développement agile ∈ Génie logiciel
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile
33. Contexte : Fondements du génie logiciel et principes
Méthodologie de recherche : Qu’est-ce qu’un principe ?
Résultats : Principes agiles et principes de génie logiciel
Conclusion et travaux futurs
Pistes de recherche pour travaux futurs
Analyser les principes d’autres méthodes agiles (PUMA,
Crystal, etc.)
Analyser les principes de l’Agile Modeling et du l’Agile
Project Management
Vérifier la couverture de la discipline de développement
agile par les principes agiles retenus
Bagane, Tremblay et Séguin Principes de génie logiciel et développement agile