ソフトウェアの肥大化
1970年代ごろまで、ソフトウェア開発は記憶容量の厳しい制限との戦いでもあった。1バイトでも大きさを削り、1クロックでも処理を削って、プログラムが使用可能なリソースの中でより多くのことができるようにすることが重要だった。
この状況は現在では逆転している。リソースの単価が安くなり、素早い開発とマーケティングのためのより多くの機能が重視されるようになっている。その原因の1つは、技術の進歩によって処理能力や記憶密度が何倍にもなり、相対的にコストが何分の1かになったためである(ムーアの法則参照)。そして、コンピュータがビジネスや生活のあらゆる場面に浸透したために、ソフトウェア産業は1970年代の何倍にも大きくなっている。
ソフトウェア開発ツールや手法により、各種機能を実現するのにプログラム全体の修正が必要となり、そのソフトウェアの主要機能にまで影響を及ぼすような大掛かりなコードの結合が行われ、結果としてほとんど使わない機能まで追加されるといったことが起きている。さらに言えば、利用可能なリソースが増えたことで製品の効率の優先順位が低くなり、コードを容易に開発できるツールが使われるようになった。
ニクラウス・ヴィルトはこの状況をヴィルトの法則にまとめた。ヴィルトの法則とは、ハードウェアの高速化よりも急速にソフトウェアが低速化していく、というものである。