カーゴカルトプログラミングは、実際の目的を果たさないコードやプログラム構造を儀式的に組み込むことを特徴とするコンピュータプログラミングのスタイルです。カーゴカルトプログラミングは、プログラマーが解決しようとしているバグや明らかな解決策を理解していないことの兆候です(ショットガンデバッグ、ディープマジックと比較してください)。[1]カーゴカルトプログラマーという用語は、手元の問題に不慣れな人が、プログラムコードをある場所から別の場所にコピーし、それがどのように機能するか、またはそれが必要かどうかをほとんど理解していない場合に適用される場合があります。
カーゴ カルト プログラミングは、設計原則の背後にある理由を理解せずに、設計パターンやコーディング スタイルを盲目的に適用する慣行を指すこともあります。例としては、説明の必要がないコードに不要なコメントを追加したり、プログラミング パラダイムの規則に過度に固執したり、ガベージ コレクションによって自動的に収集されるオブジェクトに削除コードを追加したりすることが挙げられます。
語源

カーゴ カルトは、植民地支配下のメラネシアで発生した千年王国運動であり、リチャード ファインマンに「カーゴ カルト サイエンス」という表現を思い付かせた。ファインマンの説明によると、第二次世界大戦の終結後、実践者たちは、滑走路を建設し、滑走路の横で火を灯し、木彫りのヘッドフォンを装着して偽造管制塔に座るなどの適切な儀式を行えば、貨物の航空輸送が再開されると信じていた。「形は完璧です。見た目は以前とまったく同じです。しかし、機能しません。」
その後、この用語は空虚な儀式の比喩として広く使われるようになった。「カーゴカルトプログラミング」という用語は、1991年1月にリリースされたコンピューター用語集であるJargon Fileのバージョン2.5.1に登場した。一方、人類学における「カーゴカルト」という用語は、メラネシア人の信仰の複雑さを表現できないため、ますます避けられるようになっている。[2] [3]
カーゴカルトソフトウェアエンジニアリング
ソフトウェア工学におけるカーゴカルトプログラミングに関連する用語は、スティーブ・マッコーネルによって造られたカーゴカルトソフトウェアエンジニアリングである。[4] :23-26
マコーネル氏は、ソフトウェア開発組織が、より成功している開発会社を模倣しようとしていると説明しています。その組織は、ソフトウェア開発プロセスをその背後にある理由を理解せずに盲目的に追従するか、コミットメント指向の開発アプローチ(ソフトウェア開発者がプロジェクトの成功のために多大な時間とエネルギーを費やす)を模倣しようとして、長時間労働や無給の残業を義務付けていますが、成功している企業では、これらは成功の原因ではなく、むしろ高いモチベーションの結果である可能性があります。
どちらの場合も、マコーネルは、採用された開発アプローチに関係なく、プロジェクトの成功または失敗は最終的に能力によって決まると主張している。さらに、彼は、無能な「詐欺組織」(成功したソフトウェア開発組織の形を単に模倣する)は、実際には彼がカーゴカルトソフトウェアエンジニアリングと呼ぶものに従事していると主張している。[5] :11–13
参照
参考文献
- ^ レイモンド、エリック S. (1996 年 10 月 11 日)。『The New Hacker's Dictionary (第 3 版)』。MIT プレス。ISBN 978-0262680929. OCLC 42329393. OL 9828647M.
- ^ リンドストロム、ラモント(2018年)。「カーゴカルト」。オープン人類学百科事典。 2024年1月17日閲覧。
- ^ Jarvis, Brooke (2019). 「Who Is John Frum?」.トピック. 2019-04-18時点のオリジナルよりアーカイブ。
- ^ McConnell, Steve (2003).プロフェッショナルソフトウェア開発. Addison-Wesley . pp. 23-26. ISBN 978-0-321-19367-4–インターネットアーカイブ経由。
- ^ McConnell, Steve (2000 年 3 月 - 4月)。「Cargo Cult Software Engineering」(PDF)。IEEE Software : 11 - 13。eISSN 1937-4194。ISSN 0740-7459 。2023年5 月 5 日閲覧。
さらに読む
- ファインマン、リチャード P. ;レイトン、ラルフ(1984)。「カーゴ カルト サイエンス」。「きっと冗談でしょう、ファインマンさん」: 好奇心旺盛な人物の冒険(初版)。ニューヨーク: WW ノートン & カンパニー。pp. 338–346。ISBN 978-0393019216。LCCN 84014703. OCLC 10925248. OL 2852326M 。2023 年5 月 2 日に取得–インターネット アーカイブ経由。
- ファインマン、リチャード P. (1974年6 月) 。「カーゴ カルト サイエンス」(PDF)。エンジニアリングとサイエンス。37 (7): 10–13。ISSN 2475-9570。2023年5 月 2 日に閲覧–カリフォルニア工科大学経由。
