サイトアイコン PM-Guide-La(PM-ガイドラ)

プロジェクト計画書 「6章 要件定義」

システム開発におけるプロジェクト計画書を作成することをテーマに、それぞれの章立ての内容を解説している。今回は、プロジェクト計画書の要件定義の章に記載する内容について述べる。

→ プロジェクト計画書の全体(章立て)は こちら

要件定義工程では、次工程のシステム設計を進めるためにシステムに求められる機能、動作、UIなどのシステムの仕様を明確にしていく。

なお、ここではプロジェクト計画書に記載する内容を述べる。要件定義やシステム仕様に関する考え方や具体的な進め方の詳細については別途まとめ中。

 

6章 要件定義

この章では、要件定義工程をどう進めるのか計画を述べる。計画というものは最終的にWBSでタスクにまで詳細化されなければならないので、この工程の作業をWBSにブレークダウンできる内容にするということを意識する必要がある。ブレークダウンできる内容にするには、下記の考え方で整理すればよい。

① その工程の大まかな流れを示す(=2.要件定義工程の内容と流れ)
② ということは、①ではどんなことを実施するのかを決める必要がある(=2.要件定義工程の内容と流れ)
③ 加えて、なぜ②のようなことを実施するのかの説明も必要(=1.要件定義工程の目的と方針)

これを読みやすいように、その工程の「目的と方針」→「内容」→「作業の流れ」という構図にすれば、要件定義工程の筋道を概ね理解できる内容となるかと思う。ただ、今回は「目的と方針」を冒頭にして、「全体イメージ、作業の内容」をまとめて最後に「システム仕様」の詳細を書くことにした。(書いていくうちにこうなってしまった・・・)

 

1.移行の目的と方針

「目的と方針」では、後述する「2.要件定義工程の内容」に先立ち、そもそもこの工程の目的は何であるのかということを明確にして進め方の方向性を示す。目的と方向性を示すことでその工程でやるべき内容が見えてくる。
ポイント:
・目的:この工程の簡単な説明と何を目指すのかを明確にしておく(簡潔に書けばよい)。これはプロジェクトによって異なるので正解はない。ただし、企画書(プロジェクト発注側が作成する)や提案書(プロジェクト受注側が作成する)の内容に相違が無いかは注意したい。下記の例では「システムの仕様の確定を確定し合意すること」とした。この目的を達成できるように次節以降で、要件定義工程の内容を掘り下げていくことになる。
・方針:要件定義工程を進めるうえで、定めておくべきことを述べる。進め方、体制、環境など5W1HやQCDの観点で、こういう風に進めるということを明記しておく。こちらも目的と同様に、企画書や提案書といった前提となる資料の内容との整合性は確認しておきたい。
・そもそも「方針」とは何か。「方針」について詳しい記事 → 方針とは何か
・決めるべきいろいろな方針に関する記事 → プロジェクト推進のためのいろいろな方針(作成中)
・要件定義とは → 要件定義とは(作成中)

例:
1.要件定義工程の目的
要件定義工程では、基本設計工程及び詳細設計工程に先立ち、業務要件、機能要件、非機能要件を整理し、システム仕様を確定させる。また、確定したすべてのシステム仕様を記載したシステム仕様書を作成し、貴社と弊社にてその内容を合意する。
例:
2.要件定義工程の方針
要件定義工程の方針を下記に示す。
①システムの仕様を確定するまでのおおよその流れは以下の通りである
 1.業務要件を整理・確定し、ユースケースを洗い出す
 2.ユースケースに基づき、機能要件の整理・確定し、システム仕様書を作成する
 3.業務要件を基に非機能要件の整理・確定し、システム仕様書を作成する
②要件定義工程では、貴社にて作成した「XXXシステム更改プロジェクト 提案依頼書 別紙8 XXXシステム更改追加開発要件一覧(.xlsx)」の内容を基に、システム仕様書を作成するまでの整理や確認を行う
③要件及びシステム仕様においては、それぞれ識別子を割り振り紐づけを行うことで整合性を確保する
紐づけの構造は以下の通りとする
[業務要件] → [機能要件]及び[非機能要件] → [システム仕様]
また、次工程以降の設計やテストの内容に対しても紐づけを行いトレースできるようにする

④要件定義工程の成果物はテスト工程のInputとなる。このため、テスト仕様書を作成することを意識した内容とし、本工程で作成する成果物の品質チェックにおいてはその観点を取り入れたレビューを行う
⑤要件定義書の内容において、要件定義工程以降に要件の変更が生じた際には、XXXXシステム更改プロジェクト 管理計画書 X章 変更管理」の内容に従い対応する
⑥要件定義工程は弊社が主体で進めるが、貴社には下記の内容について協力いただくものとする
作業 対象者 協力の内容
業務フロー、業務一覧、課題一覧、機能一覧、非機能要件の整理 ユーザー部門 ・実業務の確認、内容把握のご協力
・抜け漏れのない理解のための確認作業のご協力
要件レビュー ユーザー部門/システム運用責任者 要件が期待通りかどうか、運用にフィットするかの確認
ユースケースの整理 ユーザー部門/システム運用責任者 ・実業務の確認、内容把握のご協力
・抜け漏れのない理解のための確認作業のご協力
システム仕様確定 ユーザー部門/システム運用責任者 操作性や運用フローがあるべき姿にフィットしているかどうかの確認

 

