Métaphore

Un article de Agora2ia.


La motivation de cette cette pratique XP, est de parvenir à décrire un module de l’application, voire l’application dans son ensemble, en utilisant une analogie, le champ lexical d’un autre domaine : métier, loisir, vie courante...

Trouver une métaphore pertinente prend du temps. Aussi, on pourra poser une ou deux réunions d'une demie heure par exemple, pour identifier une métaphore qui s'adapte judicieusement à l'application. On pourra éventuellement profiter du PlanningGame pour faire cet exercice. Dans ce cas, il faut profiter du fait que tous le monde soit réunis sans pour autant en abuser et déborder sur « l'ordre du jour » du planning game : une demie heure au cours de deux ou trois planning game. Ensuite, on pourra utiliser et affiner cette métaphore au quotidien dans les développements, la communication avec le client, avec un nouveau membre de l'équipe...


Quels sont les intérêts ?


Tout d’abord pour l’équipe de développement, l’exercice en lui-même d’identifier une métaphore oblige à mettre à plat la connaissance sur l’application, donc le domaine métier comme la conception. On diffuse ainsi et homogénéise donc la connaissance, on lève les ambiguïtés, comble des lacunes voire éventuellement assaini une portion insatisfaisante de la conception lors du RemaniementContinu. La mise en place d’une métaphore est donc un prétexte à communiquer.


Le développeur étant souvent un grand enfant joueur, il se prête volontiers aux petits jeux intellectuels, l’association d’idées en étant un parmi d’autres… Une classe de log qui reçoit des informations brutes et les affiche de façon compréhensible, c’est un peu comme une télévision… Si on appelait cette classe Television. Mais si l’antenne est débranchée ou que le câble est coupé, il faut un moyen de faire la différence entre cette panne et une absence de programme télé afin que l’utilisateur agisse. Peut être qu’une classe Maintenance ou Repairer Ca y est, on file la métaphore… Et innocemment, on réfléchi en s’amusant…


Une fois établie, la Métaphore devient un média de communication, sur les fonctionnalités de l’application et/ou sa conception. De plus, cette métaphore pourra très bien se révéler dans l’implémentation même, dans le code, dans le nom d’un module, d’une classe, d’une fonction, d’une structure…


Enfin, l’idéal est de choisir un champ lexical facilement accessible, compréhensible pour tout nouvel arrivant, qui n’a pas forcément de connaissances préalables dans le domaine métier. La métaphore devient alors un outil de vulgarisation aussi précieux qu’une ConceptionSimple


Paul et Mick dans l’extrême

La métaphore est assurément la pratique XP la plus controversée, même entre praticiens.

Elle est donc la moins répandue de toutes les pratiques.

Certains praticiens sont convaincus qu'il faut trouver l'analogie dans le même domaine métier...

D'autres doutent de l'intérêt véritable de cette pratique.


Par experience, la métaphore est souvent le recours d'un interlocuteur qui souhaite faire passer un message. N'avez-vous jamais discuter avec une personne qui a pris un exemple, une "image" pour se faire comprendre autrement ?!...


Pour ma part, je vous retourne la question : en lisant le précédent chapitre, sur les livraisons fréquentes, avez vous fait attentions aux métaphores ?... Avec le recul, pensez-vous qu'elles vous ont aidé à mieux appréhender le connaissance que je voulais transmettre ?...


Resources