Software Factory

Dans le vocabulaire des ESN et de leur clients, le mythe de la "software factory" est étrangement tenace. 🏭

Dans une usine, les ouvriers transforment de la matière. Ils fabriquent des pièces, les assemblent. La part d'initiative qui leur revient porte sur l'amélioration de leur efficacité à produire ainsi qu'à détecter et résoudre des problèmes d'exécution. Ces initiatives peuvent servir en retour aux acteurs qui déterminent en amont les objectifs et le processus de fabrication, et de loin en loin la conception du produit. Mais la conception et la valeur du produit ne sont pas ce sur quoi les ouvriers travaillent.

Dans un projet logiciel, les acteurs ne transforment pas de la matière, mais des idées, idées que l'on peut ranger dans 4 groupes distincts :

𝕄 le domaine Métier ℂ la conception 🄾 l'exécutable d'un ordinateur 𝓐 l'état de l'art

Si on n'y regarde pas de près, par ex. si on se contente du journal de 20h ou de twitter pour s'informer, il pourrait sembler que les dévs. travaillent uniquement à la traduction d'idées de ℂ vers 🄾 c'est à dire à produire du code.

🚨 Faux

Ils traduisent aussi des idées de ℂ et 🄾 vers 𝕄, afin de mieux répondre au besoin du Métier, lequel — qui l'eût cru — découvre ses besoins à mesure que ℂ et 🄾 grandissent.

Ils traduisent enfin des idées de ℂ vers 𝓐, de manière à faire de 𝓐 un meilleur guide de travail, plus à même de répondre aux besoins du Management.

Si l'on ne tenait pas compte des considérations Métier (valeur du logiciel) et Management (pérennité du processus) dans le travail des développeurs alors :

  1. oui, le travail du développeur consisterait seulement à produire du code
  2. l'entreprise aurait le plus grand mal à tirer de la valeur de ce travail

Le modèle de la software factory, vision mécanique dans laquelle chaque "poste" exécute à son niveau le geste de production qui va bien est naïf et obsolète.

💡 ⇒ ⚙️ ⇒ 📲

Ce modèle "tourne" peut être dans une animation pptx, mais la réalité est différente.

Certaines organisations peuvent déployer en 6 semaines avec 5 personnes le logiciel qui demanderait à d'autres organisation 6 mois et 20 personnes. Si une telle différence est possible, c'est parce que le travail de développeur ne se cantonne pas à produire du code.

Non seulement les développeurs le savent, mais également les responsables Métier, ainsi que le Management de toutes les entreprises qui ont amélioré leur agilité ces 20 dernières années. À moins que cette poursuite de l'agilité ne soit le fruit d'une hallucination collective, elle montre que l'on confie aux développeurs bien plus que la tâche de produire du code.

Pourquoi le mythe de la "software factory" est-il si tenace ? Parce qu'il exprime un désir : celui d'encadrer ce travail complexe qu'est le développement afin de le rendre totalement manageable.

Stay Tuned !

publié sur Linked In le 10/04/2023