ソースコードがドキュメント足りえないのは訓練していないから

 「ドキュメントはソースコードです」というのはよく聞く話です。しかし、実際の現場ではそれが通用することはあまりないでしょう。しかしながら、「そんな動きはソースを読まなきゃわからんよ!」なんてことが必ずあるはず。


 では、なぜソースコードがドキュメントというのが通用しないのでしょうか? それは、ドキュメントは日本語さえわかれば読める(気がする)のに対して、ソースコードプログラミング言語がわからなければ読めないということもあるでしょう。


 ですが私はこうも考えます。

 プログラム言語さえわかれば、ソースコードも立派なドキュメントといいたくなるようなソースコードを書く人もいるのです。

 それは、かなりベテランのプログラマです。歳は関係ありません。如何にソースコードをわかり易く書くかを常に考え、コーディングしてコーディングしてコーディングしまくったようなプログラマこそがそのようなプログラマになれるのです。ちょこちょこっとコーディングを経験して「SE」なるお化けになってしまった人には到底たどり着けない領域です。

 駆け出しのプログラマは、仕様書をトレースしたような(つまり手続き型的な)ソースコードを書きがちです。それは仕様書に忠実ですが、読みやすいソースコードになるとは限りません。下手をするとこれだけでSEなるお化けに彼らはなってしまいます。こうして、SEたちは仕様書至上主義者となっていくわけです。


 いっぽう、ベテランプログラマは、仕様書を一度そしゃくします。そしてわかり易いソースコードになるように再構成するわけです。すると、仕様書というものが空しく見えてきます。SEなるお化けは、仕様書をトレースするようなコーディングしか経験していませんので、仕様書を詳しく書くことこそがコーディングさせるのに最良のものと考えます。しかし、プログラマとして大してレベルの高くない彼らがそういった観点で一所懸命仕様書を書いたとしても、読みやすいプログラムを書ける人間にしては邪魔で邪魔でしょうがないものしかできないでしょう。