---
title: "Programmation culte du cargo"
type: "antipattern"
slug: "cargo-cult-programming"
url: "http://localhost:3000/fr/antipatterns/cargo-cult-programming.md"
description: "Inclusion rituelle de code informatique inutile"
---
# Programmation culte du cargo

> Inclusion rituelle de code informatique inutile

La **programmation culte du cargo** est un style de [programmation informatique](https://en.wikipedia.org/wiki/Computer%5Fprogramming "Computer programming") 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](https://en.wikipedia.org/wiki/Shotgun%5Fdebugging "Shotgun debugging"), la [magie profonde](https://en.wikipedia.org/wiki/Magic%5F%28programming%29 "Magic (programming)")). 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](https://en.wikipedia.org/wiki/Copy%5Fand%5Fpaste%5Fprogramming "Copy and paste programming") 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](https://en.wikipedia.org/wiki/Software%5Fdesign%5Fpattern "Software design pattern") 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](https://en.wikipedia.org/wiki/Programming%5Fparadigm "Programming paradigm"), ou ajouter du code de suppression pour des objets que le [ramasse-miettes](https://en.wikipedia.org/wiki/Garbage%5Fcollection%5F%28computer%5Fscience%29 "Garbage collection (computer science)") récupère automatiquement.

## Étymologie

Les [cultes du cargo](https://en.wikipedia.org/wiki/Cargo%5Fcult "Cargo cult") sont des mouvements [millénaristes](https://en.wikipedia.org/wiki/Millenarian "Millenarian") apparus en [Mélanésie](https://en.wikipedia.org/wiki/Melanesia "Melanesia") sous la domination coloniale, et qui ont inspiré à [Richard Feynman](https://en.wikipedia.org/wiki/Richard%5FFeynman "Richard Feynman") l’expression [science culte du cargo](https://en.wikipedia.org/wiki/Cargo%5Fcult%5Fscience "Cargo cult science"). 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](https://en.wikipedia.org/wiki/Jargon%5FFile "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](https://en.wikipedia.org/wiki/Software%5Fengineering "Software engineering") est l’_ingénierie logicielle culte du cargo_, forgé par [Steve McConnell](https://en.wikipedia.org/wiki/Steve%5FMcConnell "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](https://en.wikipedia.org/wiki/Software%5Fdevelopment%5Fprocess "Software development process") 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_.
