Dans un monde de l'informatique toujours en mouvement, il est parfois difficile de suivre le rythme. Que ce soit avec la montée en puissance de l'IA aujourd'hui ou avec l'adoption de l'agilité quelques années plus tôt, nous avons plusieurs fois dû faire évoluer nos pratiques et habitudes. Cependant, n'avez-vous jamais eu le sentiment que ces changements n'étaient peut-être pas la bonne réponse à vos obstacles du quotidien ? Ces changements (qui vous ont sans doute été imposés) étaient-ils justifiés ou résultaient-ils d'une vaine tentative de reproduire les succès d'un autre ?

Les origines du Cargo Cult
Le Cargo Cult n'est pas un terme propre au domaine de l'informatique. Il tire son origine d'un ensemble de rites aborigènes en réaction à la colonisation occidentale. A la fin du XIXe siècle - début du XXe siècle, les civilisations du Pacifique se retrouvent face aux enseignements de missionnaires chrétiens, à l’abondance des richesses matérielles qui arrivaient par bateaux puis plus tard par avion, ainsi qu'au style de vie des Asiatiques, des Européens et Américains. Tous ces éléments confrontés aux croyances mythologiques autochtones ancestrales amèneront les peuples indigènes à imiter les opérateurs radios commandant du ravitaillement (distribués par avion-cargo) et plus généralement la technique et la culture occidentales en espérant déboucher sur les mêmes effets.
Ces comportements donneront naissance au mouvement, mythe, religion ou terme Cargo Cult (Culte du Cargo).
Bien que cette situation puisse prêter à sourire, confortablement assis devant notre ordinateur, nous ferions mieux de calmer notre ego car nous sommes nous aussi très souvent confrontés à des situations similaires au Cargo Cult.
Le Cargo Cult en informatique

Au-delà de l'histoire liée aux peuples autochtones du Pacifique, la définition du Cargo Cult peut être simplifiée et appliquée aux développeurs, ingénieurs ou gestionnaires qui reproduisent des pratiques techniques ou méthodologiques sans en comprendre réellement le fonctionnement ou la nécessité. De la même manière que les peuples indigènes espéraient recevoir du ravitaillement en construisant leurs propres infrastructures sans en comprendre les mécanismes sous-jacents.
Un exemple qui, pour moi, transpire le Cargo Cult est l'agilité. C'est un sujet qui fait toujours débat aujourd'hui, avec toutes les absurdités qu'on peut lui associer. Le manifeste agile et ses valeurs ont amené à l'émergence de différentes pratiques, mais si l'on cherche à profiter de leurs bénéfices simplement par mimétisme (exemple : ils y arrivent en utilisant des post-its, je vais utiliser des post-its), alors on se retrouve vite avec plus de problèmes que de solutions.
Les dérives de l'agilité ont amené, en complément, à l'apparition du Software Craftsmanship dont les pratiques ont, malheureusement, elles aussi tendance à subir les effets du Cargo Cult depuis quelques années.
Un autre exemple qui a lui aussi fait débat pendant plusieurs années (et toujours aujourd'hui ?) est l'utilisation de Kubernetes et plus largement tous les outils annexes que l'on se sent obligés d'installer sur son cluster pour être "production-ready" aux yeux de l'industrie. En a-t-on besoin ? N'y a-t-il pas une solution plus rapide et moins chère pour répondre à notre besoin ? Tant de questions qui méritent réflexion avant de foncer tête baissée dans un océan de problèmes pourtant évitables.
Aujourd'hui, une technologie qui subit sans doute déjà les effets du Cargo Cult est l'IA. Maintenant présente partout, pour tout et rien, on peut facilement se demander si le choix de son usage est toujours réfléchi ou non.
Comment l'éviter ?
Le Cargo Cult est une imitation aveugle d'une pratique sans compréhension profonde de son fonctionnement. A-t-on besoin d'être expert pour autant ?
Chaque contexte est différent et ne sera pas nécessairement propice à la mise en place de n'importe quelles pratiques, aussi recommandées soient-elles.
Un autre terme qui se rapproche du Cargo Cult et que je trouve particulièrement amusant est le Hype Driven Development, dérivé de pratiques comme le Test Driven Development ou encore le Behavior Driven Development.
A la différence du Cargo Cult qui a un sens plus large, on parle ici de choix motivés principalement par un effet de mode, parfois en étant conscient mais en cédant à la pression sociale ou marketing. Je pense que l'adoption des différents frameworks frontend (React, Vue, Angular, Svelte, ...) au cours des années en est un bon exemple. Bien qu'ils aient apporté beaucoup de positif à l'écosystème, certains projets ont souffert d'une transition ou d'un usage forcé mené par la "hype".
Conclusion
Pour résumer, prenez du recul sur vos choix et pratiques et agissez avec discernement. Il n'est pas nécessaire de suivre le wagon de tête de près et de rouler sur les mêmes rails pour produire des logiciels et infrastructures de qualité. Inspirez-vous des pratiques à succès pour les adapter à votre contexte et en tirer le meilleur parti.