💡 要求と要件の違いはとても大きいです。要求は顧客サイドが作り、要件は開発の受け手であるベンダーが作ります。この両者を常に紐付けておかないと顧客の要望に添わないものを作ってしまうことになりかねないので注意が必要です。

要求と要件の違い

開発工程を知ろう!ということで始まった第1回目に続き、今回は2回目です。

開発工程は大きく次のようになっているという話をしました。

  1. 要求獲得
  2. 要件定義
  3. 詳細設計
  4. プログラミング
  5. 単体テスト
  6. 結合テスト
  7. 運用テスト

この中で大事なのは要求獲得の段階にあります。

何はともあれ、顧客の要望を知ることが大事だということです。

さて、顧客の要求を知ることができたら、次はそれを実現するステップになります。

その最初が要件定義という段階です。

要求獲得と要件定義の違いは知っていますか?

要求獲得とは顧客が欲しいと考えているものを明確にすることで、「顧客」が主となり行います。

それに対し、要件定義は要求に基づき実現する「機能やコスト」などを明確にする工程で、発注されたベンダーが主となり行います。

要求:顧客が欲しいと希望しているもの。主たる関係者は「顧客」

要件:要求に基づき実現するシステムの機能等を明確にしたもの。主たる関係者は「ベンダー」

ということになります。

230808 02

要件はすべて要求と紐付く

要求を要件にするとき、顧客が望んでいる「要求」を実現するためには細かな前提条件を定めていく必要があります。

例えばウェブサービスであれば、どれだけの人がアクセスする予定か、によってサーバーの規模なども変わってきます。

個人情報を扱う場合には、どんなセキュリティが必要か、ということも保存するデータの種類やどれだけ安全に守る必要があるかの考え方によって、セキュリティに関する要件も違ってきます。

そういったことは顧客が最初に話してくれることはほぼありませんので、仕様を決めていく前に聞いておく必要があります。

そして、すべての要件は顧客の要望と紐付く必要があります。

そうでなければ、顧客の要望にない「過大」なシステムを作ってしまうかもしれませんし、顧客の要望を満たさない「過小」なシステムを作ってしまうかもしれないのです。

要件を作る際、常に要求と紐付けることが大事です。

とはいえ、要求と要件は記述内容も記述量も大きな違いがあります。

というのは、要件はシステムの開発をするために必要な様々な情報を記載しないといけないからです。それを決めていくためにも、顧客から要求をしっかりと聞き出して、それを満たすシステムを作り上げるための要件にしないといけません。

できあがって顧客に引き渡す段階で、顧客から「そんなものを頼んだ覚えはない」と言われることのないように、しっかりと顧客の要求に即したものを作っていくことが何よりも大事です。

230808 03

顧客への説明を尽くす

開発の最初だけでなく開発している途上では、作ろうとしているものが顧客の要求からズレていないか、ときどき要求者に確認をすることが有効です。

開発者にとっては開発物を定義した要件書はわかりやすいです。

しかし、顧客にとっては要件書は難解で、自分が欲しいものかどうかを理解することが難しいです。

これから作るものは何と問われたら、開発者であれば要件書を見せて「これです」と説明するのが正しいのですが、顧客にはもっとわかりやすい説明書が不可欠です。

Webアプリやスマホアプリであれば、こんなUIでこういう風に操作の手順を見せるとか、全体として仕事の流れがこうなってこういう風に使えます、というようなことを具体的に示すことが必要です。

説明を尽くし「それならいいね」と言ってもらっていても、できあがったときに「この部分はそういう風に思わなかった」というすれ違いはどうしても起きてしまいます。

そうならないように、顧客への説明は相手の理解を得られるように最善を尽くす必要があります。

230808 04

顧客にとってはすべてが知らないことと思え

開発者なら常識と思う部分であっても、顧客は知らないことも普通です。

この辺が非常に難しいことです。

開発者にとって当たり前すぎて、つい説明が漏れてしまうことがあります。悪意ではなく、「つい」忘れてしまうことはなかなかゼロにはなりません。

顧客にとって「それは聞いていなかった」とできあがったあとで反発されることのないように、些細なことも説明する必要があります。

これはできるけれどこれはできないなどの機能的なことはもちろんですが、お金がかかる、新たな作業として行わなければならないなどのことは、「聞いてなかった」問題に発展しがちです。

スマホアプリを開発したときに、OSのバージョンアップごとに機能検証して、動作しない部分があれば追加費用を払って開発しなければならないことなどは顧客が知らない一例です。

もちろん、開発者はOSのバージョンアップに追随することの必要性は説明しますが、それをどのくらいの頻度で、どのくらいのお金がかかるかなどは顧客には全くわかりません。

どれだけ具体的に説明できるかは説明者の力量ですが、とにかく説明を尽くすという姿勢が必要です。何でもくどくど言えばいいというものではありませんが、顧客に不利益になりそうなことは特に欠かせません。

自分たちに仕事が欲しいので営業の方たちがいいことばかり先にいうケースはありがちなのですが、だからこそデメリットも正確に伝えることです。

これは顧客の満足を得るためでもありますが、自分の身をを守るためでもあります。

あとで「この部分は聞いてなかった。作り直してくれ」と言われたら、手戻りにかかるお金は自分の負担となるのです。