Qu’est-ce qui survit lorsque le dernier “dev” a quitté l’équipe ?

Le code, bien sûr. Dans certaines organisations, c’est tout ce qui compte. Elles disent : “Nous avons le code, inutile de réinvestir dans la conception. Il suffit de refondre”.

Nous rêvons tous d’une IA qui pourrait “refondre”, c.à.d qui exécuterait l’opération inverse à celle d’une équipe.

Une équipe élabore, au fil de nombreuses conversations de conception, un système incluant de la technologie. Le but des conversations est d’obtenir du sens partagé. Il faut un grand nombre de conversations, et une grande cohérence dans l’équipe, pour aboutir à un système que l’équipe affirme comme réussi.

Bien sûr, par “équipe”, entendre l’équipe au sens large : le groupe de tous les acteurs ayant à partager du sens sur le projet. Je n’ai jamais entendu d’aussi belles réussites que lorsque les “techs” parlaient de leur connection remarquable avec les responsables métier et les utilisateurs. Dans les silos, à travers les cloisons professionnelles ou juridiques, ce que vous allez obtenir, c’est d’abord des barrières de communication, et non du sens partagé.

Le code, l’élément final — presqu’un fétiche — est le produit qui résulte de tout ce travail de fabrication de sens. En vrai les influenceurs vont me tomber dessus si je ne leur concède pas que le produit, ce n’est pas le code, OSEF du code, le produit c’est le service. Mais peu importe, sans le code, il n’y a pas de service.

Une intelligence artificielle idéale (j’utilise le terme marketing, puisqu’on est dans la mythologie) pourrait reprendre ce précipité de conversations qu’est le code, pour en faire quelque chose de nouveau, d’inédit, de non-mécanique, qui aurait de la valeur pour ceux qui continuent d’exploiter le système, et ont besoin de changements. Cette IA agirait comme une broyeuse à papier inversée :

  • on lui donne quelque chose qui a perdu de son sens et qui ne marche plus (tout à fait)
  • un opérateur “prompte” quelques paramètres (UN opérateur, pas une équipe ! C’est là que le côté réduction des coûts opère sa séduction).
  • elle génère quelque chose qui marche, et qui a du sens

À une toute petite échelle, c’est réellement ce qui se passe. Exemple :

  • je ne sais pas comment traiter un fichier csv en python
  • je prompte ma machine
  • j’obtiens un code canonique de traitement de fichier csv en python

Nous sommes tous d’accord sur le contenu de cette expérience, mais non sur sa portée. Les questions commencent lorsqu’on change le contexte, ou que l’on passe à l’échelle, en faisant fi du contexte.

Comment faire évoluer une conception ? Ce sujet fait l’objet d’un article intéressant de Peter Naur, Programming as Theory Building. Nul doute que nos progrès depuis 1985 peuvent remettre en cause une partie de ses conclusions. Mais je vous recommande l’article. Il appelle une question plus profonde :

Quand nous développons un système, comment savons-nous ce que nous savons ?

Stay tuned

Code Fetish

Publié sur Linked In le 28/08/2024