参考:
・今回の例では、方針として主に6つのことを記載してみた
 ① 要件定義工程の全体の流れ
 ② 要件定義工程を進めるうえでベースとなる資料
 ③ 各要件とシステム仕様はトレースできるようにする
 ④ システム仕様はテスト仕様書のInputになり得る内容であること
 ⑤ 要件の変更は「変更管理」に則って対応する
 ⑥ 業務側の役割

 

2.要件定義工程の内容と流れ

要件定義工程の大まかな流れを示す。改めてになるが、要件定義工程で実施することは、業務要件、機能要件、非機能要件を整理し、システム仕様書を作成することである(あくまでこの計画書では)。作業をフローチャートにまとめると、おおよその流れが理解しやすい(=作業の全体イメージ)。また、ただ、フローチャートのそれぞれのボックス(長方形の図形)に対して、どのようなことを実施するのかがわかる説明もあった方が良い(=作業の内容)。
ポイント:
・作業と成果物を明確に記載にする(本当は縦軸に登場人物を追加して「承認」などの作業プロセスも設けたかった)
・InputとOutput(成果物)はできるだけ詳細に記述したい。下記の例は少々手を抜いている・・・例えば、[機能整理]のボックスは、機能一覧をベースに必要に応じて修正を加えることを想定しているが、下記のフローチャートだけでは読み取れない

例:
要件整理において、システム仕様書を作成するまでの流れのイメージと作業の内容を以下に示す。
<作業の全体イメージ><作業の内容>
要件 作業 作業詳細 Input Output
業務要件整理
業務要件確認、修正 貴社で作成された業務要件に基づいて、業務の全容を把握するとともに、機能要件の整理に先立ち漏れや不明点を確認し必要に応じて修正する ・業務一覧
・業務フロー
・課題一覧
・業務要件
・機能一覧
・非機能要件
・業務一覧(修正)
・業務フロー(修正)
・業務要件(修正)
・機能一覧(修正)
・課題一覧(修正)
ユースケース整理 それぞれの業務に対して、ユーザ心理を考慮した業務に基づくシナリオを作成し、行動や操作を洗い出す ・業務一覧(修正)
・業務フロー(修正)
・業務要件(修正)
・機能一覧(修正)
・非機能要件(修正)
・課題一覧(修正)
ユースケース
機能要件整理 機能整理

