はじめに(この記事で解決できること)
非機能要件とは、「何ができるか」ではなく、「どのような品質で動作すべきか」を定める要件です。
システム開発では、画面や機能の内容は比較的早い段階で決まる一方、性能や可用性、セキュリティといった非機能要件は最後まで曖昧なままになることが少なくありません。非機能要件はシステム全体の品質を左右する重要な要素ですが、機能要件ほど具体的なイメージを持ちにくく、「あとで決めよう」と後回しにされがちです。
この記事では、非機能要件が曖昧になりやすい理由と、要件定義で意識すべき考え方について解説します。この記事を読むことで、次のことが理解できます。
・非機能要件が後回しになりやすい理由
・非機能要件が曖昧なまま進む原因
・要件定義で非機能要件を考える重要性
機能要件は想像しやすい
機能要件は、「何ができるか」を考えるものです。
利用者は日々の業務をイメージしながら、「この画面が欲しい」「この帳票を出したい」といった形で要求を伝えられます。そのため、関係者同士で認識を合わせやすく、比較的早い段階で内容が固まりやすい特徴があります。
非機能要件はイメージしにくい
一方で、非機能要件は「どのように動くべきか」を決めるものです。
例えば、何秒以内に画面を表示する必要があるのか、何人まで同時に利用できる必要があるのか、障害が発生した場合にどれくらいで復旧すべきなのかといった内容が含まれます。
これらは普段の業務では意識されにくく、問題が発生して初めて重要性に気付くことも少なくありません。そのため、要件定義の段階では十分に議論されず、曖昧なまま残りやすくなります。そのため、具体的な条件まで議論されないまま開発が進んでしまうことがあります。
非機能要件には曖昧な言葉が多い
前回の記事では、要件定義ではビッグワードを具体化することが重要であると説明しました。
実は、非機能要件はビッグワードが特に多い領域です。
「高速に動作する」「安定して利用できる」「安全なシステムにする」といった表現は方向性を共有するには便利ですが、それだけでは設計に必要な情報にはなりません。例えば「高速」と言っても、一秒以内を求める人もいれば、五秒以内で十分と考える人もいます。同じ言葉でも前提が異なれば、設計も大きく変わります。
なぜ最後まで曖昧なまま残るのか
非機能要件は、目に見える機能ではないため、優先順位が下がりやすいという特徴があります。
また、必要な性能や可用性は利用者数や運用方法など、多くの前提条件が決まらなければ具体化できません。そのため、「まだ決められない」「あとで考えよう」と判断され、最後まで曖昧なまま残りやすくなります。
非機能要件は設計そのものを左右する
性能や可用性は、完成した後から簡単に追加できるものではありません。
必要な性能によってサーバー構成やデータベース設計は変わり、可用性の要求によって冗長化やバックアップの構成も変わります。
このように、非機能要件は設計が終わった後に追加するものではなく、設計の前提として最初から考慮すべき条件なのです。
まとめ
非機能要件は、完成後に品質を調整するためのものではありません。
システムの構造や設計を決める前提条件です。
だからこそ要件定義では、「高速」「安定」「安全」といった曖昧な言葉で終わらせず、具体的な条件として定義しておくことが重要なのです。非機能要件は品質を高めるための付加要素ではなく、システム全体の設計を支える前提条件なのです。

コメント