ソフトウェアの設計の目的は、当たり前だが、よい設計をすることが目的である。 決して良いドキュメントを作ることではないし、良いドキュメントを作ることが目的となってはいけない。 良い設計をするためには、様々なドキュメントを作成する必要がある場合もある。 シーケンス図、ステートチャート、関数仕様書、などなど。 しかしこれらは、良い設計を行うために必要となった場合に作成するものだ。 「設計時には、○○図と○○図を作成すること」 などとルール化を行うのは、以下の理由から弊害がある。不要なドキュメントまで作成してしまう可能性がある。ルールに明記したドキュメントを作ればOKという思考停止に陥り、本当に必要な設計が行われない可能性がある。 また、設計が終わるまで一切コードを書いてはいけない、というのもよくある誤解である。 設計図を書くのも、(擬似)コードを書くのも、いわばシミュレーションを行っているような