Programmation culte du cargo.
Inclusion rituelle de code informatique inutile
La programmation culte du cargo est un style de programmation informatique caractérisé par l’inclusion rituelle de code ou de structures de programme qui ne servent à rien de réel. La programmation culte du cargo est symptomatique d’un programmeur ne comprenant ni le bogue qu’il tentait de résoudre, ni la solution apparente (comparer avec le débogage au fusil de chasse, la magie profonde). Le terme programmeur culte du cargo peut s’appliquer lorsque quiconque manquant d’expérience avec le problème en question copie du code de programme d’un endroit à un autre sans bien comprendre comment il fonctionne ni s’il est nécessaire.
La programmation culte du cargo peut aussi désigner la pratique consistant à appliquer aveuglément un patron de conception ou un style de codage sans comprendre les raisons qui sous-tendent ce principe de conception. Quelques exemples : ajouter des commentaires inutiles à du code explicite, adhérer avec excès de zèle aux conventions d’un paradigme de programmation, ou ajouter du code de suppression pour des objets que le ramasse-miettes récupère automatiquement.
Étymologie
Les cultes du cargo sont des mouvements millénaristes apparus en Mélanésie sous la domination coloniale, et qui ont inspiré à Richard Feynman l’expression science culte du cargo. Dans la description de Feynman, après la fin de la Seconde Guerre mondiale, les pratiquants croyaient que la livraison de cargaisons par voie aérienne reprendrait s’ils accomplissaient les rituels appropriés, comme construire des pistes d’atterrissage, allumer des feux à leurs côtés et porter des écouteurs taillés dans du bois en s’asseyant dans des tours de contrôle fabriquées de toutes pièces. « La forme est parfaite. Cela ressemble exactement à ce que c’était avant. Mais ça ne fonctionne pas. »
Le terme a ensuite été employé plus largement comme métaphore des rituels vides de sens. L’expression « cargo-cult programming » est apparue dans la version 2.5.1 du Jargon File, un glossaire d’argot informatique, publiée en janvier 1991. Le terme « culte du cargo » en anthropologie, quant à lui, est de plus en plus évité car il ne rend pas compte de la complexité des croyances mélanésiennes.
Ingénierie logicielle culte du cargo
Un terme apparenté à la programmation culte du cargo en génie logiciel est l’ingénierie logicielle culte du cargo, forgé par Steve McConnell.
McConnell décrit des organisations de développement logiciel qui tentent d’imiter des maisons de développement plus prospères, soit en suivant servilement un processus de développement logiciel sans en comprendre la logique, soit en tentant d’imiter une approche de développement axée sur l’engagement (dans laquelle les développeurs consacrent énormément de temps et d’énergie à faire réussir leurs projets) en imposant de longues journées et des heures supplémentaires non rémunérées, alors que, dans les entreprises prospères, celles-ci pourraient au contraire être des conséquences d’une forte motivation plutôt que des causes du succès.
Dans les deux cas, McConnell soutient que c’est la compétence qui détermine en fin de compte la réussite ou l’échec d’un projet, quelle que soit l’approche de développement adoptée ; de plus, il affirme que les « organisations imposteures » incompétentes (qui se contentent d’imiter la forme des organisations de développement logiciel prospères) se livrent en réalité à ce qu’il appelle l’ingénierie logicielle culte du cargo.