ドキュメントは本当に無駄か? − 設計とは整理すること
- ドキュメントを書くのは時間がかかるから省略する
- ソースコードを見れば分かるので、ドキュメントは不要
- 後からどうせ変わるので、ドキュメントは実装後に書く
というような、「ドキュメントは無駄」という旨の意見を見かけることがあります。
さすがに、仕事においては納品物ともなるため、一切ドキュメントを書かない、という人はいないと思いますが、詳細設計などの実装に近いドキュメントになればなるほど、そのような意見が多く出てきます。
ドキュメントを軽視している人の8割は、設計ができない人であり、そのような人が書くコードは、場当たり的で、拡張性が無かったり、共通化されない無駄なコードが多かったりします(あとの2割は、天才で、ドキュメントを書かずとも素晴らしいコードが書けるだけの能力がある人)。
何年も繰り返されている議論だろうけど、「ドキュメントは無駄」なのではなく「無駄なドキュメント」を書いているのが問題。
私自身は、ドキュメントを作成するのは、納品するためや保守で必要になるからではなく、自分の思考を整理するためと考えています。
頭で設計した内容を、具現化・詳細化していくために、設計書を書いていきます。
そのため、設計は一度で終わるのではなく、繰り返していきます。優秀なアーキテクトほど、自然とそのように行動していると思います。
頭の中で整理できたつもりでも、設計書という目に見えるかたちにすることで、
- このようなパターンも考えられる
- こうすればもっと美しい(拡張性や柔軟性のある)アーキテクチャになる
と、自分自身で問題点や改善点を発見することができ、改良を加えていくのです。
そのような設計書を元に実装されたコードは、設計書とかい離することもなく、コード自体も整理され、実装にかかる時間も短くなります。
価値のないドキュメントを作成する必要はないと思うが、今一度、ドキュメントの重要性を見直すのはどうだろうか。