UML, agilité, et rétroaction

Publié par David Beaumier le vendredi 4 octobre 2013 à 16:17

Depuis longtemps j’utilise UML comme formalisme pour exprimer certains concepts et favoriser une compréhension commune des personnes impliquées dans le développement d’une fonctionnalité.  Je suis partisan d’un UML pragmatique et des principes de modélisation Agiles.

Il m’arrive régulièrement d’utiliser un bloc-note ou un tableau blanc pour jeter les bases d’une conception. À ce moment-là, il est clair pour toutes les personnes impliquées qu’il s’agit d’une conception initiale, d’un draft quoi.  Personne ne s’attend à ce stade-ci que tous les cas de figure aient été envisagés dans les moindres détails. Il y a une entente tacite sur le niveau de précision du diagramme.

Cependant, il arrive parfois qu’il soit plus pratique d’utiliser un outil de modélisation pour réaliser un diagramme UML. Personnellement, j’apprécie beaucoup Enterprise Architect de Sparx Systems que j’utilise depuis nombre d’années. Avec le temps, j’en suis toutefois venu à  constater que l’entente tacite qui existe lorsque je modélise sur papier ou au tableau ne tient plus vraiment lorsque je produis un modèle informatisé. Les gens plutôt ont l’impression d’avoir devant eu un « plan » précis de ce qui doit être fait.

L’analogie qui me vient à l’esprit est celle d’un plan de bâtiment. Un plan fait avec un logiciel de DAO semble dégager une impression de précision et d’achèvement alors que, dans les faits, il peut être aussi préliminaire qu’un plan à main levée.  Dans l’exemple ci-dessous, le plan fait par DAO semble plus achevé. Pourtant, avec l’esquisse je pourrais déjà débuter les travaux puisque j’ai des mesures. Comme je suis un menuisier Agile, et qu’ainsi ma priorité est de satisfaire mon client en lui livrant rapidement des fonctionnalités, je suis en mesure de débuter un mur et l’assemblage des chevrons dès maintenant.

Plan fait avec un logiciel de DAOPlan fait à la main

J’ai déjà vécu un problème similaire avec les interfaces graphiques  à l’époque où j’utilisais des outils de conception visuelle se rapprochant énormément du produit final. Trop souvent les utilisateurs avaient l’impression que la fonctionnalité était quasiment terminée, tellement la maquette était réaliste. Bien souvent cela avait comme conséquence de limiter l’échange d’idées puisque les parties prenantes voyaient la solution comme déjà établie. Aujourd’hui, j’utilise l’outil Balsamiq Mockups pour produire des maquettes qui ne laissent aucune place à l’ambigüité quant à leur niveau de précision. Ci-dessous, un exemple de ce que permet de faire Balsamiq. C’est vraiment merveilleux car les utilisateurs sont conscient de la facilité à modifier un tel design et sont plus enclins à proposer des améliorations.

Maquette Balsamiq

C’est tout récemment que j’ai eu une révélation sur les diagrammes faits dans Enterprise Architect : pourquoi ne serait-il pas possible de leur donner un style à la Balsamiq? De cette façon il serait évident pour tout le monde qu’il ne s’agit pas de modèles complets et finaux, mais plutôt  d’une base pour débuter le travail. Quelle idée géniale, me dis-je! Avant de soumettre l’idée aux gens de Sparx Systems, j’ai tenté une petite preuve de concept en modifiant légèrement l’apparence des polices de caractères d’un diagramme. Après quelques minutes d’expérimentation, j’ai découvert les options « Hand Drawn » et « Whiteboard Mode » dans les propriétés du diagramme. Wow, c’est déjà là… Trop génial!

Ea Handdrawn Ea Whiteboard
Mode dessin à la main (Handdrawn) Mode tableau blanc (Whiteboard)

Voilà donc, d’un simple clic on peut obtenir une apparence « napkin » pour nos diagrammes. Tout comme avec Balsamiq, il devient alors possible de restaurer l’entente tacite sur la précision du diagramme tout en profitant des avantages d’un outil de conception visuelle. Non seulement cela repositionne les échanges au bon niveau,  mais j’ai en plus l’air d’être super bon en dessin.

Bonne conception!

blog comments powered by Disqus

0 Comments:

Post a comment

Comments have been closed for this post.