俺#

新潟市でIT業を営むおっさんのブログ。

ソフト開発に仕様書は必要か?

http://nikkeibp.jp/wcs/leaf/CID/onair/jp/rep01/303255

要るか要らないかの議論でなくて「最初に決めるべき事項」と「ソースコードから読み取るのが容易でない事項」について文書化すべきなのよね。「○○仕様書」の○○の定義が曖昧で会社や組織によって異なると思うのだが、以下個人的な見解。全然、実践してないけど(^^;

・機能仕様書
・画面仕様書
・リファレンスマニュアル的なモノ(外部I/F仕様書等)

これらは要求分析の結果であるからどんなソフトでも必要。ここまではきっちり固めないと見積もりすら不可能。要求が曖昧ならこちらから提案して開発中盤までには固めないと大変な事に(苦笑)

・システム設計書
・モジュール設計書

複数のプロセス(スレッド)が並列に動くとか、2台以上のマシンが連携して動くとかいった中規模以上のシステムの場合に必要。どんなプロセスやマシンがあってどういうやり取りや役割分担をしてるか程度は文書化すべき。どこまで掘り下げるかは規模と納期と複雑さによる。

・ソフトウェア設計

ソースコードを納品する or 人に引き継ぐ場合、実装終了後にUMLでクラス図くらいは書いても罰は当たらないと思う。ただし、実装する前に書くのは無駄。メソッド一覧とか変数一覧なんて書くのが大変なだけでさらに無駄。関数の仕様なんて、ソースコード内に十分なコメントを書けばOKである。

・DB仕様書
・ファイル仕様書

これらはゲームなどの単発物を省いて必要。ソースコードから読み取るのは困難な場合が多々ある。面倒でも後々のために最終的な実装仕様を忠実に反映しておく必要がある。ソースコードが読めない場合でも、メンテナンスや障害対応の手助けになる。