大きな泥だんご
この用語は Brian Foote, Joseph Yoder らによって、1997年に同名の論文によって普及したもので、論文では以下のように定義された。
"大きな泥だんご" システムは、通常、長期間開発されたものであり、多様な部品から異なる個々人が開発して構成されたものである。 体系立てられた アーキテクチャ や プログラミング 研修を学んでいない人々によって構築されたシステムは、しばしばこのようなシステムになる。
"大きな泥だんご" ソフトウェアを生むその他の原因は、マネージャが開発者に圧力をかけ、問題の解決のための明確な説明をする代わりに、増加分の部分的要求に基づいて、システムのコードの一部を書くように指示するような場合である。
Foote と Yoder は、"大きな泥だんご" プログラムを一般的に非難しているわけではなく、少なくとも、それが開発された時に動作しているのであれば、このパターンは最も普及しているものであると指摘している。 しかし、そのようなプログラムはメンテナンスが非常に難しくなっていくものである。
"大きな泥だんご" プロジェクトに置かれたプログラマーは、そのシステムについて学習したり、何が行われているのかを理解したり、このシステムを、形式的な要件を持ったルーズな基盤として、より良く設計された代替可能なシステムのために使ったり、という対応を強く求められることになる。クライアント-サーバーから Web ベースへの移行、ファイルからデータベースといった技術変化などが、スクラッチからのスタートのための良い理由を与える。