続 atsushifxの七転八倒

ウツ、発達障害の闘病記とIT関係のつれずれを書いていきます

あえていえば仕様書は不要



ソフト開発に仕様書は必要?不要?
2004/04/20

 今回は、「ソフト開発に仕様書は必要か否か」について考えてみたい。4月13日に公開した「本当の中村修二・幕引きの弁」に対する読者コメントの中で、このテーマが登場した。プログラマをされている読者と、ユーザー企業の情報システム部門におられる読者の間で、ちょっとした議論が起きた。

この二元論にしたがっていえば、id:atsushifxにとっては仕様書は不要です。
正確に言いましょう。
仕様は必須です。 だって、なにをつくるべきかを明確にして共有する必要があるから。
仕様書は必須ではありません。 だって、システムが何をしているかはソースを見ればわかるから。
極論すればこうです。
でも、ソースをすべて見るというのは現実的じゃないのでドキュメントが必要になるんです。
ただし、現状ではこれに問題がありまくってます。
ドキュメントにうそが混じっているから。
まずは設計段階で決めたことが実装段階でかわってしまう、しかし、時間がないので仕様書は変えない。
ここで仕様書と実際のシステムにずれが生じます。これでは、仕様書の意味がないですし、Bugなどの温床になります。こういった仕様書は邪魔ですし、要らないです。
つぎに保守でプログラムが変更された場合、この場合も単なるバグ対応だからということでドキュメントは変更されない。
ここでも、仕様書とシステムの乖離が生じます。これによって、ドキュメントはますます使えないものになっていく。
こうなるとドキュメントは百害あって一利なしです。
そういう意味で、仕様書は不要なのです。

じゃぁ、ドキュメントは不要なのかとなるのですが、そんなことはありません。
保守をする人にしろ、上でシステムを提案する人にしろ、ソースをすべてみるわけじゃないですし、そうさせるべきじゃない。
だから、そのシステムが何をしているかという仕様が必須になるんです。
でも仕様を示すのを仕様書だけに頼る必要はないんです。
データベースの仕様を表すのはDB定義書だけじゃないです。ER図でもいいですし、DBデザインツールのスキーマファイルでも良い。
というより、保守をDBデザインツールでやっているとしたらですけど、スキーマファイルは今の状態と完全に一致していて読みやすいのでそっちのほうがいいことになる。
XPでもそうです。XPの場合は、現状の仕様を表すのを受け入れてストというプログラムでやっている。

つまり仕様書だけに頼りきるのが問題なのであって、
もとの社内IT部門系の人はその点でダメなのです。
ハイ。