ドキュメント

ドキュメントはなぜ書くのだろうか。アジャイルプロセスではWorking Software over conprehensive documentation.と宣言されており、ドキュメントが重要ではなく、動くソフトウエアが重要である、と言っている。

もちろん、動くソフトウエアを作るためには、ドキュメントが必要だ。しかし、本当に必要なドキュメントだけを作成しているだろうか。

今のプロジェクトはドキュメントがすばらしい。自分には逆立ちしても書けない様なドキュメントばかり存在している。さまざまな規定、さまざまな進め方、理由から問題点、すべてがドキュメントに書いてある。よくこれほど想像力豊かに、問題や将来を予測してドキュメントを作成できるものだと感服する。

このすばらしいドキュメントを見ると開発者たちの能力は非常に高い、と私は思う。おそらく他の人もそう思うのだろう。能力の高い人がすばらしいドキュメントを作る。これを悪いと思う人はあまりいないのだろう。


しかし、もう一度良く考えてみよう。良いドキュメントが作成されても、それがそのまま良いソフトウエアになるだろうか。転ばぬ先の杖を完璧に用意してあるドキュメントを書くより、まずソフトウエアを作成し、動かし、転んでしまうようなら、そのときに適切に対応すればよいのではないだろうか。もちろん、転ぶことが命にかかわる致命傷ならば困るが、大抵の場合、致命傷にはならない。さらに、完璧な転ばぬ先の杖を用意していたつもりでも、現在のシステム開発現場では、必ず何かにつまずいて転ぶことがほとんどだ。


結局、すばらしいドキュメントを書いても、その書いた工数はそれほど有効にはならない。動くものを追い続けるほうがずっと楽にしかも品質の良いソフトウエアが開発できる。ならば、完璧なドキュメントを書く行為はそれほど大きな効果を生まないのである。