ConstructiCat Logo
CodeBust.
Browse section ▾

Programação cargo cult.

Inclusão ritualística de código de computador desnecessário

A programação cargo cult é um estilo de programação de computadores caracterizado pela inclusão ritualística de código ou estruturas de programa que não servem a nenhum propósito real. A programação cargo cult é sintomática de um programador que não compreende nem o bug que estava tentando resolver nem a aparente solução (compare com shotgun debugging, deep magic). O termo programador cargo cult pode se aplicar quando alguém inexperiente no problema em questão copia algum código de programa de um lugar para outro com pouca compreensão de como ele funciona ou se é necessário.

A programação cargo cult também pode se referir à prática de aplicar um padrão de projeto ou estilo de codificação cegamente, sem entender as razões por trás daquele princípio de design. Alguns exemplos são adicionar comentários desnecessários a código autoexplicativo, aderir de forma exagerada às convenções de um paradigma de programação ou adicionar código de remoção para objetos que o coletor de lixo coleta automaticamente.

Etimologia

Os cultos à carga são movimentos milenaristas que surgiram na Melanésia sob o domínio colonial e inspiraram Richard Feynman a cunhar a expressão ciência cargo cult. Na descrição de Feynman, após o fim da Segunda Guerra Mundial os praticantes acreditavam que a entrega aérea de cargas seria retomada se realizassem os rituais adequados, como construir pistas de pouso, acender fogueiras ao lado delas e usar fones de ouvido esculpidos em madeira enquanto se sentavam em torres de controle improvisadas. "A forma é perfeita. Parece exatamente como parecia antes. Mas não funciona."

O termo passou então a ser usado de forma mais ampla como uma metáfora para rituais vazios. O termo "cargo-cult programming" apareceu na versão 2.5.1 do Jargon File, um glossário de gírias da computação, lançado em janeiro de 1991. O termo "cargo cult", por sua vez, na antropologia é cada vez mais evitado por não representar a complexidade das crenças melanésias.

Engenharia de software cargo cult

Um termo relacionado à programação cargo cult na engenharia de software é engenharia de software cargo cult, cunhado por Steve McConnell.

McConnell descreve organizações de desenvolvimento de software que tentam imitar empresas de desenvolvimento mais bem-sucedidas, seja seguindo servilmente um processo de desenvolvimento de software sem entender o raciocínio por trás dele, seja tentando imitar uma abordagem de desenvolvimento orientada ao comprometimento (na qual os desenvolvedores de software dedicam grandes quantidades de tempo e energia para ver seus projetos terem sucesso) ao impor longas jornadas e horas extras não remuneradas, enquanto, nas empresas bem-sucedidas, isso talvez seja, em vez disso, uma consequência da alta motivação em vez de uma causa do sucesso.

Em ambos os casos, McConnell sustenta que, em última análise, é a competência que determina se um projeto terá sucesso ou fracassará, independentemente da abordagem de desenvolvimento adotada; além disso, ele afirma que "organizações impostoras" incompetentes (que apenas imitam a forma de organizações de desenvolvimento de software bem-sucedidas) estão, na verdade, praticando o que ele chama de engenharia de software cargo cult.