SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Flash Spécial : les Agilistes écrivent de la
                             documentation!
Scott W. Ambler
Contrairement aux idées reçues …
Qui a dit que les Agilistes ne documentent pas ? Scott étudie les véritables pratiques des équipes
agiles.
Scott travaille en qualité de Practice Leader Agile Development pour IBM Rational.

Traduction par Emmanuel Hugonnet de l’article quot;Newsflash: Agilists Write Documentation!quot; avec
l’aimable autorisation de Scott Ambler et de Jon Erickson du Dr. Dobb’s Journal.

Vous avez probablement entendu, voire pire propagé, certains des mythes sur la modélisation et la
documentation des projets agiles. Par exemple, le mythe selon lequel les agilistes 1ne mettent en
place aucune architecture, une idée reçue qui ne tient pas bien longtemps vu que les tous les
systèmes ont forcément une architecture quelque soit la méthode de développement mise en œuvre.
Un autre de ces mythes est le fait que les agilistes ne commencent pas par modéliser les grandes
lignes d'un projet, mais où avez-vous vu que l'on finance un projet de développement sans savoir
comment le réaliser ? Apparemment les agilistes ne documentent pas non plus, ayant convaincu
comme par magie les utilisateurs finaux que les manuels sont inutiles, les équipes de support de
fonctionner sans documentation et l'équipe de maintenance de maintenir sans documentation
d'ensemble. Les agilistes ne tiennent pas compte d'une liste vraiment très impressionnante de
choses, je pense qu'il est plus que temps d'éclaircir ces incompréhensions et de tuer ces mythes. Ce
mois-ci je vais résumer les résultats de deux études, l'une qui se concentre plus spécifiquement sur
les activités de modélisation et de documentation des projets de développement logiciel, et l'autre
qui explore les pratiques réelles des équipes agiles. Vous verrez que la réalité est bien loin de la
rhétorique.


Commencer par modéliser les grandes lignes

L'étude quot;Dr. Dobb's 2008 Modeling and Documentation Surveyquot; a mis à jour un certain nombre
de points intéressants sur la manière dont les équipes de développement approchent la modélisation.
18% des équipes traditionnelles ne font aucune modélisation, à comparer au seulement 5% des
équipes agiles il est donc plus probable qu'une équipe agile modélise par rapport à une équipe
traditionnelle. La première approche de la modélisation se fait par l'intermédiaire de schémas pour
55% des équipes qui préfèrent dessiner pour penser ou communiquer des idées, 30% dessinant puis
conservant les schémas lorsque cela avait un sens. La majorité des équipes traditionnelles font elles
aussi des schémas, avec 33% des équipes dessinant, 33% dessinant et conservant les schémas
importants. 7% des équipes agiles utilisent des outils de modélisation (SBMT) comme ER/Win ou
Rational System Architect (RSA) dans un but de documentation, 5% pour le cycle de modélisation
et d’ingénierie, à comparer à respectivement 16% et 0% pour les équipes traditionnelles. La Figure
1 résume les résultats pour les quatre types d'équipe étudiés : ad-hoc, traditionnelle, itérative et
agile.


L'étude quot;Ambysoft 2008 Agile Practices and Principles Surveyquot; explore l'adéquation entre les
1
 NdT : j’ai utilisé l’anglicisme ‘agiliste’ plutôt que de le traduire par manque d’un vocabulaire adapté. Une traduction
convenable aurait pu être ‘praticien agile’.
développeurs agiles et les différentes stratégies de développement. Ainsi pour connaître les
pratiques de modélisation des équipes agiles au début d'un projet la question posée était :
        quot;Nous réalisons une modélisation des principales exigences au démarrage d'un projet agile
        pour pouvoir budgéter et planifierquot;.
L'étude indique que 74% des personnes interrogées sont d'accord ou fortement d'accord avec cette
proposition, 18% ne se prononcent pas et seulement 8% sont en désaccord ou en profond désaccord
avec cette proposition.
De même, pour connaître leur position quant à la modélisation de l'architecture nous avons posé la
question suivante :
        quot;Nous modélisons l'architecture au démarrage d'un projet agile afin de partir dans la bonne
        directionquot;.
