仕様書は作成過程が大切

ソフトウェア開発の現場で良く聞く発言。

  • 「仕様書をキッチリ書こう」
  • 「きちんとした仕様書を書ける人が欲しい」
  • 「仕様書に記載漏れが無いようにしてくれ」

仕様書とは、完成した文書が一つ有れば全てが片付くような性質のものではなく、何をどう作るかという検討内容を記録として明文化したものだ。だから、仕様書の作成行為そのものが設計行為であり、個々の対応項目を明確にして、設計上の漏れ・不備・矛盾を早期に見つけ出すための重要な作業だ。単に、これをやる、あれをやるという程度の文章の断片が並んでいるようでは、それは仕様書としての役割を果たしてない。

後のテスト工程で火を噴くような開発プロジェクトに共通しているのは、そのような明確な設計工程が欠如している点だ。仕様の検討を疎かにしたり、漏れや矛盾の確認を事前に行っていない以上、潜んでいた問題点が顕在化してくるのは当然のことだ。こんな時「仕様書が無いから」という指摘は問題の一面しか表現しておらず、むしろ「設計行為が行われていないから」という方が適切だろう。仕様書は設計の成果物として出てくるのだから、適切な設計行為が行われれば、それに相応しい仕様書が生みだされるのは当然の帰結と言える。仕様書という成果物のみに目を奪われがちであるが、その作成の過程で検討されてきた内容こそが実は重要な意味を持っているのだ。

仕様書さえ有れば全て解決するという認識は大いなる誤解であり、妥当な設計工程が行われていないことの方が問題なのだ。途中の過程を省略して、結果のみを求めるのは無理な注文だろう。また、開発プロセスがXPやアジャイルだからと言って、仕様書作成の過程を軽視する傾向があるのは少々危険だと思っている。