http://martinfowler.com/bliki/FoundationFramework.html

Foundation Framework は、どんなアプリケーションよりも先立って作られる。また、そのアプリケーションたちの土台となる。考えとしては、まずそのフレームワークを必要とするアプリケーションの要求を分析し、それからフレームワークを構築する。重要なのは、アプリケーションに関する作業を始める前に、そのフレームワークは安定した API を持たなければならないということだ。フレームワークに異なる変更をいくつも加えてしまうと、アプリケーションとの間の連鎖反応のおかげで管理はとても難しくなるだろう。

これは理論上は合理的に聞こえる。しかし実際問題としてうまくいかないのをいつも見てきた。これは、フレームワークの本当の要求を理解するのが難しいところに問題がある。結果としてフレームワークは、本来必要な将来性にはほど遠いものとして終わる。また、その将来性とアプリケーションが本当に必要とするものとは、まったく合わないこともある。

HarvestedFramework と比べてみてほしい。