Webシステム開発にて要件定義で主にやること

SE

プロジェクトにおいてスコープ(成果物・作業範囲)の定義は大切です。

なぜなら、成果物や作業範囲が定まっていないと、追加の対応依頼や仕様変更があった際に、対応するかどうかでクライアントと揉めることになるからです。

例えば、

  • もともとインプットボックスにしていた項目を、後からセレクトボックスに変更したい
  • ボタンの色や位置を調整したい
  • 表示するメッセージの内容を変更したい

といったちょっとした変更/修正なら、スケジュールの範囲内でも対応可能かと思います。

ですが、

  • 追加/削除ボタン(機能)を追加したい
  • ○○画面を追加したい
  • IE11でも表示できるようにしたい

などといった要望は、追加の予算と期間がクライアントから降りないなら、スケジュールや稼働に影響を与えます。(クライアントの言うことを鵜呑みにしてしまうとベンダー側が不利になります)

これらは防ぐためにも、機能要件、非機能要件をクライアントへ明示する必要があります。

1.要件分析(ヒアリング)

発注する顧客から提案依頼書(RFP)を受けて、ベンダーはそれを実現するために要件を明確化するために定例会でヒアリングをしていきます。

提案依頼書には、背景や目的、KPI、予算、スケジュール、依頼したい作業範囲などが含まれます。

2.技術調査

ヒアリングをした段階で、顧客がどういったことをしたいのかを理解して、そしてその次にそれを実現するにはどういった技術が必要なのかを調査する必要性が出てきます。

例えば、

  • 決済機能(単発orサブスク)を実装したい→決済代行会社の調査と選定
  • グラフ(棒、円グラフ 他)を表示したい→パッケージやライブラリの調査 他
  • 外部APIを利用したデータ連携→連携元の仕様確認

ある程度はパターン化できるが、新しい外部サービスなどを利用する場合は、外部サービスのドキュメントを読み込んで使い方を理解する必要があります。

3.業務フロー図の作成

システム化するためにはどういった業務フローが発生するのかを視覚的な図でまとめることで、クライアントとベンダー間の認識齟齬を防ぐことができます。

主にアクター(人)とシステムの関係で図を作成していきます。

4.ユースケース一覧/機能一覧の作成

ユースケース一覧
ヒアリングした内容を元に、webシステムを操作するアクター(人)単位で何をするのかを、ベンダー側で表にしてまとめます。

例)ユーザー側でのログイン、一覧画面表示、登録処理など。
例)管理者側でのログイン、ユーザー一覧表示、登録表示など。

機能一覧
ヒアリングした内容を元に、各画面、帳票、バッチといった機能単位でどういった処理をするのかを表にしてまとめます。

また各機能の工数を設計、開発、テストごとに算出します。

優先度の定義
その機能がないとサービスが成立しない(MUST)、なくても運用に支障はないがあると便利(WANT)のようにどの機能は必須かを定義しておくことで、後のコスト見積もり時に調整しやすくなります。

5.非機能要件の定義

どのブラウザで動作保証をするのか、レスポンシブ対応するのか、どの程度のパフォーマンスを保証するのか、セキュリティをどう担保するかなどを定義します。

6.WBSの作成

各フェーズごと(設計、開発、テスト)にやることを洗い出します。

WBSの作成について

PMP PMBoK 第6版を理解する 4.スコープマネジメントについて
PMBoKの第6版におけるスコープマネジメントについて解説していきます。スコープマネジメントの全体についてや、要求事項の収集プロセスの働き、プロジェクトスコープ記述書、WBSの作成プロセス、スコープの妥当性確認プロセスの働き、スコープのコントロールプロセスについて説明できることを学習目標に解説していきます!

※PMPでのWBSは粒度が荒いため、アクティビティレベルが実際のタスクに近いです

7.リソースの割り当てとガントチャートの作成

WBSでタスクを洗い出したら、誰がどのタスクを行うかリソースの割り当てを行います。

割り当てが終わったら、タスク同士をつないでいきます。
基本的にはFS(終了-開始)のような順でシングルタスクになるようにつなぎます。

プロジェクト全体のスケジュールについて
クリティカルパス法などを用いて、プロジェクト全体のスケジュールを作成します。

PMP PMBoK 第6版を理解する 5.スケジュールマネジメントについて
PMBoKの第6版におけるスケジュールマネジメントについて解説していきます。​スケジュールマネジメントの全体についてや、アクティビティの定義、アクティビティの順序設定、アクティビティ所要期間の見積もり、プロジェクトスケジュール作成の各ツールと技法について説明できることを学習目標に解説していきます!

8.コストの見積もり

コストの見積もり方法には、いくつかやり方がありますが、会社ごとに基準が設けられていたり、独自見積もりをする場合があります。

基準がある場合の例

フェーズごとに単価が決まっている場合

  • 要件定義:50,000円/日
  • 基本設計:48,000円/日
  • 内部設計:46,000円/日
  • 開発:43,000円/日
  • テスト計画:48,000円/日
  • テスト実施:40,000円/日

  上記は一例ですが、会社間で決まっている場合、要件定義が高く、開発は安くなりがちです。テスト計画は要件をわかっていないと計画できないため、単価は高いですが、実施は誰でもできるため、単価は安くなります。

フェーズごとの工数を人日で算出して、フェーズ単価を掛ければ、見積もることができます。

アサインメンバーごとに単価が決まっている場合

  • PM:1,500,000円/月
  • フロントエンジニア:750,000円/月
  • バックエンド:750,000円/月
  • QAテスター:500,000円/月
  • インフラエンジニア:800,000円/月

誰(単価)を月に何%アサインするかによってコストを見積もることができます。

見積もりの手法(PMP)については、類推見積、パラメトリック見積、三点見積、ボトムアップ見積があります。

PMP PMBoK 第6版を理解する 6.コストマネジメントについて
コストマネジメントでは、コストマネジメント全体、マネジメント予備とコンティンジェンシー予備の違いについて、またEVAや残作業コスト見積もりから予測を求める方法について解説していきます。EVAはPMP試験対策上でも非常に重要なので、各数値の意味や各言葉の意味、定義について抑えておくことをおすすめします。

9.まとめ

要件定義でやることは、プロジェクトの特性や規模によっても変わってきます。
上記の例では主にSE(PMやPL)がやることを紹介致しました。

要件定義でUI/UXを決める場合もあります。その場合、デザイナーの方に、どういった画面操作になるかまたどういった見た目になるかをワイヤーフレームやプロトタイプで用意してもらうことがあります。

今回は以上となります。