Blog de Nicolas DUMINIL

Lasciate ogni speranza vuoi che entrate qui !

Un "scrum", deux "scrums"

Publié le 02/04/2015

J’ai toujours pensé que, en France, on avait un problème de communication consistant à avoir des difficultés lorsqu’il s’agit d’utiliser le principe d’abstraction. Ce principe consiste à isoler par la pensée des détails considérés comme non significatifs pour l’étape courante de la communication, à fin de rendre le discours plus simple et compréhensible. On dit toujours, par exemple, « où ai-je garé ma Toyota ?» au lieu de « où ai-je garé ma voiture ? », ou alors « je vais chez Auchan » au lieu de « je vais au supermarché », alors que le fait de préciser la marque de la voiture ou le nom du supermarché n’apporte aucun élément d’information essentiel à la communication. Il m’est même arrivé de me faire corriger par mon interlocuteur, lors d’une discussion au sujet du Palais du Louvre, que j’appelais «le palais». « Ce n’est pas un palais, c’est le Louvre » m’a-t-il dit, ce à quoi j’ai répondu que le Louvre se qualifiait, effectivement, comme palais.

 

Il y a beaucoup d’exemples de ce pattern. On dit « mes adidas », « ton galaxy » au lieu de « mes baskets » ou « ton téléphone » et on accorde à des noms propres des fonctions de substantifs commun, pouvant même les énumérer, par exemple, « un PDF, deux PDF » (il s’agit là bien-sûr du syntagme Portable Document File créée par Adobe). Tant qu’il s’agisse d’une communication informelle, quotidienne, directe et sans importance, il n’y a pas de problèmes. Mais là où ça devient plus sérieux c’est lorsqu’il s’agit d’une communication structurante pour la pensée, comme celle pouvant servir à l’apprentissage et, plus généralement, au transfert des connaissances. Car, malgré tout abus de langage, il faut garder dans l’esprit qu’un PDF n’est rien d’autre qu’un fichier et, par conséquent, ne pas spécialiser la communication au point de la rendre plus complexe et non généralisable, faute de faire abstraction des détails non-significatifs comme, dans notre exemple, le format du fichier en question.

 

Les praticiens de Java (et d’autres langages OO à l’exception de C++) connaissent bien le design pattern « Program to an interface, not to an implementation ». Ce que ce pattern veut dire c’est que le code doit être designed to change. Par exemple, on peut considérer les classes Dog et Cat, toute les deux implémentations de l’interface Animal. Il est recommandé, lorsque faire se peut, de ne pas les utiliser en tant qu’implémentations concrètes, c’est-à-dire en tant qu’instances de Dog ou Cat, mais en tant que qu’interfaces Animal. Evidemment, on doit les instancier en tant que classes concrètes, ce n’est pas possible autrement, mais toute autre référence doit se faire à l’interface Animal et non aux classes Dog ou Cat. Ceci a des nombreux avantages comme, par exemple, le fait d’encapsuler de la complexité en faisant abstraction des détails non-significatifs.

 

Pour ceux qui ne viennent pas du monde du développement logiciel, tentons une analogie dans le domaine du matériel. Chaque player MP3 du marché se connecte différemment à votre ordinateur et les détails de cette connexion dépendent de la logique que le constructeur a utilisée en construisant le matériel. Mais bien que cette logique (les détails d’implémentation) soit différente d’un produit à une autre, le connecteur USB, c’est-à-dire l’interface, est le même. Ainsi, en connectant un player de marque Zune à la place de votre ancien player de marque iPod (remarquez l’élégance avec laquelle j’ai évité de dire « un Zune » ou « un iPod »), vous n’avez pas à acheter un autre ordinateur. Mais pour arriver à avoir des connecteurs « standard », c’est-à-dire les mêmes quelques soit la diversité du matériel et malgré ses spécificités respectives, il a fallu faire abstraction de ces spécificités et réduire toute la complexité de la logique de connexion au plus grand dénominateur commun de tous les éléments matériel pouvant être connectés à votre ordinateur. Voilà l’importance de l’abstraction.

 

Pourquoi je vous parle de tout ça ? Pour en venir à une de mes missions actuelles au sein d’une grande administration française. La méthodologie de conduite de projet choisie est Scrum. Pas que l’administration française serait connue pour son agilité, mais c’est plutôt par alibi que Scrum a été choisi. Car pour eux, une méthodologie agile de conduite de projet rend inutile tout effort de conception, d’architecture et de design logiciel, toute activité de rédaction de document et spécification, ainsi que tout effort de gestion de ressources humaines, qui n’ont qu’à s’auto-gerér, car c’est pour ça qu’on fait de l’agile, n’est-ce pas ? Ainsi, je ne sais pas ce que le vocable Scrum signifie exactement pour eux mais, le matin, lors du stand-up matinal, ils s’appellent les uns les autres pour se réunir auprès du white-board et « se faire un Scrum ». On se fait donc « un Scrum » lors duquel on parle d’un DNS et non pas d’un host, d’un Weblo et non pas d’un serveur d’application, d’un Mantis (voir même d’une Mantis, au féminin) et non pas d’un ticket, d’un SVN ou d’un GIT et pas d’un référentiel de code source, d’un maven, d’un Nexus ou d’un Jenkins, etc. Et tous ces raccourcis de communication conduisent à autant de raccourcis de pensée parce que, faute de généraliser le discours et faire abstraction de ce qui n’est pas essentiel, la pensée devient, elle aussi, ancrée dans le concret le plus immédiat et basique, ne prends pas de la hauteur et du recul mais, au contraire, elle aboutit à des solutions extrêmement figées, sans aucune souplesse et très éloignées du fameux designed to change. Alors, bonjour l’agilité.

Envoyer à un ami

* champs obligatoires

* champs obligatoires

« Les informations recueillies font l’objet d’un traitement informatique destiné au traitement de votre demande. Le destinataire des données est Simplex Software. Conformément à la loi « informatique et libertés » du 6 janvier 1978 modifiée en 2004, vous bénéficiez d’un droit d’accès et de rectification aux informations qui vous concernent, que vous pouvez exercer en vous adressant à Simplex Software, 26 Allée des Sapins - 95230 Soisy sous Montmorency. Vous pouvez également, pour des motifs légitimes, vous opposer au traitement des données vous concernant. »