Un choix excessif dans le développement de logiciels ralentit les décisions
Le développement de logiciels est plus complexe qu’auparavant. Ce n’est pas parce que nos ingénieurs sont devenus plus lents ou moins compétents, c’est parce que les options ont explosé. Langages de programmationLes langages de programmation, les bases de données, les frameworks, les infrastructures en nuage, les modèles de microservices, les méthodologies de conception, il y a des milliers d’éléments parmi lesquels choisir, et d’autres s’ajoutent chaque année.
Les rapports CNCF et MAD Landscape ont suivi l’explosion du nombre de technologies disponibles. Si vous faites un zoom arrière et que vous regardez l’écosystème, vous constaterez qu’il est chaotique. Des centaines d’outils concurrents qui peuvent chacun faire la même chose, mais de manière légèrement différente, avec leurs propres forces, faiblesses et compromis. Pour un décideur, cela peut ressembler à un champ de mines. Vous hésitez. Vous analysez trop. Les progrès sont lents.
Il ne s’agit pas d’un problème de liberté, mais d’un problème de friction décisionnelle. Plus de choix signifie plus de changements de contexte, plus d’opinions et plus de réunions qui n’aboutissent à rien. Il est tentant de continuer à chercher la meilleure option. En réalité, ce dont la plupart des équipes ont besoin, c’est d’un système de contraintes clairement défini pour avancer en toute confiance, et non d’un plus grand nombre d’options à remettre en question.
Lorsque vous construisez des choses réelles, à grande échelle, l’élan est plus important que la perfection. Vous voulez de la clarté, pas du désordre. Si votre équipe se noie dans les analyses comparatives au lieu de livrer des produits, vous optimisez la mauvaise variable. Un produit suffisamment bon et bien exécuté vaut mieux qu’un produit théorique choisi trop tard.
Barry Schwartz, auteur de l’exposé TED « Le paradoxe du choix », a mis le doigt sur le problème. L’abondance d’options ne nous rend pas plus heureux ni mieux équipés. Elle nous rend anxieux, nous fait douter de nous-mêmes et retarde l’action. En tant que dirigeants, reconnaissez que la rapidité est un avantage concurrentiel. Définissez le champ d’application et les contraintes, puis agissez. La perfection viendra plus tard. Ou jamais, et c’est très bien ainsi.
Comprendre le poids des compromis dans les choix difficiles
Toutes les décisions ne permettent pas de dégager un vainqueur clair. La plupart ne le sont pas. En ingénierie comme en affaires, on parle de « choix difficile » lorsque l’option A résout bien un problème et que l’option B en résout un autre. Aucune des deux n’est objectivement meilleure. C’est là qu’intervient le véritable leadership.
Il ne s’agit pas de décisions que vous pouvez confier à une liste de contrôle ou à un organigramme. Elles nécessitent un alignement des valeurs, un contexte et une réflexion sur les compromis. Une architecture peut optimiser l’évolutivité, mais au détriment de la maintenabilité. Une autre peut être plus facile à utiliser pour votre équipe aujourd’hui, mais pourrait se heurter à un mur dans 12 mois. Votre choix dépend de votre destination et de la rapidité avec laquelle vous devez l’atteindre.
La philosophe Ruth Chang a un bon point de vue à ce sujet. Selon elle, les choix difficiles se font entre des options qui sont « à égalité ». Ni meilleures, ni pires, mais différentes en termes de valeur et d’impact. C’est à vous de décider ce qui compte le plus. C’est pourquoi diriger ne signifie pas avoir toutes les réponses, mais savoir quels risques vous êtes prêt à prendre et quels compromis vous êtes prêt à faire.
Dans ce contexte, même une mauvaise décision est généralement préférable à l’indécision. Les ingénieurs chevronnés et les chefs de produit attendent souvent une orientation, mais si vous êtes bloqué sur le choix entre deux voies viables, vous retardez toute l’exécution. Acceptez l’ambiguïté et engagez-vous. La vitesse s’accroît avec le temps. C’est en choisissant une voie et en en tirant des enseignements que vous ferez évoluer un système ou une entreprise.
Et pour citer Randy Shoup, ancien vice-président de l’ingénierie chez eBay et WeWork : « Il n’y a pas d’architecture parfaite pour toutes les échelles, pour toutes les phases d’évolution, pour tous les domaines de problèmes ». Il a raison. Construisez ce qui convient aujourd’hui, comprenez les compromis et prévoyez de vous adapter. Prendre des décisions difficiles avec des informations imparfaites, c’est faire preuve de leadership.
Les préjugés humains rendent la prise de décision moins fiable qu’on ne le pense
Les gens font trop confiance à leur propre jugement. C’est le premier problème. Le second est que même les dirigeants expérimentés oublient à quel point leurs décisions sont influencées par les limites de la mémoire à court terme, les émotions et la fatigue. Cela a été étudié. Le cerveau n’est pas fait pour traiter objectivement des scénarios complexes et multi-variables sans soutien.
La loi de Miller stipule que vous pouvez conserver environ 7 éléments dans votre mémoire de travail. Cela signifie que dès que vous comparez plus de sept variables d’entrée, telles que le coût, la performance, la sécurité, l’intégration, la facilité d’utilisation, la conformité, le risque de support, vous ne faites plus de comparaisons optimales. Votre cerveau fait autre chose : il simplifie, consciemment ou non. Vous commencez à évaluer les choses sur la base de sentiments ou d’interactions récentes, et non de données.
Il y a aussi l' »effet IKEA », mis en évidence par une étude de 2011. Les gens surévaluent les résultats pour lesquels ils ont travaillé dur, même si le résultat n’est pas objectivement meilleur. Il s’agit là d’un dangereux dangereux dans le domaine du leadership technique. Une équipe peut vouloir conserver un code difficile à maintenir simplement parce qu’elle a fait beaucoup d’efforts pour l’écrire. Reconnaissez-le et agissez en conséquence. L’attachement temporaire à un ancien travail n’est pas une raison valable pour éviter une mise à jour ou une réécriture.
La fatigue décisionnelle est un autre facteur. Une étude publiée en 2011, qui a fait l’objet d’un débat par la suite mais qui reste utile, a révélé que les juges étaient plus susceptibles d’approuver la libération conditionnelle en début de journée. Plus la journée se prolongeait, plus ils étaient enclins à dire « non ». Sous l’effet du stress ou après de longues sessions, votre cerveau devient impulsif. Il recherche la simplicité et la résolution immédiate, et c’est précisément dans ces conditions que se produisent les plus grosses erreurs.
La conférence TED de Dan Ariely aborde également ce sujet. Il a démontré que l’architecture des choix, c’est-à-dire la manière dont les options sont présentées, peut complètement changer le choix des gens. En pratique, la conception de vos processus de décision internes importe donc autant que les décisions elles-mêmes.
Comprenez que vous n’êtes pas à l’abri de ces effets simplement parce que vous êtes intelligent. Ce n’est pas ainsi que fonctionne la biologie. Si vous occupez un poste de direction, mettez en place des systèmes qui remettent en question les hypothèses, ralentissent les préjugés et répartissent la charge de la prise de décision lorsque cela s’avère nécessaire.
Ne confondez pas leadership solitaire et force, la collaboration permet de prendre de meilleures décisions.
Vous n’obtenez pas de crédit supplémentaire pour avoir pris des décisions difficiles de votre propre chef. L’idée selon laquelle le leadership consiste à prendre des décisions isolées est dépassée et inefficace. Les dirigeants les plus intelligents ne sont pas des machines à décider solitaires, mais des intégrateurs d’informations au sein d’équipes intelligentes.
Lorsque les problèmes deviennent complexes, en particulier dans le domaine de l’architecture logicielle ou des systèmes d’entreprise, la collaboration vous permet d’avoir plus d’une perspective. Il ne s’agit pas seulement d’une question de confort ou de moral d’équipe. C’est aussi une question de précision. Les gens repèrent les lacunes qui vous échappent. Ils apportent un contexte que vous n’avez pas. Et lorsque les décisions sont prises collectivement, elles sont mieux adaptées. L’exécution s’améliore parce que l’alignement est intégré au processus.
Sheena Iyengar, psycho-économiste connue pour ses recherches sur les choix, l’a souligné dans sa conférence « L’art de choisir ». Impliquer les autres n’enlève rien à votre leadership. Elle l’amplifie. Le résultat vous appartient toujours, mais vous prenez des décisions fondées sur la réalité, et non sur une intuition ou des données incomplètes.
Dans le domaine de la technologie et de la stratégie produit, cela est particulièrement pertinent. Les systèmes ne sont pas construits en silos, et vos décisions ne devraient pas l’être non plus. Faites appel à des spécialistes de confiance dès le début, dans les domaines de l’ingénierie, des produits, de la conformité et de la finance. Vous accélérerez l’exécution et réduirez les frictions internes au fil du temps.
Certains dirigeants considèrent la collaboration comme un signe d’indécision. Ce n’est pas le cas. L’esprit de décision ne consiste pas à faire le choix le plus rapide, mais le plus efficace. Et généralement, la meilleure voie à suivre est plus claire lorsque vous avez pris le temps de recueillir des points de vue éclairés. Laissez votre équipe remettre en question votre façon de penser. Cela permet aux systèmes d’être flexibles, aux décisions d’être fondées et aux résultats d’être plus prévisibles.
Équilibrer l’exploration et l’exploitation pour réaliser de réels progrès
Dans la conception de systèmes et le développement de produits, vous devez toujours choisir entre continuer à utiliser ce que vous savez être efficace ou essayer quelque chose de nouveau. C’est le compromis exploration-exploitation. Les deux ont de la valeur. La véritable compétence consiste à savoir quand s’appuyer sur l’un ou l’autre.
Si vous travaillez dans des délais serrés, c’est généralement une erreur de poursuivre des idées qui n’ont pas été testées. Il est préférable d’exploiter des solutions connues qui vous permettent d’avancer rapidement, de réduire la complexité et d’obtenir des résultats prévisibles. Ces décisions réduisent le risque d’exécution, ce qui est essentiel lorsque le temps ou les capitaux sont limités.
En revanche, lorsque votre horizon temporel le permet, l’exploration est essentielle. C’est ainsi que les équipes apprennent, repèrent les inefficacités et construisent un avantage à long terme. Cela peut signifier tester une architecture différente, une nouvelle conception de service ou un outil en dehors de votre pile habituelle. Cela augmente la variabilité, mais c’est parfois nécessaire pour éviter la stagnation et trouver un meilleur effet de levier à long terme.
Il ne s’agit pas seulement d’une décision technique. Elle a un impact commercial direct. Les dirigeants doivent comprendre que les équipes qui n’explorent jamais sont en retard sur les normes actuelles et se trompent sur les capacités futures. Mais les équipes qui explorent trop sans s’aligner sur les besoins opérationnels manquent des étapes et dépassent les budgets.
La bonne décision dépend du contexte, des objectifs de revenus, des exigences de la feuille de route, du taux d’épuisement, du personnel, tout doit s’aligner. Le cadre doit rester flexible. Encouragez les ingénieurs à expérimenter, oui, mais seulement si le moment et la situation de l’entreprise s’y prêtent. Dans le cas contraire, renforcez les systèmes auxquels vous faites confiance, livrez le produit et continuez à avancer.
Cessez de trop délibérer, l’action imparfaite est plus performante que l’inaction parfaite
Les dirigeants ont tendance à retarder les décisions jusqu’à ce que tous les détails soient réglés. C’est un sentiment de sécurité. Mais dans des environnements définis par la vitesse et la complexité, passer trop de temps sur une seule décision entraîne des coûts d’opportunité élevés. La recherche interminable de la « bonne » réponse fait perdre du temps et introduit des retards qui nuisent à l’élan de toute l’équipe.
Parfois, une réponse rapide et « suffisante » donne de meilleurs résultats à long terme qu’une réponse parfaite retardée. Vous agissez, vous recueillez des données, vous procédez à des ajustements. Cette boucle est plus rapide, plus réactive et plus en phase avec l’évolution des systèmes réels. La délibération est utile, mais seulement jusqu’à un certain point. Ensuite, elle devient une excuse pour l’inaction.
La refonte en 2003 de l’ordonnanceur de processus de Linux en est un bon exemple technique. L’ancienne conception était extrêmement délibérée, elle classait chaque processus indépendamment. Cela fonctionnait, mais c’était lent. La mise à jour a simplifié l’approche : exécution en temps constant, précision moindre, débit plus élevé. Le résultat a été un système plus rapide. Non pas parce qu’il était plus raffiné, mais parce qu’il faisait le travail avec moins d’hésitation.
Ce principe s’applique à toutes les situations. Qu’il s’agisse de mettre à jour une infrastructure, de changer de fournisseur ou de lancer une nouvelle fonctionnalité, si votre équipe reste bloquée dans une analyse tardive, vous gâchez une véritable dynamique. Les ressources sont statiques pendant l’indécision, mais vos concurrents, votre marché et vos clients ne le sont pas.
Le travail d’un décideur consiste à réduire l’incertitude, et non à l’éliminer. Lorsque vous atteignez un niveau de confiance de 70 à 80 % avec les données disponibles, il est généralement temps de passer à l’action. Vous n’éliminerez pas le risque en attendant, mais vous perdrez du temps. C’est le coût le plus important.
Des limites claires et des hypothèses vérifiées permettent d’éviter des erreurs coûteuses.
Avant d’approuver un plan, assurez-vous que les hypothèses qui le sous-tendent sont réelles. Trop de décisions sont prises sur la base de réflexions non vérifiées, de contraintes vagues, de données périmées ou d’exigences mal communiquées. Ces erreurs s’accumulent. Vous ne les remarquez pas au début, mais elles se manifestent plus tard sous la forme de retouches, de retards et d’une augmentation des coûts.
Il s’agit d’un problème de leadership. Si vous ne remettez pas en question les données qui alimentent les décisions clés, vous laissez la place à des erreurs logiques. Dans les systèmes logiciels, cela se traduit par des projections de coûts erronées ou des échecs d’intégration. Les équipes commencent par être confiantes, puis pivotent lorsqu’elles réalisent qu’une contrainte fondamentale n’a pas été clarifiée.
L’échec de la sonde Mars Climate Orbiter de la NASA en 1999 est un bon exemple de ce qui se passe lorsque les frontières ne sont pas alignées. Une sonde de 125 millions de dollars a été perdue parce qu’une équipe a utilisé des unités métriques et une autre des unités impériales. Les données semblaient correctes, jusqu’à ce qu’elles ne le soient plus. Il s’agissait d’une erreur de communication évitable.
Il ne s’agit pas de faire de la microgestion. Il s’agit de s’assurer que vous avez une compréhension commune : des priorités, des contraintes, de ce qui est important et de ce qui ne l’est pas. Poussez votre équipe à préciser ce qui est nécessaire et ce qui est facultatif. Poussez-vous à comprendre où se situent réellement les points de pression, qu’ils soient techniques, financiers ou réglementaires.
Cela permet non seulement de réduire le nombre d’échecs, mais aussi d’améliorer la rapidité. Lorsque l’équipe se met d’accord sur les limites, les décisions sont prises plus rapidement. Vous éliminez l’ambiguïté avant qu’elle ne devienne du bruit. Cette clarté s’étend à l’ingénierie, aux produits et aux opérations commerciales. Fixez-la dès le départ.
Les choix imparfaits sont normaux, l’amélioration continue est plus importante.
Dans les environnements à fort enjeu, on a tendance à penser que chaque décision en matière d’architecture ou de plate-forme doit être définitive. Ce n’est pas le cas. Traiter les décisions comme fixes et parfaites conduit à des systèmes rigides et à des cultures d’ingénierie hésitantes. En réalité, la plupart des décisions, en particulier les décisions techniques, ne sont que des points dans le temps. Elles peuvent, et souvent doivent, évoluer.
Les meilleurs dirigeants ne recherchent pas la précision au détriment de l’adaptabilité. Ils comprennent qu’aujourd’hui, chaque choix est un compromis. Ce qui compte, c’est de savoir si vous créez un système que vous pourrez améliorer au fur et à mesure que vous en apprendrez davantage. Un certain degré de dette technique est inévitable. Ce n’est pas un échec. C’est le signe que votre plateforme ou votre produit gagne en complexité et en maturité.
Randy Shoup, ancien vice-président de l’ingénierie chez eBay et WeWork, l’a clairement exprimé lors de sa conférence GOTO de 2022 : « Il n’existe pas d’architecture parfaite pour toutes les échelles, pour toutes les phases d’évolution, pour tous les domaines de problèmes. Il a raison. Tout ce qui est construit aujourd’hui devra un jour être réévalué ou remanié. Cela ne signifie pas que la décision initiale était mauvaise. Cela signifie que le temps a passé, que le système a changé et qu’une amélioration était nécessaire.
Du point de vue de la direction, n’attendez pas un alignement parfait pour agir. Expédiez, surveillez, apprenez et ajustez. Construisez des processus avec des cycles de révisiondes boucles de retour d’information et une largeur de bande d’ingénierie pour revoir les systèmes clés au bon moment. C’est ainsi que vous conserverez votre élan sans négliger la qualité.
Plus important encore : créez un espace permettant à vos équipes de prendre des décisions sans crainte. Si le fait d’agir aujourd’hui est pénalisé par un examen minutieux le lendemain, les membres de l’équipe resteront dans l’expectative. Faites en sorte que le changement fasse partie intégrante du processus. Cela permet une exécution plus rapide, des stratégies plus intelligentes et des systèmes qui continuent à s’améliorer, quelle que soit leur complexité.
Le bilan
Le leadership ne consiste pas à trouver des réponses parfaites. Il s’agit de prendre des décisions claires lorsque les données sont incomplètes, que les compromis sont réels et que les enjeux sont importants. Dans les environnements logiciels modernes, la complexité est la règle de base. Essayer d’obtenir des certitudes pour chaque décision ne fait que vous ralentir.
Les meilleurs dirigeants construisent des systèmes qui bougent, apprennent rapidement et s’adaptent. Ils créent un espace pour une collaboration intelligente, remettent en question les hypothèses dès le début et savent quand le mieux est l’ennemi du bien. Ils ne recherchent pas des plans parfaits. Ils se concentrent sur la direction, l’élan et l’exécution.
Vous n’aurez pas toujours raison. Ce n’est pas ce que l’on attend de vous. Ce qui compte, c’est d’instaurer une culture où les décisions mènent à l’action, et où l’action nourrit l’apprentissage. Cette approche ne se limite pas à la technologie, elle renforce le leadership.