---
title: "Programación de culto al cargo"
type: "antipattern"
slug: "cargo-cult-programming"
url: "http://localhost:3000/es/antipatterns/cargo-cult-programming.md"
description: "Inclusión ritual de código informático innecesario"
---
# Programación de culto al cargo

> Inclusión ritual de código informático innecesario

La **programación de culto al cargo** es un estilo de [programación informática](https://en.wikipedia.org/wiki/Computer%5Fprogramming "Computer programming") caracterizado por la inclusión ritual de código o estructuras de programa que no cumplen ningún propósito real. La programación de culto al cargo es sintomática de un programador que no entiende ni el error que intentaba resolver ni la aparente solución (compárese con la [depuración a escopetazos](https://en.wikipedia.org/wiki/Shotgun%5Fdebugging "Shotgun debugging") y la [magia profunda](https://en.wikipedia.org/wiki/Magic%5F%28programming%29 "Magic (programming)")). El término _programador de culto al cargo_ puede aplicarse cuando cualquier persona sin experiencia en el problema en cuestión [copia algo de código de programa](https://en.wikipedia.org/wiki/Copy%5Fand%5Fpaste%5Fprogramming "Copy and paste programming") de un sitio a otro con poca comprensión de cómo funciona o de si es necesario.

La programación de culto al cargo también puede referirse a la práctica de aplicar un [patrón de diseño](https://en.wikipedia.org/wiki/Software%5Fdesign%5Fpattern "Software design pattern") o un estilo de codificación a ciegas, sin entender las razones que hay detrás de ese principio de diseño. Algunos ejemplos son añadir comentarios innecesarios a código que se explica por sí mismo, una adhesión excesivamente celosa a las convenciones de un [paradigma de programación](https://en.wikipedia.org/wiki/Programming%5Fparadigm "Programming paradigm") o añadir código de eliminación para objetos que el [recolector de basura](https://en.wikipedia.org/wiki/Garbage%5Fcollection%5F%28computer%5Fscience%29 "Garbage collection (computer science)") recoge automáticamente.

## Etimología

Los [cultos al cargo](https://en.wikipedia.org/wiki/Cargo%5Fcult "Cargo cult") son movimientos [milenaristas](https://en.wikipedia.org/wiki/Millenarian "Millenarian") que surgieron en [Melanesia](https://en.wikipedia.org/wiki/Melanesia "Melanesia") bajo el dominio colonial, e inspiraron a [Richard Feynman](https://en.wikipedia.org/wiki/Richard%5FFeynman "Richard Feynman") a acuñar la expresión [ciencia de culto al cargo](https://en.wikipedia.org/wiki/Cargo%5Fcult%5Fscience "Cargo cult science"). Según la descripción de Feynman, tras el final de la Segunda Guerra Mundial sus practicantes creían que las entregas de carga por aire se reanudarían si llevaban a cabo los rituales adecuados, como construir pistas de aterrizaje, encender fuegos junto a ellas y ponerse auriculares tallados en madera mientras se sentaban en torres de control fabricadas. «La forma es perfecta. Tiene exactamente el mismo aspecto que tenía antes. Pero no funciona.»

El término pasó luego a usarse más ampliamente como metáfora de los rituales vacíos. La expresión «programación de culto al cargo» apareció en la versión 2.5.1 del [Jargon File](https://en.wikipedia.org/wiki/Jargon%5FFile "Jargon File"), un glosario de jerga informática, publicado en enero de 1991\. El término «culto al cargo» en antropología, por su parte, se evita cada vez más por no representar la complejidad de las creencias melanesias.

## Ingeniería de software de culto al cargo

Un término relacionado con la programación de culto al cargo en la [ingeniería de software](https://en.wikipedia.org/wiki/Software%5Fengineering "Software engineering") es _ingeniería de software de culto al cargo_, acuñado por [Steve McConnell](https://en.wikipedia.org/wiki/Steve%5FMcConnell "Steve McConnell").

McConnell describe organizaciones de desarrollo de software que intentan emular a casas de desarrollo más exitosas, ya sea siguiendo servilmente un [proceso de desarrollo de software](https://en.wikipedia.org/wiki/Software%5Fdevelopment%5Fprocess "Software development process") sin entender el razonamiento que hay detrás, o intentando emular un enfoque de desarrollo orientado al compromiso (en el que los desarrolladores de software dedican grandes cantidades de tiempo y energía a sacar adelante sus proyectos) imponiendo largas jornadas y horas extra no remuneradas, cuando en las empresas exitosas estas podrían ser, en cambio, consecuencias de una alta motivación en lugar de causas del éxito.

En ambos casos, McConnell sostiene que es la competencia lo que en última instancia determina si un proyecto tiene éxito o fracasa, con independencia del enfoque de desarrollo adoptado; además, afirma que las «organizaciones impostoras» incompetentes (que se limitan a imitar la _forma_ de las organizaciones de desarrollo de software exitosas) están de hecho practicando lo que él denomina _ingeniería de software de culto al cargo_.
