# Programação de culto à carga

A programação de culto à carga é um estilo de programação de computadores caracterizado pela inclusão ritual de código ou estruturas de programa que não servem a nenhum propósito real. A programação de culto à carga é sintomática de um programador não entender um problema que estava tentando resolver ou a solução aparente (compare com depuração de escopeta, e magia profunda). O termo programador de culto à carga pode ser aplicado quando qualquer pessoa inexperiente com o problema em questão copia algum código de programa de um lugar para outro, com pouca compreensão de seu funcionamento ou sem saber se é necessário.
A programação de culto à carga também pode se referir à prática de aplicar um padrão de projeto ou estilo de codificação às cegas, sem compreender as razões por trás desse princípio de projeto. Exemplos são a adição de comentários desnecessários a códigos que são autoexplicativos, a aderência excessiva às convenções de um paradigma de programação ou adicionar código de exclusão para objetos que o coletor de lixo coleta automaticamente.
Verificar obsessivamente e de forma redundante se valores são nulos ou testar se uma coleção está vazia antes de iterar sobre seus valores podem ser um sinal de programação de culto à carga. Essas verificações obsessivas tornam o código menos legível.

## Origem

O termo culto à carga como uma expressão idiomática originalmente se referia às religiões aborígenes que cresceram no Pacífico Sul após a Segunda Guerra Mundial. As práticas desses grupos centravam-se na construção de elaboradas maquetes de aviões e pistas de pouso militares na esperança de convocar os seres divinos que chegaram em aviões que trouxeram cargas maravilhosas durante a guerra. Nas últimas décadas, a antropologia se distanciou do termo "culto à carga", que agora é visto como tendo sido aplicado de forma redutora a muitos movimentos sociais e religiosos complicados e díspares que surgiram do estresse e do trauma do colonialismo e buscavam alcançar objetivos muito mais variados e amorfos - coisas como autodeterminação - do que carga material.
O uso do termo em programação de computadores provavelmente deriva da caracterização por Richard Feynman de certas práticas como ciência do culto à carga.

## Engenharia de software de culto à carga

Um termo relacionado em engenharia de software é a engenharia de software de culto à carga, cunhado por Steve McConnell.
McConnell descreve as organizações de desenvolvimento de software que tentam emular casas de desenvolvimento mais bem-sucedidas, seja seguindo servilmente um processo de desenvolvimento de software sem entender o raciocínio por trás dele, ou tentando emular uma abordagem de desenvolvimento orientada para o compromisso (na qual os desenvolvedores de software dedicam grande quantidade de tempo e energia para ver seus projetos bem-sucedidos), determinando as longas horas e horas extras não pagas, enquanto em empresas de sucesso isso pode ser consequência de alta motivação em vez de causas de sucesso.
Em ambos os casos, McConnell afirma que, em última instância, a competência determina se um projeto é bem-sucedido ou se fracassa, independentemente da abordagem de desenvolvimento adotada; além disso, ele afirma que "organizações impostoras" incompetentes (que meramente imitam a forma de organizações de desenvolvimento de software bem-sucedidas) estão de fato engajadas no que ele chama de engenharia de software de culto à carga.