前回記事では、要件定義に関わる言葉の定義(要求、要件、仕様、業務要件、システム要件)を整理しました。
本記事では、システム要件定義で定義する内容を紹介します。また、抜け漏れなく要件定義を進めるためのチェックリストも紹介します。
システム要件定義で定義する内容
システム要件は、大きく2つに大別されます。
- 機能要件
- 非機能要件
機能要件
機能要件は、新業務を行う上でシステムが持つ機能を定義します。最初に、ユーザがPCやタブレット、スマートフォン上で参照や入力操作を行う画面機能。
画面機能と似てはいますが、データの入力や更新を伴わず、分析を行うための帳票やレポート機能。
それ以外に、他のシステムとデータ連携を行うインターフェース機能。
新システムの導入時に旧システム等からデータ移行を行う移行機能。
上記全体を支えるインフラ機能などがあります。
これらの要素ごとにシステムが備える機能を機能要件と呼びます。
非機能要件(NFR:Non Functional Requirement)
非機能要件は、システム要件定義における機能要件以外を指します。レスポンスやセキュリティ方式などいくつか思いつくものもあるかもしれません。とはいえ、機能要件と異なり、利用者がイメージしづらいものもあり、IT部門側で社内基準と比較しつつ検討し、その結果をユーザ部門と合意するのが一般的です。
非機能要件は大きく6つに分類されます。
- 可用性 稼働時間、停止予定、復旧目標
- 性能・拡張性 レスポンス、キャパシティ
- 運用・保守性 稼働レベル、監視・バックアップ方式
- 移行性 移行期間、移行方法、移行量
- セキュリティ 利用制限、不正アクセス防止
- システム環境・エコロジー 耐震/免振、CO2排出量
要件定義フェーズの成果物
一般的な要件定義フェーズの作成物は以下の通りです。
- システム化目的、目標
- システム化の対象範囲
- 現物理DFD、現論理DFD、現ER図、業務データ量、用語集
- 問題点/要望記述書
- 改善案
- 新論理DFD、新ER
- システム化要件
- 費用対効果
- 新システム開発計画
機能要件は「新論理DFD、新ER、システム化要件」に記載します。
非機能要件は「システム化要件」に記載します。
要件定義にありがちな問題
要件定義でありがちな問題は大きく3つあります。
- 要件が固まらない(決められない、合意できない)
- 固まらない結果長期化する(後続にしわ寄せがいく)
- 後で要件・仕様の認識齟齬が発覚する
大まかすぎると後続フェーズで大きな認識齟齬が発生する可能性が高まりますし、いきなり細かく作っても立場の異なるメンバでの合意が難しくなります。大枠を合意して段階的に細かくするのがベストですが、時間もかかりますし、メンバー全員が構造的に検討することが得意なわけでもなく、決して簡単ではありません。
要件定義を効果的に進めるチェックリスト
▼以下の本の「要求定義を効果的に進めるためのポイント」が参考になりますので紹介します(古い本ですが本質は不変です。また、解釈を加えて言葉を変えています)。
- 要件定義の終了基準は明確か?
(文書一覧、フォーマット、レビュープロセス・基準) - システム対象範囲は明確か?
(対象システム、対象外システム、連携インターフェース) - 網羅性は担保できているか?
(業務領域、業務プロセス、担当部門) - 優先付けはできているか?
(業務の重要度、改革効果の大きさ) - 業務改善につながっているか?
(業務要件はシステム要件と整合しているか、情報技術に実現性はあるか) - 要件は正しく把握できているか?
ー(プロトタイピングの実施、取り扱うデータ項目を明確化)
ー(参画メンバーの良好なコミュニケーション)
ー(外部メンバーとも共有可能な構造的な文書化) - 期限内に完了できるか?
(課題抽出と影響・担当・期限の明確化、プロジェクト全体での課題対応、定期的な状況把握)