1984年、Bob Scheifler と Jim Gettys は X の基本原則を以下のように定めた。
- 実際のアプリケーションでどうしても必要という場合以外は、新機能を追加するな。
- システムが何でないのかを定義することは、何であるのかを定義するのと同じように重要である。あらゆるニーズに答える必要はない。むしろ、互換性を維持した状態で拡張可能にしておけ。
- 1つでも例を挙げて一般化したほうが、全く例を挙げずに一般化するよりもマシである。
- 問題が完全に把握できないときは、解決策も提供しないのが最善の方法である。
- 10%の作業で望みの90%の効果が得られるときには、その解法を使え。
- 複雑さは可能な限り分離せよ。
- ポリシーよりも機構を提供せよ。特にユーザインタフェースのポリシーはクライアント側に任せておけ。
何にでも適用できるものではないが、Xという基盤を支えるソフトウェアの設計原則としては実に理にかなったものである。事実その後20年以上継続して開発、メンテナンスされるソフトウェアとなったわけだし。
プロジェクトの方針とは、本来はこういうものを言うのだろう。参考になる。