HOME > ソフテックだより > 第20号(2006年6月21日発行) 現場の声編「仕様検討について」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第20号(2006年6月21日発行)
現場の声編

「仕様検討について」

1.はじめに

ソフテックでは、お客様から仕事を頂いて、その仕様を検討しソフトウェア開発を行うのが主な仕事です。
仕様検討とは、お客様のニーズ、システムの目的を理解する最初の工程になります。それは、『見積』『設計』『製造』の基となる大変重要な工程です。
実際にソフトウェアの開発を行うには、お客様から仕様を頂いてそれを元に『どのようなものを作ればよいのか?』『問題となりそうなところはないか?』を検討していきます。
ここで、目的にあった仕様を検討できなければ、どんなに信頼性が高く、使い易い操作性を備えていても役に立たないものが出来上がってしまいます。
今回は、私が担当しているシステムで仕様を頂いてから仕様検討するまでをお話しします。

2.私が担当しているシステム

私が担当しているシステムは、メインの制御をしているWindowsPCのアプリケーション、外部の機器および設備、その機器や設備とやりとりするためのマイコンモジュールで構成されています。マイコンモジュールはやりとりする機器や設備に応じてそれぞれ別の種類が用意されます。WindowsPCとマイコンモジュール間は通信で接続されます。(図1参照)
それぞれのソフトは、既に基本開発で基本ソフトが出来上がっています。そのうちメインの制御をしているWindowsアプリケーションはお客様のニーズに合わせて、いろいろな構成に柔軟にDB設定で対応できるようになっています。

図1. システム構成図
図1. システム構成図

3.仕様検討作業

お客様から要求仕様書を頂いて検討開始です。
お客様から要求仕様書として、基本的な動作がかかれたものからWindowsアプリケーションの画面、回路図など合計すると200ページにも達する資料を頂きます。
私の場合、具体的に以下のことを検討していきます。

(1) 要求仕様を把握し、どのようなものを作るかを想定する

要求仕様書からどのようなものを作るか、それがどのような構成になっているのかを頭の中で整理しイメージします。

(2) 要求仕様と基本ソフトを比較し、相違点を見つけだす

大体のイメージを膨らませたら、基本ソフトとDB設定だけで対応できない項目がないか、お客様から頂いた要求仕様書を読んで、基本ソフトの仕様にあっているかのチェックを行います。場合によっては簡単に確認用のDB設定をして実際に動かしてみたりします。
大規模なシステムなため、基本ソフトの機能も多く、更に200ページにも達する資料から、あるかどうか分からない基本ソフトと違う点を探し出すのですから、集中力と忍耐力が必要な作業です。

(3) DB設定では対応できない項目を見つけだす

要求仕様書にDB設定では対応できない項目が書かれている場合、基本ソフトの変更が必要になります。基本ソフトの変更には、その変更規模にもよりますが、少なからず費用と、ソフト変更をすることにより別のトラブルを招くリスクが生じます。ソフテックではただ言われたとおりに変更するのではなく『基本ソフトで代替できる機能はないか?』、『費用、リスクを抑えて対応することは出来ないか?』、『ソフト変更ではなく、ハード設計を変えたほうが良いのではないか?』、『本当に時間をかけてソフト変更までするほど必要な機能なのか?』などを検討し、お客様にご提案し、お客様と一緒に考え、最終的な仕様を決定していきます。

仕様が決まってしまえば、それに沿って設計、製造をしていきます。

4.今までの反省点

今まで、仕様の検討の流れについて説明していきました。上記のような流れで進めていっても思い違いなどで、お客様の考えていたものと違うものを作ってしまうという失敗をしたことが何度かあります。
お客様から仕様書をいただいているので大きく違うことは無いのですが、いただく仕様書は細かな部分まで書いている訳ではありません。また、基本ソフトからどこが変わっているかなどをきちんと書かれているものでもありません。
そのため、下のような失敗がありました。

  • 仕様の細かな変更点を見逃す
  • 動作フローを思い違いする

もっと、お客様とコミュニケーションをとりながら、最終的にどのようなものをお客様が望んでいるのかを把握できていれば防げた失敗だったと反省しています。

5.今後の課題

ソフトウェア開発は、お客様のニーズ、システムの目的を理解し、その目的にあったシステムを作るものです。
今までの反省点を活かして、お客様とのコミュニケーションを上手くとっていき、お客様の望まれるニーズ、システムの目的を正確に理解し、より良い提案をしていけるように、していきたいと思います。
具体的には、今ではお客様とはLotus Notesを用いて情報の共有をしています。そのNotesに物件の情報や変更箇所、それに対する質疑を相互に書き込んでいます。
Notesを活用すると共に、お客様から要点を聞き出す能力を磨いていきたいと思います。
また、技術者としても、今以上に幅広い知識を身につけていきたいと思います。

(T.K.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