« Feature Factories vs Value Generators » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
(2 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Catégorie:Itamar Gilad]] | |||
[[Category: Rôle du Product Manager]] | [[Category: Rôle du Product Manager]] | ||
[[Category: Portail Product Owner]] | [[Category: Portail Product Owner]] | ||
Ligne 20 : | Ligne 21 : | ||
==Usines traditionnelles== | ==Usines traditionnelles== | ||
Voici à quoi ressemble une unité de production, par exemple une usine, du point de vue de la théorie des systèmes.<br/> | Voici à quoi ressemble une unité de production, par exemple une usine, du point de vue de la [https://en.wikipedia.org/wiki/Systems_theory théorie des systèmes].<br/> | ||
<br/> | <br/> | ||
[[Fichier:Classic-Factory-Model-scaled.jpg|border|700px|link=]]<br/> | [[Fichier:Classic-Factory-Model-scaled.jpg|border|700px|link=]]<br/> | ||
Ligne 41 : | Ligne 42 : | ||
Mais il y a eu quelques complications : | Mais il y a eu quelques complications : | ||
* Dans le domaine du logiciel, il n'y a pas "une seule bonne façon" (''one right way'', terme inventé par le théoricien du management traditionnel Frederick Winslow Taylor) de produire. Contrairement aux travailleurs à la chaîne, on ne peut pas dire aux développeurs de logiciels et aux concepteurs UX comment développer le logiciel parce que chaque projet est nouveau et différent ; c'est à eux qu'il incombe de trouver la solution. Cela signifiait qu'il fallait recruter des personnes plus instruites et leur verser des salaires plus élevés. La semaine-personne est devenue l'unité d'entrée la plus importante. | * Dans le domaine du logiciel, il n'y a pas "une seule bonne façon" (''one right way'', terme inventé par le théoricien du management traditionnel Frederick Winslow Taylor) de produire. Contrairement aux travailleurs à la chaîne, on ne peut pas dire aux développeurs de logiciels et aux concepteurs UX comment développer le logiciel parce que chaque projet est nouveau et différent ; c'est à eux qu'il incombe de trouver la solution. Cela signifiait qu'il fallait recruter des personnes plus instruites et leur verser des salaires plus élevés. La semaine-personne est devenue l'unité d'entrée la plus importante. | ||
* Au fur et à mesure que les produits devenaient plus techniques et plus complexes, les responsables ont eu du mal à dire aux développeurs exactement ce qu'ils devaient construire. C'est ainsi qu'est apparu un nouveau rôle, celui de | * Au fur et à mesure que les produits devenaient plus techniques et plus complexes, les responsables ont eu du mal à dire aux développeurs exactement ce qu'ils devaient construire. C'est ainsi qu'est apparu un nouveau rôle, celui de Product Manager, ou aujourd'hui de Product Owner, qui, d'un point de vue management traditionnel, est la personne qui traduit les feuilles de route en spécifications que l'équipe de "delivery" peut utiliser. | ||
Une fois ces deux problèmes résolus, nous avons pu créer l'usine à fonctionnalités :<br/> | Une fois ces deux problèmes résolus, nous avons pu créer l'usine à fonctionnalités :<br/> |
Dernière version du 10 mars 2024 à 14:13
Auteur : Itamar Gilad
Source : Feature Factories vs. Value Generators
Date : 11/12/2023
Traducteur : Fabrice Aimetti
Date : 11/12/2023
Traduction :
Image : Alden Jewell
Que nous le voulions ou non, nous sommes nombreux à travailler dans des usines à fonctionnalités (feature factories). Nous produisons des fonctionnalités les unes après les autres, en essayant de respecter une feuille de route. Pour certains, c'est tout à fait normal, mais pour d'autres, l'usine à fonctionnalités est devenue le symbole de tout ce qui ne va pas dans le développement traditionnel des produits.
Pourquoi sommes-nous si divisés ? Et qui a raison ?
La théorie des systèmes et une certaine perspective historique peuvent aider à faire la lumière, et peut-être aussi offrir une vision des alternatives. Cela peut sembler un peu théorique au début, mais restez avec moi et je vous promets de rendre cela très rapidement pertinent.
Usines traditionnelles
Voici à quoi ressemble une unité de production, par exemple une usine, du point de vue de la théorie des systèmes.
Vue d'une usine selon la théorie des systèmes
La fonction de l'usine est de transformer les entrées - matériaux, pièces, personnes, machines, etc. - en sorties, c'est-à-dire en unités fabriquées. Invariablement, l'usine produit également des déchets : des restes de matériaux, des sous-produits tels que la chaleur et la pollution, ainsi que des unités défectueuses qui ne sont pas conformes aux spécifications.
Le modèle énonce immédiatement des objectifs clairs (qui sont devenus la marque de fabrique de la gestion d'entreprise classique) :
- Efficacité : améliorer le rapport entre les sorties et les entrées (c'est-à-dire faire plus avec moins).
- Qualité : améliorer le rapport entre les sorties et les déchets
- Débit : augmentation de la capacité de fabrication pour répondre à la demande.
Le 20e siècle est en effet une histoire d'innovation dans tous ces domaines. Des chaînes de montage de Ford aux usines robotisées d'aujourd'hui, nous avons été en mesure d'augmenter considérablement le débit et la qualité de nos usines, tout en réduisant le coût de production, ce qui a conduit à l'abondance de produits que nous connaissons aujourd'hui.
Entrez dans l'usine à fonctionnalités
Dans les années 1980, les logiciels ont commencé à envahir le monde à un rythme accéléré. Les chefs d'entreprise se sont retrouvés à la tête de sociétés dotées d'un département logiciel (que, pour une raison ou une autre, beaucoup appellent IT), voire à la tête d'une société spécialisée dans les logiciels.
Pour ces personnes, le modèle de l'usine tenait toujours ; elles devaient créer une unité de production de logiciels (ou équipe de production ~ Delivery team) avec des entrées et des sorties bien définies.
Mais il y a eu quelques complications :
- Dans le domaine du logiciel, il n'y a pas "une seule bonne façon" (one right way, terme inventé par le théoricien du management traditionnel Frederick Winslow Taylor) de produire. Contrairement aux travailleurs à la chaîne, on ne peut pas dire aux développeurs de logiciels et aux concepteurs UX comment développer le logiciel parce que chaque projet est nouveau et différent ; c'est à eux qu'il incombe de trouver la solution. Cela signifiait qu'il fallait recruter des personnes plus instruites et leur verser des salaires plus élevés. La semaine-personne est devenue l'unité d'entrée la plus importante.
- Au fur et à mesure que les produits devenaient plus techniques et plus complexes, les responsables ont eu du mal à dire aux développeurs exactement ce qu'ils devaient construire. C'est ainsi qu'est apparu un nouveau rôle, celui de Product Manager, ou aujourd'hui de Product Owner, qui, d'un point de vue management traditionnel, est la personne qui traduit les feuilles de route en spécifications que l'équipe de "delivery" peut utiliser.
Une fois ces deux problèmes résolus, nous avons pu créer l'usine à fonctionnalités :
Vue systémique d'une usine de fonctionnalités
Les managers peuvent désormais se consacrer à l'important travail d'optimisation des résultats par rapport aux moyens mis en œuvre. Vous pouvez voir les résultats tout autour de vous. Certaines optimisations, telles que le cloud computing et la programmation par binôme, sont judicieuses. D'autres, comme les open space et les évaluations des performances, ont un impact plus discutable. Mais la plus grande innovation en matière de productivité est peut-être venue des ingénieurs eux-mêmes. Le développement Agile a été inventé pour remplacer la gestion de projet classique en cascade par une approche légère et itérative de la création de logiciels. Cependant, les consultants ont progressivement appris qu'ils pouvaient mieux vendre le développement agile en le présentant comme un booster de productivité - plus de code mis en production en moins de temps et d'efforts. Ce fut un succès retentissant. Aujourd'hui, je constate une forte corrélation entre la focalisation sur les résultats et les mises en œuvre maladroites de Scrum et SAFe.
Des fissures importantes dans le modèle
En théorie, le modèle de l'usine à fonctionnalités est tout à fait logique. En pratique, il s'agit d'un modèle très imparfait.
Dans une véritable usine, chaque unité produite - chaque voiture, chaise ou canette de soda - crée une certaine valeur : nous pouvons la vendre et gagner de l'argent. Par conséquent, plus de sortie équivaut à plus de valeur.
Lorsque nous développons des logiciels, les fonctionnalités que nous "produisons" ne sont pas vendues individuellement, mais sont plutôt ajoutées à un produit existant (en ce sens, le développement de logiciels s'apparente davantage au développement d'une ville qu'à la fabrication d'une voiture). Chaque modification apportée au produit est censée créer une certaine valeur ajoutée - plus de transactions, plus de revenus, des gains de temps, etc. Dans l'esprit des industries de nos ancêtres, nous supposons que tout ce que nous choisissons de créer a de la valeur.
Mais est-ce le cas ?
Au cours de la dernière décennie, nous avons commencé à obtenir la réponse. Les entreprises qui ont utilisé des techniques d'expérimentation A/B pour tester leurs idées ont appris que, dans le meilleur des cas, seule une idée sur trois aboutit à une amélioration mesurable et que, dans la plupart des cas, le taux de réussite est beaucoup plus faible, de l'ordre de 10% à 15%.
Taux de réussite des expériences et risques de faux positifs (False Positive Risks). Source : Kohavi et al
Mais les mauvaises nouvelles ne s'arrêtent pas là. Chaque fonctionnalité que nous lançons nous revient cher de multiples façons. Outre le coût du développement, il y a aussi le coût du support et de la maintenance de la nouvelle fonctionnalité pendant toute sa durée de vie. Dans une usine de fonctionnalités, les "travailleurs" produisent le produit et en assurent la maintenance. Chaque ajout au produit augmente le coût global de la maintenance et complique également le code source et l'interface utilisateur, ce qui rend le développement futur beaucoup plus lent et compliqué.
La conclusion de ces deux nouveaux facteurs est assez peu intuitive. Lorsque la majeure partie de ce que nous produisons n'a aucune valeur, mais que tout nous coûte de multiples façons, l'optimisation du débit signifie produire plus de déchets, plus rapidement, à un coût toujours plus élevé (voir cet article pour des exemples chiffrés). La voie classique de l'optimisation de l'efficacité, de la qualité et du rendement entraîne les entreprises sur la pente glissante de la production de produits surdimensionnés, difficiles à entretenir et de faible valeur.
Cette réalité n'est pas un secret. C'est la raison pour laquelle le fossé se creuse de plus en plus entre les organisations produit et le management traditionnel. Les PM, les développeurs et les concepteurs savent que le modèle de l'usine à fonctionnalités est terriblement inadapté et souhaitent le remplacer par quelque chose de mieux, tandis que les dirigeants formés au management persistent dans l'approche historique.
Créateurs de valeur
Les meilleures entreprises de produits utilisent un tout autre modèle mental. Elles poursuivent des objectifs, et non des feuilles de route, et elles optimisent les résultats, et non les fonctionnalités. Elles considèrent leurs organisations de produits (qui sont presque toujours divisées en équipes produits interfonctionnelles semi-autonomes) non pas comme des producteurs de code, mais comme des créateurs de valeur - de la valeur pour l'entreprise et de la valeur pour les clients. L'organisation produit moderne produit non seulement des résultats, mais aussi des connaissances dans le domaine - une ressource critique pour le succès.
Vue systémique de l'organisation produit en tant que modèle de création de valeur
Ce changement entraîne une rupture encore plus importante avec l'approche traditionnelle du management. On ne dit plus à l'organisation produit ce qu'elle doit faire (comme dans une feuille de route), mais plutôt ce qu'elle doit réaliser (comme dans des objectifs basés sur les résultats). La délégation et la confiance jouent un rôle clé.
Le changement va dans les deux sens. L'équipe produit doit cesser de se considérer comme une unité de production (vous seriez surpris de voir combien d'entre elles le pensent). Notre travail ne consiste plus seulement à travailler tête baissée à l'élaboration de fonctionnalités conformément à des spécifications. L'organisation produit doit produire de la traction vers les objectifs, et cette traction doit être communiquée clairement au reste de l'entreprise (ce qui contribue à créer de la confiance). L'expérimentation et les preuves jouent un rôle majeur.
(Pour avoir une idée de ce à quoi ressemble ce monde, jetez un coup d'œil au cadre de travail GIST).
De manière encore plus large, le silotage classique entre le management, le développement et l'entreprise doit disparaître. Comme je l'ai déjà écrit, notre objectif devrait être de briser les murs et de faire en sorte que l'ensemble de l'entreprise travaille ensemble à la réalisation d'objectifs communs - créer de la valeur pour l'entreprise et pour les clients.
Certains managers avant-gardistes avec lesquels je m'entretiens souhaitent vraiment passer à ce modèle. Mais ils sont freinés par la pensée traditionnelle. Je vois beaucoup d'OKR concernant l'amélioration de l'efficacité et de la productivité. De nombreux CTO considèrent que l'objectif principal est de faire travailler les développeurs à 100% de leur capacité et poussent leurs équipes à livrer plus de points de user stories par sprint. Bien qu'il n'y ait rien de mal à cela en soi, il s'agit au mieux d'optimisations de second ordre, et au pire d'importantes sources de gaspillage. La meilleure optimisation consiste à rechercher un ratio plus élevé de lancements à valeur positive. Si vous embrassez cet objectif, beaucoup de choses que vous faites aujourd'hui n'auront plus de sens. Il s'agit de la première étape d'un long voyage visant à mettre un terme au modèle obsolète de l'usine à fonctionnalités.