Web制作における要件定義で心がける5つのポイント

なかみー


Web制作における要件定義で心がける5つのポイント

こんにちは、なかみーです。
新人ディレクター向けシリーズ、第5弾です。

今回は、クライアントとの意識のすりあわせの中で重要な要件定義のポイントについて書いていきたいと思います。

そもそも要件定義とは?

現場でよくある「要件定義」。言葉は立派に見えますが、そもそもどういうことなのでしょうか。改めて調べてみました。

要件定義とは、システムやソフトウェアの開発において、実装すべき機能や満たすべき性能などのを明確にしていく作業のこと。いわゆる上流工程の一部で、実際の開発・実装作業を始める前に行う作業の一つである。
要件定義では、利用者がそのシステムなどで何がしたいのかを元に、それを実現するために実装しなければならない機能や、達成しなければならない性能などを開発者が検討して明確にしていく。まとめられた成果は「要件定義書」として文書化されることが多い。

引用元:要件定義とは – IT用語辞典

すこしわかりにくいですね。
例で見てみましょう。

ディレクター:どんなサービスを作りたいのですか?
クライアント:住宅が少しでも早く探せるサービスですね。
ディレクター:ほうほう、少しでも早くと言うと?
クライアント:チャット機能とかあって相談できたら便利じゃないですか?
ディレクター:確かにそうですね。チャット使うなら会員機能も必要ですか?
クライアント:そうですね、そこは必須ですね。

とこんなやり取りをしながら、どんなシステム・サービスにしていくか、クライアントの要求を定義していく工程のことです。しかし、これだけでは単なる御用聞きとなってしまいがち。それでは良いものは出来上がりません。

僕らはプロとして、クライアントが「なぜその機能をほしがっているのか」「なぜ必要なのか」を意味付けしていく必要があります。
「とりあえず作って、使うか使わないかはユーザが選択すればいい」と、機能がてんこ盛りであるほど喜ばれる傾向にあると思いがちですが、実は逆で、必要としない機能があることは、ユーザにとってストレスになってしまう可能性があります。

要件の定義次第でシステム・サービスの良し悪しが決まるので、今回はディレクターとしてそれらをうまく導いていくためのポイントを紹介します。

要件定義で心がける5つのポイント

1. その機能はなにを解決するためのものなのか

無駄な機能というものはありません。そんな機能があれば、それは機能と呼ばれません。つまり、Webサービスやシステムというのはなにかを解決するために開発されているんです。
1つ1つの機能に課題解決の役割が与えられており、その集合体がWebサービスです。
機能をつけること自体にフォーカスして話が進みがちですが、「その機能はどんな問題点や課題を解決するための機能なのか」を1つ1つ明確にしていきましょう。こうすることで、意図したサービスを構築できるようになります。

2. 優先度の定義

でも日々色々なサービスがリリースされていくので、のんびり開発している暇はありません。スケジュールにゆとりがない中、開発していくのが世の常だと思います。
そのため、開発する機能の優先度をつけることが重要なポイントとなります。
全部作りきれればいいですが、スケジュールから延びてしまうことも少なくないかと思います。

優先度の付け方はいくつかありますが、下記がオススメです。

  • その機能がないと、サービスとして成立しないもの
  • 競合サービスが既に実装しているもの
  • 運用でカバーできないもの、明らかに非効率なもの
  • 営業的な側面、資金調達の側面から、ないと始まらないもの
  • 実装することで、劇的に改善が見込めるもの

これらは優先度として高い代表的な項目だと思います。そのときどきで優先度の切り口を洗い出して分類しましょう。

3. ベンチマークの準備

なにかを作ろうとしたとき、類似サービスや競合が存在している場合も多いと思います。ですから、要件定義のときにベンチマークするサイトやサービスを出してあげましょう。
その際、下記のようなことを下調べしておけば、より話も進みやすいと思います。

  • 成長プロセス(PVや会員数などの推移やそのきっかけ)
  • 実装されている機能
  • ユーザのレビュー
  • 金額や価格帯
  • 強み・弱み
  • 今後の成長予測

これらを準備しておくと自ずと指標もできるので、良い機能はより改善できたり、同じ轍を踏まずに済んだりもします。

4. システム化することが最善なのかどうか

必ずしもすべてのものが、システム化される必要はありません。システム化=効率化と言い換えることが多いように、システム化するのであればそこには絶対的な意義が必要となります。
全ての工程でシステム化を望む方もいらっしゃると思いますし、僕らはWebサービス・システム開発をすることでお仕事がもらえるので、多くのものをシステム化することに問題はないように見えます。
しかし、ユーザの立場から見たときに有用な機能になるとは限りませんし、配送や物流など最終的には人の手を介する必要性も出てきます。ですから、なにかをシステム化する要件が出てきそうになったら、費用対効果の評価軸で考えるようにしましょう。

つまり、“その機能を実装することで、どのくらいコストが下がるのか”ということ。
この軸が最もシンプルで確実です。

膨大なお金と時間を使って機能を実装しても、運用が複雑になってしまったら全く意味がありません。投資に対しての費用対効果を、仮に予測でもクライアントに提示することで、その機能がシステム化するべきかどうかがわかります。
ときには運用でカバーした方がコストは低く済み、正確性も担保できる場合があります。メリット・デメリットを考えることに近いですが、きちっと定義することが大切です。

5. 納期の意識付け

要件定義が進むに連れ、システムの全容が見えてきます。
すると、「あ、これは間に合わない」といった状況に陥ることもありかと思います。こうなってしまうと、クライアントもクリエイターもお互い不幸になってしまいますよね。
気づくのが納期に近ければ近いほど、クライアント側も社内調整が進んでしまって引き下がれない場合があります。そうならないために、リリース日や納期を常に意識しましょう。
新たな仕様・要求・問題点・課題が出たときに、間に合うのかどうかをその都度で判断できる状況にしておくのが重要です。

仕様が決まっていく過程において、「今の状況であれば◯◯日にリリースで問題ないです」と一言を伝えてるだけで、お互いに納期の意識がグッと高まると思います。

さいごに

いかがでしたでしょうか。
要件定義という工程の中では、なかなかシステム・サービスの仕様が決まらずに長期化してしまうことも少なくありません。しかし、プロである僕らがいくつかの指標や判断軸を提示してあげることによって、それらはより早く確実なものとなっていきます。
制作工程の中で非常に大事なポイントなので、うまくコントロールして良い物を作りあげましょう!

なかみー
この記事を書いた人
なかみー

ディレクター

おすすめ記事

Recommended by