HOME > ソフテックだより > 第186号(2013年5月22日発行) 現場の声編「ソフトウェア設計フェーズの先行検討」

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

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


ソフテックだより 第186号(2013年5月22日発行)
現場の声編

「ソフトウェア設計フェーズの先行検討」

1. はじめに

弊社が手掛けるソフトウェア開発では、お客様の実現されたい製品・システムに関する機能・要求仕様などをうかがいながら仕様把握・設計を行う場合がほとんどです。
私は本社事業所に在籍する入社14年目のいわゆるベテラン社員ですが、ソフトウェア開発の難しい点として、「目に見えない」、「お客様の製品・システムの暗黙知や潜在要求をヒアリングして明確化する」があると感じるようになりました。
弊社では「先行検討」という考え方を推奨しており、ソフトウェア開発における無理・ムダを少しでも減らしていけるように意識して業務に励んでおります。

本号ソフテックだよりでは、私がこれまでに経験してきたことをふまえ、ソフトウェア開発の仕様検討・設計において「先行検討」として意識している事をご紹介させていただきます。

2. ソフトウェア開発における「先行検討」とは

弊社で推奨しております「先行検討」とは、本格的に着手する前にあらゆることを想定して、徹底した検討を重ねることで無理・ムダを排除していく考えかたです。仕事を円滑に効率良く進めていくためには、常に先を見通しながら対応することが求められます。

私は作業が立て込んでくると視野がせまくなり、目先の対応に注力しすぎるきらいがあるので、現状でも「先行検討」を意識した対応を実践している最中です。
冒頭に挙げさせていただきましたように、ソフトウェア開発には「目に見えない」、「お客様の製品・システムの暗黙知や潜在要求をヒアリングして明確化する」難しさがあると思います。ソフトウェア開発における「先行検討」という考え方は、無形物のソフトウェアというモノを扱うからこそ、効果は絶大なものになっていくはずです。
「先行検討」を効果的に活用できる、ソフトウェア仕様検討・設計作業に着目してお話します。

3. 経験から学んだ仕様検討・設計の重要性

私は以前、サーバー上で常時稼働するアプリケーション開発における設計を担当する機会がありました。主機能としては、Ethernetで構築されたネットワーク上の下位システムからデータを収集してデータを集中管理するアプリケーションで、技術的な対応ポイントは、FTP経由で取得したファイル情報を解析してデータ管理する点でした。機能実装も問題なく完了し、お客様が運用を開始してしばらくしたところで、データ収集が止まる現象が発生しました。
この問題自体は、詳細な処理ログを解析し、原因特定することで対策を講じることができたのですが、この時に収集処理が停止したことをお客様がすぐに気づける仕組みがシステム機能上に存在しないことが副次的な問題点として浮上しました。
実際にお客様の運用現場では、データ収集が停止したことに気づかずに4日間近く運用を続けられた結果、データ収集内容に欠落を生じさせる問題でご迷惑をおかけすることになりました。申し訳ない気持ちとともに、設計段階でお客様の運用を意識した対応を取れなかった点を後悔したことを強く覚えております。

私はこれまで携わってきたソフトウェア開発からの経験上、「ソフトウェアの品質は、ソフトウェア開発における上流工程の仕様検討・設計フェーズで決まってくる。」という実感を持っております。ソフトウェアの最終的な品質は、プログラムコードの良し悪しにいきつくとは思いますが、開発担当者の技術面での属人性を除くと特にこの実感が強いです。

お客様からご提示いただく要求仕様は、ソフトウェア開発の必要事項が揃っている訳ではありません。仕様検討・設計に失敗すると、お客様が求める製品・サービスに沿わない、実運用に耐えられないようなソフトウェアを製作することになりかねません。そのような意味でお客様が真に求められている製品・サービスを提供するためには、ソフトウェア開発工程における仕様検討・設計の上流フェーズの重要性をご理解いただけると思います。
仕様検討・設計では、お客様の求める仕様を適切に把握して、設計内容に反映させるところに難しさを感じます。

4. 仕様検討・設計作業で意識していること

私は「先行検討」の一環として、仕様検討・設計フェーズでは下記のような点を意識して対応をしております。お客様からソフトウェア開発の対応協力をご依頼いただいてから、仕様検討・設計フェーズで対応している順番に項目を挙げさせていただきました。

(1) 関わる製品・システムの背景、暗黙知などを把握するように努め、システム全体視点で要求事項を検討する。
お客様からご提示いただいた要求事項の中に、製品・システムの背景や暗黙知と照らし合わせて考えた時に辻褄が合わない項目が存在する場合がございます。お客様に質問させていただくと誤りであることが多く、このような事柄に事前に気づける可能性がでてきます。実運用に即さない誤った要求事項のまま、対応を進めて後戻りが生じるのを防ぐことができます。
自分が関わるシステム導入目的や期待される効果などの位置づけを把握することで、お客様の気づかれていない潜在要求を汲み取ることが可能です。お客様に対して、より良いシステムご提案ができるようになり、顧客満足に繋がってきます。
(2) 仕様不明点や仕様相談事項を明確にする。
弊社の都合でコントロールできないお客様へのご依頼・ご相談が必要になることを優先して対応します。具体的なところでは、仕様不明点や相談事項をリストアップして、お客様にご回答いただけるように相談します。「〜だろう」、「〜のはず」といった思い込みを明確にしなかったことで、誤解や認識違いを 起こしてしまい、お客様に不安・不審を与えることがないように心がけています。
(3) 技術面での実現見通しを立てた状態で設計を行う。
お客様の求める機能が実現可能かどうかを調査する必要がある場合がございます。この調査は、設計段階で対応見通しを立てておかないと、最悪、お客様の求める機能を実現できないことになり、お客様にご迷惑おかけすることになってしまいます。
(4) 口頭で仕様調整した場合は、記録を残す。
お打ち合わせや電話などで、直接お客様と仕様調整のお話しをする機会があります。口頭でやり取りした内容は、記録として残るように議事録などにまとめた内容をお客様にご確認していただきます。口頭でお話しした内容を、記録文書という形でご確認いただくことで、仕様認識違いに気づく機会にもなります。
5. 最後に

仕様把握・設計を効率良く、的確に進めなかったことで、後ろの製作・試験フェーズで大きな後戻りが発生して、納期、コスト、品質全てに悪影響を及ぼした結果、失敗する苦い経験もございました。
それでも、実際に開発に携わった製品・システムのソフトウェアをお客様にご確認いただいて、「使い易い」、「良いシステムですね」、「これで業務がはかどります」といった喜びの声をお聞きできることが励みになります。
これからも、常にお客様にご満足いただけるソフトウェアを提供させていただくことを目標に、「先行検討」を意識していきます。

(M.S.)


関連ページへのリンク

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

ページTOPへ