Les résultats sont quasiment identiques avec des scores respectifs de 73%, 19% et 8%. En
conclusion deux études différentes sur deux communautés différentes montrent toutes les deux que
les équipes de développement agiles, dans la pratique, modélisent.




Figure 1 : Les stratégies de modélisation suivant les méthodes de développement logiciel employées

Les équipes agiles modélisent au début d'un projet car elles doivent répondre aux mêmes questions
que les autres :
    • quel périmètre doit-on adresser,
    • pour quel coût,
    • dans quels délais
    • et avec quelle stratégie technique.
Sans des réponses cohérentes à ces questions un projet n'obtiendra tout simplement pas son budget.
Que l’on doive modéliser dès les premiers instants de la vie d'un projet, n'implique pas qu'on doive
le faire en écrivant des montagnes de documentation. On peut tirer les bénéfices de la modélisation,
à savoir communiquer et réfléchir, sans avoir à accepter les coûts d'une documentation inutile.

Une autre raison pour laquelle les équipes agiles commencent par modéliser, contrairement aux
préceptes des extrémistes de la communauté agile, est que les métaphores architecturales ne
suffisent pas. Les architectures des systèmes actuels sont complexes, elles adressent quantités
d'exigences non-fonctionnelles et de contraintes comme la performance, la sécurité, et bien d'autres
encore (cf. mon article d'octobre 2008 à ce sujet2). La métaphore architecturale ne va pas permettre
de réaliser le travail.
Prenez par exemple le site web de la conférence Agile 2008 (www.agile2008.org) qui a été construit
selon l'idée qu'organiser une conférence c'est comme produire une pièce de théâtre. Cette métaphore
n’était pas la bonne, rendant le site complexe à utiliser. Par exemple, pour construire votre planning
de conférences auxquelles vous souhaitiez participer, vous deviez parcourir les 19 pages du
programme officiel décrivant en détail chacune des représentations. Mortel ! Un peu de réflexion et
de modélisation en amont aurait surement permis d'éviter ce genre de problème.


Documentation Agile

L'étude quot;Dr. Dobb's Modeling and Documentation Surveyquot; a révélé qu'il n'y a guère de
différence selon l'approche utilisée lorsqu'il s'agit de produire de la documentation sous forme d’un
livrable. Après tout un livrable reste un livrable. Les craintes concernant le manque mythique de
documentation des projets agiles sont donc infondées, les traditionalistes qui résistent encore
doivent alors trouver d'autres excuses pour ne pas appliquer les stratégies agiles. Comme vous
pouvez le voir dans la Figure 2, les agilistes ont une probabilité légèrement plus faible de produire
une documentation générale du système que les traditionalistes, mais par contre légèrement plus
forte de produire une documentation opérationnelle. Je pense que cela vient du fait que le besoin
d'une documentation générale du système se ressent moins, les agilistes ayant tendance à produire
du code de bien meilleure qualité, résultat du remaniement3 et de la pratique du développement
piloté par les tests (TDD4). On peut aussi expliquer le moindre besoin de documentation des équipes
agiles par l'écriture de spécifications exécutables.

L'étude quot;Ambysoft 2008 Agile Practices and Principles Surveyquot; s’est intéressé aux interactions et
à la communication des équipes agiles, en demandant de noter l'efficacité de différents moyens de
communication avec les clients. Voici les résultats ordonnés par efficacité, le score de chacune des
techniques étant une moyenne pondérée entre 5 (très efficace) et -5 (très inefficace) :
    1. Discussion en Face à Face (F2F) (4.06)
    2. Face à Face (F2F) avec un tableau blanc (3.46)
    3. Digrammes généraux (1.89)
    4. Documentation générale (1.86)
    5. Vidéo conférence (1.62)
    6. Conférence téléphonique (1.51)
    7. E-mail (1.32)
    8. Documentation détaillée (0.16)
    9. Messagerie instantanée (0.15)

On peut faire plusieurs observations intéressantes.
        Premièrement, on peut comprendre la croyance des traditionalistes dans la valeur des
spécifications détaillées avec ce résultat neutre malgré tout ce que l'on peut entendre sur les méfaits
de la documentation détaillée dans les communautés agiles.
        Deuxièmement, partager une documentation générale avec les clients semble avoir un
certain intérêt, même si c'est loin d'être aussi efficace qu'une communication directe, ce qui fait
mentir les préjugés sur la documentation agile.
        Troisièmement, la théorie de la richesse du média, qu’Alistair Cokburn a introduite dans la
communauté agile tient la route (cf. www.agilemodeling.com/essays/communication.htm). Le
moyen de communication le quot;plus chaudquot; semble être généralement le plus efficace.
2
  NdT : cet article est disponible en français à l’adresse :
3
  NdT : refactoring.
4
  NdT : Test Driven Development
Quatrièmement, ces résultats peuvent expliquer pourquoi les projets agiles avec des équipes
distribuées semblent être plus risqués que les projets où les équipes sont regroupées, car plus les
équipes sont distribuées et plus le choix de moyens de communication est restreint. L'étude quot;Dr
Dobb's Agile Adoption Surveyquot; (cf. www.ddj.com/architect/207600615) avait montré que les
chances de succès d'un projet agile variaient de 83% pour une équipe regroupée, 72% pour des
équipes peu distribuées à 60% pour des équipes distribuées.




Figure 2 : Les probabilités de produire un livrable de documentation suivant les méthodes de développement
logiciel employées.



Bonnes Pratiques de la Modélisation et la Documentation Agile

Maintenant que l’on tient pour acquis le fait que les développeurs agiles modélisent et écrivent de la
documentation, on peut se demander pourquoi ces mythes persistent encore. Je pense qu'il y a à cela
trois raisons principales.
         Premièrement, la communauté agile se bat pour essayer de décrire de manière cohérente ses
pratiques. Par exemple, si on mentionne la modélisation d'une vision globale du projet sur les listes
de discussion agiles la conversation évolue rapidement vers les méfaits de la modélisation détaillée
du projet comme première étape obligée (BDUF) et le poids de la bureaucratie avec virtuellement
aucune information sur ce que les pratiques réelles des équipes.
         Deuxièmement, beaucoup de traditionalistes ont peur de l'approche agile du développement
logiciel, car elle demande d'autres compétences et souvent plus de discipline pour réussir. Les
quot;nouvelles règlesquot; du développement agile inquiètent naturellement ceux qui ne les connaissent pas
bien ou qui n’ont pas eu l'opportunité d'effectuer la transition.
         Troisièmement, le manque de spécifications détaillées au démarrage d'un projet agile, peut
laisser croire que les équipes agiles ne modélisent pas à des traditionalistes ne connaissant pas
l'approche Développement Piloté par la Modélisation Agile (Agile Model Driven Developpement).
Par exemple, nous avons vu dans la Figure 1 que les équipes agiles modélisent plus fréquemment
que les traditionalistes, qu'elles préfèrent les schémas et les dessins à de la documentation détaillée
produite par un logiciel de modélisation (SBMT). Des différences comme celle-ci peuvent être mal
interprétées si on n'est pas familier des stratégies disciplinées des équipes agiles.
Il y a quantité de ressources en ligne qui décrivent comment les équipes agiles approchent la
modélisation et la documentation. Les bonnes pratiques AMDD sont
    • de commencer par recueillir les exigences initiales et de se forger une vision globale de
       l'architecture dès le début du projet pour pouvoir écrire des spécifications exécutables selon
       une approche de Développement Piloté par les Tests (TDD),
    • d’éviter de dupliquer l’information autant que faire se peut,
    • d'écrire la documentation plus tard dans le cycle de vie du projet,
    • de promouvoir l'implication des clients, de réaliser les exigences selon leur priorité,
    • d'inclure la modélisation dans le planning de l'itération / du sprint,
    • de produire des modèles et de la documentation juste suffisants pour la situation courante,
    • de modéliser les détails en groupe en mode Juste à Temps (JIT),
    • parfois de modéliser à l'avance pour certaines exigences complexes,
    • et d’utiliser différentes formes de modélisation et de représentation.
On peut trouver une description de l’ensemble de ces bonnes pratiques sur
www.agilemodeling.com/essays/bestPractices.htm.


Nous devons mieux faire

On peut tirer profit des pratiques de modélisation et de documentation efficace, cependant de
nombreuses organisations n'en retirent aucun bénéfice. L'étude quot;Dr. Dobb's Modeling and
Documentation Surveyquot; indique que 80% des développeurs apprennent la modélisation sur le tas,
28% en étant encadré par une personne rompue à la modélisation, 18% à l'université, 9% en suivant
une formation à la modélisation, et 5% en suivant une formation à un outil de modélisation. Il me
semble que si notre apprentissage de la modélisation était moins hasardeuse, alors celle-ci serait
entourée de moins de mythes et d'incompréhensions et plus important encore les pratiques et les
outils de modélisation pourraient être mis en œuvre de manière beaucoup plus efficace.


Annexe : les études

En juillet 2008, j'ai effectué deux études pour savoir ce qui se passe réellement dans les équipes de
développement.

L'étude quot;Dr. Dobb's Modeling and Documentation Surveyquot; porte sur les lecteurs du DDJ, ce qui
couvre les pratiques de développement depuis les traditionnelles jusqu'aux pratiques ad-hoc. Nous
avons utilisé la liste de diffusion du Dr. Dobb's et le blog de Jonathan Erickson pour en faire la
publicité afin que les gens répondent au questionnaire. 279 personnes y ont répondu, dont 54.8% de
développeurs et 25.4% de managers. En ce qui concerne l'expérience du monde de l'informatique,
33.3% avaient entre 10 et 20 ans d'expérience et 41.6% en avaient plus de 20. Les données
originales (sans les informations personnelles), les questions telles quelles étaient posées et le
résumé      de     l'enquête     sous   forme     de     diapositives    sont    disponibles   sur
www.ambysoft.com/surveys/modelingDocumentation2008.html.

L'étude quot;Ambysoft 2008 Agile Practices and Principles Surveyquot; a été réalisée la dernière semaine
de juillet, et s'est concentrée sur les équipes de développement agile. L'enquête a été annoncée sur
les listes de diffusion Agile Modeling, Agile Database, Extrem Programming, Agile Project
Management, et Scrum Development. 337 personnes y ont répondu dont 37% de développeurs et 37
de managers, 42% avaient entre 10 et 20 d'expérience en informatique et 17% avaient plus de 20
ans d'expérience. Les données originales, les questions et les diapositives résumant les résultats sont
disponibles sur www.ambysoft.com/surveys/practicesPrinciples2008.html.

Contenu connexe

Plus de Emmanuel Hugonnet

Java Content Repository avec Jackrabbit
Java Content Repository avec JackrabbitJava Content Repository avec Jackrabbit
Java Content Repository avec JackrabbitEmmanuel Hugonnet
 
Le modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de DreyfusLe modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de DreyfusEmmanuel Hugonnet
 
Ddj Architecture & Design The Distributed Agile Team
Ddj   Architecture &  Design   The Distributed Agile TeamDdj   Architecture &  Design   The Distributed Agile Team
Ddj Architecture & Design The Distributed Agile TeamEmmanuel Hugonnet
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4Emmanuel Hugonnet
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
Ddj Architecture & Design Beyond Functional Requirements On Agile Projects
Ddj   Architecture & Design   Beyond Functional Requirements On Agile ProjectsDdj   Architecture & Design   Beyond Functional Requirements On Agile Projects
Ddj Architecture & Design Beyond Functional Requirements On Agile ProjectsEmmanuel Hugonnet
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes PratiquesEmmanuel Hugonnet
 

Plus de Emmanuel Hugonnet (10)

Soigner Sa Schizophrénie
Soigner Sa SchizophrénieSoigner Sa Schizophrénie
Soigner Sa Schizophrénie
 
Java Content Repository avec Jackrabbit
Java Content Repository avec JackrabbitJava Content Repository avec Jackrabbit
Java Content Repository avec Jackrabbit
 
Le modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de DreyfusLe modèle d’acquisition de compétences de Dreyfus
Le modèle d’acquisition de compétences de Dreyfus
 
Ddj Architecture & Design The Distributed Agile Team
Ddj   Architecture &  Design   The Distributed Agile TeamDdj   Architecture &  Design   The Distributed Agile Team
Ddj Architecture & Design The Distributed Agile Team
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4Industrialisation Du Logiciel   Introduction Et Bonnes Pratiques   V1.4
Industrialisation Du Logiciel Introduction Et Bonnes Pratiques V1.4
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Ddj Architecture & Design Beyond Functional Requirements On Agile Projects
Ddj   Architecture & Design   Beyond Functional Requirements On Agile ProjectsDdj   Architecture & Design   Beyond Functional Requirements On Agile Projects
Ddj Architecture & Design Beyond Functional Requirements On Agile Projects
 
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel  - Introduction Et Bonnes PratiquesIndustrialisation Du Logiciel  - Introduction Et Bonnes Pratiques
Industrialisation Du Logiciel - Introduction Et Bonnes Pratiques
 

DDJ - Architecture & Design - Newsflash - Agilistes Write Documentation

  • 1. Flash Spécial : les Agilistes écrivent de la documentation! Scott W. Ambler Contrairement aux idées reçues … Qui a dit que les Agilistes ne documentent pas ? Scott étudie les véritables pratiques des équipes agiles. Scott travaille en qualité de Practice Leader Agile Development pour IBM Rational. Traduction par Emmanuel Hugonnet de l’article quot;Newsflash: Agilists Write Documentation!quot; avec l’aimable autorisation de Scott Ambler et de Jon Erickson du Dr. Dobb’s Journal. Vous avez probablement entendu, voire pire propagé, certains des mythes sur la modélisation et la documentation des projets agiles. Par exemple, le mythe selon lequel les agilistes 1ne mettent en place aucune architecture, une idée reçue qui ne tient pas bien longtemps vu que les tous les systèmes ont forcément une architecture quelque soit la méthode de développement mise en œuvre. Un autre de ces mythes est le fait que les agilistes ne commencent pas par modéliser les grandes lignes d'un projet, mais où avez-vous vu que l'on finance un projet de développement sans savoir comment le réaliser ? Apparemment les agilistes ne documentent pas non plus, ayant convaincu comme par magie les utilisateurs finaux que les manuels sont inutiles, les équipes de support de fonctionner sans documentation et l'équipe de maintenance de maintenir sans documentation d'ensemble. Les agilistes ne tiennent pas compte d'une liste vraiment très impressionnante de choses, je pense qu'il est plus que temps d'éclaircir ces incompréhensions et de tuer ces mythes. Ce mois-ci je vais résumer les résultats de deux études, l'une qui se concentre plus spécifiquement sur les activités de modélisation et de documentation des projets de développement logiciel, et l'autre qui explore les pratiques réelles des équipes agiles. Vous verrez que la réalité est bien loin de la rhétorique. Commencer par modéliser les grandes lignes L'étude quot;Dr. Dobb's 2008 Modeling and Documentation Surveyquot; a mis à jour un certain nombre de points intéressants sur la manière dont les équipes de développement approchent la modélisation. 18% des équipes traditionnelles ne font aucune modélisation, à comparer au seulement 5% des équipes agiles il est donc plus probable qu'une équipe agile modélise par rapport à une équipe traditionnelle. La première approche de la modélisation se fait par l'intermédiaire de schémas pour 55% des équipes qui préfèrent dessiner pour penser ou communiquer des idées, 30% dessinant puis conservant les schémas lorsque cela avait un sens. La majorité des équipes traditionnelles font elles aussi des schémas, avec 33% des équipes dessinant, 33% dessinant et conservant les schémas importants. 7% des équipes agiles utilisent des outils de modélisation (SBMT) comme ER/Win ou Rational System Architect (RSA) dans un but de documentation, 5% pour le cycle de modélisation et d’ingénierie, à comparer à respectivement 16% et 0% pour les équipes traditionnelles. La Figure 1 résume les résultats pour les quatre types d'équipe étudiés : ad-hoc, traditionnelle, itérative et agile. L'étude quot;Ambysoft 2008 Agile Practices and Principles Surveyquot; explore l'adéquation entre les 1 NdT : j’ai utilisé l’anglicisme ‘agiliste’ plutôt que de le traduire par manque d’un vocabulaire adapté. Une traduction convenable aurait pu être ‘praticien agile’.
  • 2. développeurs agiles et les différentes stratégies de développement. Ainsi pour connaître les pratiques de modélisation des équipes agiles au début d'un projet la question posée était : quot;Nous réalisons une modélisation des principales exigences au démarrage d'un projet agile pour pouvoir budgéter et planifierquot;. L'étude indique que 74% des personnes interrogées sont d'accord ou fortement d'accord avec cette proposition, 18% ne se prononcent pas et seulement 8% sont en désaccord ou en profond désaccord avec cette proposition. De même, pour connaître leur position quant à la modélisation de l'architecture nous avons posé la question suivante : quot;Nous modélisons l'architecture au démarrage d'un projet agile afin de partir dans la bonne directionquot;. Les résultats sont quasiment identiques avec des scores respectifs de 73%, 19% et 8%. En conclusion deux études différentes sur deux communautés différentes montrent toutes les deux que les équipes de développement agiles, dans la pratique, modélisent. Figure 1 : Les stratégies de modélisation suivant les méthodes de développement logiciel employées Les équipes agiles modélisent au début d'un projet car elles doivent répondre aux mêmes questions que les autres : • quel périmètre doit-on adresser, • pour quel coût, • dans quels délais • et avec quelle stratégie technique. Sans des réponses cohérentes à ces questions un projet n'obtiendra tout simplement pas son budget. Que l’on doive modéliser dès les premiers instants de la vie d'un projet, n'implique pas qu'on doive le faire en écrivant des montagnes de documentation. On peut tirer les bénéfices de la modélisation, à savoir communiquer et réfléchir, sans avoir à accepter les coûts d'une documentation inutile. Une autre raison pour laquelle les équipes agiles commencent par modéliser, contrairement aux préceptes des extrémistes de la communauté agile, est que les métaphores architecturales ne suffisent pas. Les architectures des systèmes actuels sont complexes, elles adressent quantités d'exigences non-fonctionnelles et de contraintes comme la performance, la sécurité, et bien d'autres
  • 3. encore (cf. mon article d'octobre 2008 à ce sujet2). La métaphore architecturale ne va pas permettre de réaliser le travail. Prenez par exemple le site web de la conférence Agile 2008 (www.agile2008.org) qui a été construit selon l'idée qu'organiser une conférence c'est comme produire une pièce de théâtre. Cette métaphore n’était pas la bonne, rendant le site complexe à utiliser. Par exemple, pour construire votre planning de conférences auxquelles vous souhaitiez participer, vous deviez parcourir les 19 pages du programme officiel décrivant en détail chacune des représentations. Mortel ! Un peu de réflexion et de modélisation en amont aurait surement permis d'éviter ce genre de problème. Documentation Agile L'étude quot;Dr. Dobb's Modeling and Documentation Surveyquot; a révélé qu'il n'y a guère de différence selon l'approche utilisée lorsqu'il s'agit de produire de la documentation sous forme d’un livrable. Après tout un livrable reste un livrable. Les craintes concernant le manque mythique de documentation des projets agiles sont donc infondées, les traditionalistes qui résistent encore doivent alors trouver d'autres excuses pour ne pas appliquer les stratégies agiles. Comme vous pouvez le voir dans la Figure 2, les agilistes ont une probabilité légèrement plus faible de produire une documentation générale du système que les traditionalistes, mais par contre légèrement plus forte de produire une documentation opérationnelle. Je pense que cela vient du fait que le besoin d'une documentation générale du système se ressent moins, les agilistes ayant tendance à produire du code de bien meilleure qualité, résultat du remaniement3 et de la pratique du développement piloté par les tests (TDD4). On peut aussi expliquer le moindre besoin de documentation des équipes agiles par l'écriture de spécifications exécutables. L'étude quot;Ambysoft 2008 Agile Practices and Principles Surveyquot; s’est intéressé aux interactions et à la communication des équipes agiles, en demandant de noter l'efficacité de différents moyens de communication avec les clients. Voici les résultats ordonnés par efficacité, le score de chacune des techniques étant une moyenne pondérée entre 5 (très efficace) et -5 (très inefficace) : 1. Discussion en Face à Face (F2F) (4.06) 2. Face à Face (F2F) avec un tableau blanc (3.46) 3. Digrammes généraux (1.89) 4. Documentation générale (1.86) 5. Vidéo conférence (1.62) 6. Conférence téléphonique (1.51) 7. E-mail (1.32) 8. Documentation détaillée (0.16) 9. Messagerie instantanée (0.15) On peut faire plusieurs observations intéressantes. Premièrement, on peut comprendre la croyance des traditionalistes dans la valeur des spécifications détaillées avec ce résultat neutre malgré tout ce que l'on peut entendre sur les méfaits de la documentation détaillée dans les communautés agiles. Deuxièmement, partager une documentation générale avec les clients semble avoir un certain intérêt, même si c'est loin d'être aussi efficace qu'une communication directe, ce qui fait mentir les préjugés sur la documentation agile. Troisièmement, la théorie de la richesse du média, qu’Alistair Cokburn a introduite dans la communauté agile tient la route (cf. www.agilemodeling.com/essays/communication.htm). Le moyen de communication le quot;plus chaudquot; semble être généralement le plus efficace. 2 NdT : cet article est disponible en français à l’adresse : 3 NdT : refactoring. 4 NdT : Test Driven Development
  • 4. Quatrièmement, ces résultats peuvent expliquer pourquoi les projets agiles avec des équipes distribuées semblent être plus risqués que les projets où les équipes sont regroupées, car plus les équipes sont distribuées et plus le choix de moyens de communication est restreint. L'étude quot;Dr Dobb's Agile Adoption Surveyquot; (cf. www.ddj.com/architect/207600615) avait montré que les chances de succès d'un projet agile variaient de 83% pour une équipe regroupée, 72% pour des équipes peu distribuées à 60% pour des équipes distribuées. Figure 2 : Les probabilités de produire un livrable de documentation suivant les méthodes de développement logiciel employées. Bonnes Pratiques de la Modélisation et la Documentation Agile Maintenant que l’on tient pour acquis le fait que les développeurs agiles modélisent et écrivent de la documentation, on peut se demander pourquoi ces mythes persistent encore. Je pense qu'il y a à cela trois raisons principales. Premièrement, la communauté agile se bat pour essayer de décrire de manière cohérente ses pratiques. Par exemple, si on mentionne la modélisation d'une vision globale du projet sur les listes de discussion agiles la conversation évolue rapidement vers les méfaits de la modélisation détaillée du projet comme première étape obligée (BDUF) et le poids de la bureaucratie avec virtuellement aucune information sur ce que les pratiques réelles des équipes. Deuxièmement, beaucoup de traditionalistes ont peur de l'approche agile du développement logiciel, car elle demande d'autres compétences et souvent plus de discipline pour réussir. Les quot;nouvelles règlesquot; du développement agile inquiètent naturellement ceux qui ne les connaissent pas bien ou qui n’ont pas eu l'opportunité d'effectuer la transition. Troisièmement, le manque de spécifications détaillées au démarrage d'un projet agile, peut laisser croire que les équipes agiles ne modélisent pas à des traditionalistes ne connaissant pas l'approche Développement Piloté par la Modélisation Agile (Agile Model Driven Developpement). Par exemple, nous avons vu dans la Figure 1 que les équipes agiles modélisent plus fréquemment que les traditionalistes, qu'elles préfèrent les schémas et les dessins à de la documentation détaillée produite par un logiciel de modélisation (SBMT). Des différences comme celle-ci peuvent être mal interprétées si on n'est pas familier des stratégies disciplinées des équipes agiles.
  • 5. Il y a quantité de ressources en ligne qui décrivent comment les équipes agiles approchent la modélisation et la documentation. Les bonnes pratiques AMDD sont • de commencer par recueillir les exigences initiales et de se forger une vision globale de l'architecture dès le début du projet pour pouvoir écrire des spécifications exécutables selon une approche de Développement Piloté par les Tests (TDD), • d’éviter de dupliquer l’information autant que faire se peut, • d'écrire la documentation plus tard dans le cycle de vie du projet, • de promouvoir l'implication des clients, de réaliser les exigences selon leur priorité, • d'inclure la modélisation dans le planning de l'itération / du sprint, • de produire des modèles et de la documentation juste suffisants pour la situation courante, • de modéliser les détails en groupe en mode Juste à Temps (JIT), • parfois de modéliser à l'avance pour certaines exigences complexes, • et d’utiliser différentes formes de modélisation et de représentation. On peut trouver une description de l’ensemble de ces bonnes pratiques sur www.agilemodeling.com/essays/bestPractices.htm. Nous devons mieux faire On peut tirer profit des pratiques de modélisation et de documentation efficace, cependant de nombreuses organisations n'en retirent aucun bénéfice. L'étude quot;Dr. Dobb's Modeling and Documentation Surveyquot; indique que 80% des développeurs apprennent la modélisation sur le tas, 28% en étant encadré par une personne rompue à la modélisation, 18% à l'université, 9% en suivant une formation à la modélisation, et 5% en suivant une formation à un outil de modélisation. Il me semble que si notre apprentissage de la modélisation était moins hasardeuse, alors celle-ci serait entourée de moins de mythes et d'incompréhensions et plus important encore les pratiques et les outils de modélisation pourraient être mis en œuvre de manière beaucoup plus efficace. Annexe : les études En juillet 2008, j'ai effectué deux études pour savoir ce qui se passe réellement dans les équipes de développement. L'étude quot;Dr. Dobb's Modeling and Documentation Surveyquot; porte sur les lecteurs du DDJ, ce qui couvre les pratiques de développement depuis les traditionnelles jusqu'aux pratiques ad-hoc. Nous avons utilisé la liste de diffusion du Dr. Dobb's et le blog de Jonathan Erickson pour en faire la publicité afin que les gens répondent au questionnaire. 279 personnes y ont répondu, dont 54.8% de développeurs et 25.4% de managers. En ce qui concerne l'expérience du monde de l'informatique, 33.3% avaient entre 10 et 20 ans d'expérience et 41.6% en avaient plus de 20. Les données originales (sans les informations personnelles), les questions telles quelles étaient posées et le résumé de l'enquête sous forme de diapositives sont disponibles sur www.ambysoft.com/surveys/modelingDocumentation2008.html. L'étude quot;Ambysoft 2008 Agile Practices and Principles Surveyquot; a été réalisée la dernière semaine de juillet, et s'est concentrée sur les équipes de développement agile. L'enquête a été annoncée sur les listes de diffusion Agile Modeling, Agile Database, Extrem Programming, Agile Project Management, et Scrum Development. 337 personnes y ont répondu dont 37% de développeurs et 37 de managers, 42% avaient entre 10 et 20 d'expérience en informatique et 17% avaient plus de 20 ans d'expérience. Les données originales, les questions et les diapositives résumant les résultats sont disponibles sur www.ambysoft.com/surveys/practicesPrinciples2008.html.