Marteau d'or.
Le marteau d'or est l'habitude d'appliquer un même outil, langage ou modèle familier à tous les problèmes, même à ceux auxquels il convient mal.
Le marteau d'or, également appelé loi de l'instrument, loi du marteau ou marteau de Maslow, est un biais cognitif qui consiste en une dépendance excessive à un outil familier. En génie logiciel, le terme désigne un anti-patron : on applique à chaque nouveau problème une technologie, un langage ou une conception que l'on connaît déjà, y compris lorsqu'ils s'y prêtent mal, simplement parce que l'équipe les maîtrise. Abraham Maslow écrivait en 1966 : « il est tentant, si le seul outil dont on dispose est un marteau, de tout traiter comme si c'était un clou ».
Le concept est attribué à la fois à Maslow et à Abraham Kaplan, bien que la formule du marteau et du clou ne soit peut-être originale ni de l'un ni de l'autre.
Histoire
L'expression anglaise « a Birmingham screwdriver » (« un tournevis de Birmingham »), qui désigne un marteau, renvoie à la pratique consistant à utiliser un seul outil à toutes fins, et précède Kaplan comme Maslow d'au moins un siècle.
En 1868, un périodique londonien, Once a Week, contenait cette observation : « Donnez à un garçon un marteau et un ciseau ; montrez-lui comment s'en servir ; aussitôt il se met à entailler les montants des portes, à abîmer les coins des volets et des cadres de fenêtres, jusqu'à ce que vous lui appreniez un meilleur usage de ces outils et la manière de contenir son activité dans certaines limites. »
Kaplan
La première formulation attestée du concept est celle d'Abraham Kaplan, en 1964 : « Je l'appelle la loi de l'instrument, et on peut la formuler ainsi : donnez un marteau à un petit garçon, et il découvrira que tout ce qu'il rencontre a besoin d'être martelé. »
En février 1962, Kaplan, alors professeur de philosophie, prononça un discours de banquet lors d'une conférence de l'American Educational Research Association qui se tenait à UCLA. Un article du numéro de juin 1962 du Journal of Medical Education indiquait que « le moment fort de ces trois jours de réunion... se trouvait dans la remarque de Kaplan sur le choix des méthodes de recherche. Il exhortait les scientifiques à faire preuve de discernement dans la sélection des méthodes appropriées à leurs travaux. Le fait que certaines méthodes soient à portée de main, ou qu'un individu donné ait été formé à utiliser une méthode précise, ne garantit nullement que cette méthode convienne à tous les problèmes. Il citait la loi de l'instrument de Kaplan : "Donnez un marteau à un garçon et tout ce qu'il rencontre devra être martelé." »
Dans The Conduct of Inquiry: Methodology for Behavioral Science (1964), Kaplan mentionna de nouveau la loi de l'instrument en disant : « Il n'est guère surprenant de découvrir qu'un scientifique formule les problèmes d'une manière qui exige, pour leur solution, précisément les techniques dans lesquelles il excelle lui-même. » Et dans un article de 1964 pour The Library Quarterly, il citait de nouveau la loi et commentait : « Nous avons tendance à formuler nos problèmes de telle sorte qu'il paraisse que leur solution exige exactement ce dont nous disposons déjà. »
Tomkins et Colby
Dans un recueil d'essais de 1963, Computer Simulation of Personality: Frontier of Psychological Theory, Silvan Tomkins évoquait « la tendance des tâches à être adaptées aux outils, plutôt que d'adapter les outils aux tâches ». Il écrivait : « Si l'on possède un marteau, on a tendance à chercher des clous, et si l'on possède un ordinateur doté d'une capacité de stockage mais sans émotions, on est plus enclin à se préoccuper de mémorisation et de résolution de problèmes que d'aimer et de haïr. » Dans le même ouvrage, Kenneth Mark Colby citait explicitement la loi, écrivant : « La première loi de l'instrument énonce que si l'on donne un marteau à un garçon, il découvre soudain que tout a besoin d'être martelé. Le programme informatique est peut-être notre marteau actuel, mais il doit être mis à l'épreuve. On ne peut décider, par de pures considérations de fauteuil, s'il aura ou non une quelconque valeur. »
Abraham Maslow
Le marteau de Maslow, popularisé sous la forme « si tout ce que vous avez est un marteau, tout ressemble à un clou » et ses variantes, provient de The Psychology of Science d'Abraham Maslow, publié en 1966. Maslow écrivait : « Je me souviens d'avoir vu une machine à laver les automobiles, élaborée et compliquée, qui faisait un magnifique travail de lavage. Mais elle ne savait faire que cela, et tout ce qui tombait entre ses griffes était traité comme s'il s'agissait d'une automobile à laver. Je suppose qu'il est tentant, si le seul outil dont on dispose est un marteau, de tout traiter comme si c'était un clou. »
Manifestations
Programmation informatique
La notion de marteau d'or, « une technologie ou un concept familier appliqué de manière obsessionnelle à de nombreux problèmes logiciels », a été introduite dans la littérature des technologies de l'information en 1998 en tant qu'anti-pattern : une pratique de programmation à éviter.
Le développeur logiciel José M. Gilgado a écrit que la loi reste pertinente au XXIe siècle et s'applique tout à fait au développement logiciel. Bien souvent, observait-il, les développeurs « ont tendance à utiliser les mêmes outils connus pour mener un projet entièrement nouveau et différent, soumis à de nouvelles contraintes ». Il imputait cela à « cet état de zone de confort où l'on ne change rien afin d'éviter le risque. Le problème, lorsqu'on utilise les mêmes outils chaque fois qu'on le peut, est qu'on ne dispose pas d'assez d'arguments pour faire un choix, car on n'a aucun point de comparaison, ce qui limite ses connaissances. » La solution consiste « à continuer de chercher le meilleur choix possible, même si on ne le connaît pas très bien ». Cela inclut le recours à un langage de programmation que l'on ne maîtrise pas. Il notait que le produit RubyMotion permet aux développeurs d'« envelopper » des langages de programmation inconnus dans un langage familier et d'éviter ainsi d'avoir à les apprendre. Mais Gilgado jugeait cette approche déconseillée, car elle renforce l'habitude d'éviter les nouveaux outils.
Exemple
Une équipe rompue aux expressions régulières s'en sert même pour lire du JSON. Le motif capture le premier "total" rencontré — dans l'exemple de données, celui d'une ligne de commande —, lit mal les nombres comme 1.5e3 et renvoie silencieusement 0.0 si le champ est absent.
import re
# order_total('{"items": [{"total": 5}], "total": 1.5e3}') renvoie 5.0, et non 1500.0
def order_total(payload: str) -> float:
match = re.search(r'"total"\s*:\s*([0-9.]+)', payload)
return float(match.group(1)) if match else 0.0
Un analyseur JSON comprend tout le format et échoue explicitement sur une entrée mal formée : choisissez l'outil adapté aux données, pas celui que l'équipe connaît le mieux.
import json
def order_total(payload: str) -> float:
return float(json.loads(payload)["total"])
Adapté de l’article Wikipédia “Law of the instrument” (révision 1352498338), disponible sous licence CC BY-SA 4.0 ; le texte a été traduit et modifié, et des exemples ont été ajoutés.