- Cargo cult programming
Cargo cult programming is a style of
computer programming that is characterized by the ritual inclusion of code or program structures that serve no real purpose. Cargo cult programming is typically symptomatic of a programmer not understanding either the bug they were attempting to solve or the apparent solution (compareshotgun debugging ,voodoo programming ). [citation|title=The New Hacker's Dictionary |author=Eric S. Raymond|year= 1996|publisher=MIT Press|id=ISBN 0262680920]Cargo cult programming can also refer to the results of (over-)applying a design principle blindly without understanding the reasons behind that design principle in the first place. An example would be a novice being taught that
commenting code is good, and then adding comments for lines that are self-explanatory or need no comment; other examples involve overly complex use of design patterns or certain forms of coding style.The term '
cargo cult ', as anidiom , originally referred to aboriginal religions which grew up in the South Pacific afterWorld War II . The practices of these groups centered on building elaborate mock-ups of airplanes and military landing strips in the hope of summoning the god-like airplanes that had brought marvelous cargo during the war [cite web | url = http://www.softpanorama.org/Skeptics/cargo_cult_programming.shtml | title = Cargo Cult Programming article | publisher = Softpanorama (slightly skeptical) Open Source Software Education Society | author = Dr. Nikolai Bezroukov | accessdate = 2008-03-25] . Use of the term in computer programming probably derives fromRichard Feynman 's characterization of certain practices as "cargo cult science ". [cite web | url = http://www.jargon.net/jargonfile/c/cargocultprogramming.html | title = Definition of cargo cult programming | publisher = Jargon File at jargon.net | accessdate = 2008-03-25 ]Cargo cult software engineering
A related term in
software engineering is "cargo cult software engineering", coined bySteve McConnell .McConnell describes software development organizations that attempt to emulate more successful development houses, either by slavishly following a
software development process , or by taking acommitment oriented development approach.In both cases, McConnell contends that competence ultimately determines whether a project succeeds or fails, regardless of the development approach taken; furthermore, he claims that incompetent "impostor organizations", that merely imitate the form of successful software development organizations are, in fact, engaging, in what he calls "Cargo cult software engineering". cite web | url = http://stevemcconnell.com/ieeesoftware/eic10.htm | title = Cargo Cult Software Engineering | publisher =
IEEE Software | author = From the Editor | date = March/April 2000 | accessdate = 2008-05-24 ]ee also
*
Magical thinking References
Further reading
*"Surely You're Joking, Mr. Feynman!", Richard Feynman, W. W. Norton & Co, New York, 1985, ISBN 0-393-01921-7. One of the chapters is the transcript of a 1974 Caltech commencement address, which contained the coining of "
Cargo cult science ".
* [http://calteches.library.caltech.edu/51/02/CargoCult.pdf Cargo Cult Science, by Richard P. Feynman] . Article based on his 1974 Caltech Commencement address, with pictures, as originally published in "Engineering and Science", Volume 37:7, June 1974. Digitized version from Caltech Library, retrieved June 20, 2007External links
Wikimedia Foundation. 2010.