ユースケースを基に、システムに必要な機能を洗い出す(洗い出された機能を機能一覧に追加する

・ユースケース

・機能一覧(修正)

機能一覧(確定)

仕様化範囲の整理

機能一覧の各機能に対して、それぞれどのような設計(画面、インターフェース、帳票など)が必要かを決定する(機能一覧の横軸に画面、インターフェーズなどの設計項目を設け、必要な仕様をプロットする)

機能一覧(確定)

機能一覧(設計項目追加)

システム仕様確認・整理

確定した仕様化範囲に基づいて、実現したい画面や操作、帳票、データ構造、システム間連携、処理内容を整理し、システム仕様書を作成する

機能一覧(設計項目追加)

システム仕様書(※)

非機能要件整理
非要件整理

業務要件及び機能要件を基に、品質(性能、可用性、拡張性など)や法令にかかわる要件を整理する。また、プロジェクトにかかわる移行要件及び次期システムに関する教育・引継ぎにかかわる要件について整理する

・業務一覧(修正)
・業務フロー(修正)
・業務要件(修正)
・機能一覧(修正)
・非機能要件(修正)
・課題一覧(修正)

・非機能要件(確定)

・移行にかかわる要件

・教育、引継ぎにかかわる要件

システム仕様確認・整理

非機能要件の整理結果を基にシステムの仕様書を作成する

非機能要件(確定)

システム仕様書(※)

(※)システム仕様の詳細については、次節「3.システム仕様」にて述べる

参考:
・業務要件については、予め業務側(ビジネス側)で整理されているものなので、新たに何かを作成するというよりは、整理が十分であるかを確認する
・非機能要件は、正直、機能要件とは異なり少々設定しにくいかもしれない。機能要件は必要な機能が明確に表現できるが、非機能要件はシステムを横断的に設定するものが多くややふんわりした印象。非機能要件はどのようなことを設定すれば良いかについては別途まとめる
・できれば、フローチャート、作業内容については、開発するシステム及び開発チームそれぞれに対して何を実施するのかを大まかに示したいところ。体制と役割、環境についても触れておくと計画書としての完成度は高まる
・非機能整理は、システム設計にかかわらず移行などの要件も加えているが移行計画などで整理してもよい

・ユースケースについて → こちら

 

3.システムの仕様

要件定義工程ではシステム仕様書を作成すると述べてきたが、ここではシステムの仕様とは何かを具体的に示す。目的と方針で述べてたかったが、長くなってしまうのでここでは新たな節を設けて記載しておくことにした。なお、以下の「項目」列は一例を記載している。ほかにも色々と要素はあると思う。

例:
<機能要件にかかわるシステム仕様一覧>
システム仕様 説明 項目
画面 利用者が業務を遂行するために操作する画面の内容・構成・挙動を定める 画面ID/名称、レイアウト、画面遷移、入力項目、表示項目、ボタン・操作、エラーメッセージ、イベント・アクション、利用権限、非機能要件
帳票 業務上必要な情報を印刷またはPDF等で出力するための形式や内容を定める 帳票ID、帳票種別、出力タイミング、出力形式、レイアウトイメージ、出力項目、抽出条件、並び順・集計条件、発行権限
外部連携 他システムとのデータ送受信を正しく行うための方式、形式、仕組みを定める インターフェースID/名称、接続元/接続先システム、データ内容、通信方式、フォーマット、型桁数、変換、トリガー、セキュリティ
データベース システムで使用するデータの種類と構造を定める テーブル名、項目名(カラム)、データ型/桁数、NULL可否、主キー・外部キー、初期値・デフォルト、インデックス設計、制約条件、保守・履歴情報
バッチ 定期的・大量データ処理などを自動的に行う処理の操作や流れを定める バッチID、実行タイミング、入力ファイル、処理内容、出力ファイル、処理フロー、エラー時対応方法、ログ、処理時間、実行環境
<非機能要件にかかわるシステム仕様一覧>
システム仕様 説明 項目
可用性 サービスの稼働時間に関する仕様を定める 稼働率、稼働時間、サービス時間

性能

システムが処理を行う速さや応答時間、同時に利用できるユーザー数を定める レスポンスタイム、同時接続数
信頼性 システムが安定して動作し続ける能力の指標。サービスを継続的に提供できるかの仕様を定める 障害発生時の対応、バックアップとリストア
拡張性 将来の利用拡大(データ量やユーザー数増加)に対応できる柔軟性に対する仕様を定める ユーザー数追加、データ量増加

継続性

災害や障害が発生した場合でも、システムを継続・早期復旧できる体制に関する仕様を定める 冗長構成、バックアップ
保守性 障害対応や改修をスムーズに行えるかどうかを定める 障害対応、復旧
運用性 日々の運用(監視、ジョブ管理、障害対応など)の難易度やコストの仕様を定める ログ取得、設定変更の容易性、監視
上位互換性 旧バージョンで作成されたデータや機能が、新しいシステムでも問題なく使えるかの仕様を定める  アップグレード対応

規模

想定されるユーザー数やデータ量に見合うだけの容量・性能に関する仕様を定める  ユーザー数、データ量
アクセシビリティ 利用環境や高齢者や障害のある人でも使いやすいように配慮されているかの仕様を定める  利用媒体(スマートフォン、PCなど)、利用環境(対応ブラウザ、UI)
セキュリティ 情報漏えいや不正アクセスを防ぐ仕組みに関する仕様を定める  権限、アクセス制限、不正操作検知
法令・規制対応 関連する法律や業界基準に関する仕様を定める 電子帳簿保存法、個人情報保護法、IFRS対応

 

あとがき

「目的と方針」→「内容」→「作業の流れ」という構図で書いていたが、いろいろと手を加えるうちに、構造が変わってしまった・・・。本当は、「1.要件定義工程の目的と方針」で、「3.システムの仕様」にあるシステム仕様の概念や詳細を述べて、更に「2.要件定義工程の内容と流れ」にある<作業の全体イメージ>の図を盛り込んで、要件定義工程の全体像を示したかった。そのようにして次の節で「2.要件定義工程の内容と流れ」に作業内容をもっと深堀り(例えばユースケースの整理としてはどんな作業をするのかなど)すると納得できるものができるの、だ、が、、、他の工程もその内容にすると、エライ時間がかかってしまう気がするので、一旦、上記の感じに落ち着いた。スケジュールや役割・体制については触れてもいいかなとも思うが、実際にはプロジェクト計画とは別にパワポで要件定工程の進め方の説明資料を作成して、工程開始前に関係者全体に説明する形式の方がプロジェクト計画書の内容がごちゃごちゃしなくて済む。
あとは、筆者自身も要件定義には詳しくないので、いろいろと作業の詳細を洗い出して調べてまとめるとなると時間がかかってしまうというのも上記の内容になってしまった理由の一つ。上記の内容については、節を別のページに分けてもっと内容を盛り込むべきかなど、今後いろいろと検討したい。(作業の内容は役割と成果物がわかるフローチャート形式するとわかりやすいし)
今回は要件定義について、いろいろ調べてみたが、要件定義に関連する書籍がいろいろとあるので学習教材には困らなかったことはありがたい。そういった書籍の紹介もいいかもしれない。
今後は設計についても調べていこうと思うが、こちらは、インフラ、アプリ、DBとまあ盛りだくさんでボリュームがあり大変そうだなぁ・・・ぢ道にやるしかない

モバイルバージョンを終了