イチから全部作ってみよう(5)難題だらけの要求仕様フェーズにどう対処すべきか:山浦恒央の“くみこみ”な話(174)(1/2 ページ)
ECサイトを題材にソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」がスタート。シリーズ第5回は、さまざまな問題がある要求仕様フェーズの対処法について解説します。
1.はじめに
山浦恒央の“くみこみ”な話の連載第170回から、入門者をターゲットとして、「イチから全部作ってみよう」というシリーズを始めました。このシリーズでは、多岐にわたるソフトウェア開発の最初から最後まで、すなわち、要求仕様の定義、設計書の作成、コーディング、デバッグ、テスト、保守までの「開発フェーズ」の全プロセスを具体的に理解、経験することを目的にしています。第170回を読んでいない方は、以下のリンクから一読することをおススメします。
要求仕様フェーズでは、クライアントから作りたいものをヒアリングし、要求仕様書を作成します。要求仕様書は、開発の根幹に関わる文書で、これを作成しないと開発に取り掛かれず、場合によっては、プロジェクトが頓挫します。
要求仕様書をきちんと書く大変さは、「野球を一回も見聞きしたことがない人に対し、野球の進行手順やルールを詳細に定義し、それを読んだ瞬間、野球ができるようになる説明書」を考えれば理解できますね。これは、非常に高度な技術力が求められます。
前々回の第172回と前回の第173回では、要求仕様フェーズで発生する主要な問題点をまとめました。
- 要求仕様が正しいか判断できない
- 要求仕様が決まらない、収束しない
- 仕様変更が発生する(頻発する?)
- 要求仕様の抜け/漏れが発生する
- 要求仕様の記述ミス/誤解が発生する
- 実現可能性が判断できない、過小に考える
ちなみに、この中で圧倒的に多い問題が「要求仕様に抜け/漏れがある」です。「要求仕様の抜けなんて、すぐに分かるはず」と考えてしまいますが、細かいところで大量の抜けがあります。連載第172回で、「駐車場の料金表には必ずバグがある」と書き、具体的な例を幾つか挙げました。駐車場の料金表のように、一見、簡単に見える「要求仕様書」にも多数の抜けやバグがあります。数百万ステップもある巨大なシステムでは、仕様の抜けをいかに少なくするかは、非常に重要です。
要求仕様書の問題は、非常に複雑で、抽象的なので、入門者には荷が重いかもしれません。しかし、解決しないまでも、対処法だけでも頭に入れておくことは非常に大事です。
今回は、要求仕様フェーズの問題点の対処法を紹介します。
2.要求仕様フェーズの問題対処法
2.1 質問リストを作ってクライアントに質問をする
「ワインのECサイトを作成して欲しい」とクライアントから依頼があったとします。この場合、開発側の担当者で、日本ソムリエ協会が認定する「ワインエキスパート」の資格に相当する知識、ワイン販売、店舗業務に関して高度な知識を持っている人はほとんどいません。結果、「要求仕様が正しいか」「誤解していないか」を開発担当者だけで判断することは不可能ですね。
例えば、ワインでは、「同じ商品名でも違う生産者」がいる不思議があります。世界の赤ワインの双璧が、ドッシリ重厚なボルドー産と、軽快で香り高いブルゴーニュ産です。
スーパーマーケットで販売しているお買い得の赤ワインの代表が「ブルゴーニュのピノ・ノワール」でしょう。ピノ・ノワールはブドウの品種名で、ブルゴーニュの赤は、ほぼ、ピノ・ノワール100%で作ります。ワインショップで、「ブルゴーニュのピノ・ノワールをください」と言うと、「誰が作ったピノ・ノワールですか?」「収穫年は何年ですか?」と聞かれるかも知れません(1本1000円程度なら、適当に案内してもらえますが、数十万円もする超高級ワインでは、誰が作ったか、何年の収穫かで価格が10倍違うことはよくあります)。
こだわりが非常に強い八百屋さんで、「群馬県産の下仁田ネギをください」と言うと、「この山田太郎農園のネギは、少々高価ですが、有機農法でつくっています。お手頃価格ですと、こちらのスズキ・ファームのネギがおススメです」といわれるのと同じで、ワインは、「生産地区」「生産者」「ブドウの種類」「収穫年(ヴィンテージ)」が違うと、別物になります。
ブルゴーニュの赤の場合、以下のデータがあれば、1つの銘柄をピンポイントで見分けることが可能になります。
- 商品名:ブルゴーニュ ピノ・ノワール
- 生産者:ドメーヌ・ド・ラ・ロマネ・コンティ
- 収穫年:2021年
国や地域が異なると、ワインの醸造法が異なり、必要なデータも異なります。ここが、ワインを販売/管理する場合に最も面倒な箇所です。自動車、携帯電話、不動産、服飾など、いろいろな商品/サービスで、その分野独自の複雑怪奇な分類や、業界の事情があります。システムを設計する側が、これを全て把握するのは非常に困難ですね。
このような時は、質問リストを作成し、クライアントに確認を取ります(表1)。
No. | 質問 | 回答 |
---|---|---|
1 | 顧客データは何件必要でしょうか。 | 1万件登録できるようにしてください。 |
2 | 会員のポイントは何円につき1ポイントとすればよいでしょうか。 | 100円につき1ポイントとしてください。 |
3 | サイトの利用者はどれくらいを想定しているでしょうか。 | 常時10人程度の小規模なものを想定しています。 |
4 | 扱う商品数は何件の予定でしょうか。 | 2万点を想定しています。 |
表1 質問リスト |
表1は、質問リストの作成例です。表形式にして、質問と回答をセットにして使用します。このやりとりは要求仕様フェーズにとどまらず、設計、デバッグ、テストと開発が終了するまで続くでしょう。クライアントの記述ミスや開発側の誤解を防ぐためにも、恥と思わず、疑問点は確認することをお勧めします。
Copyright © ITmedia, Inc. All Rights Reserved.