「機能要件は分かるけど、非機能要件って何のこと?」「開発会社に『非機能要件も決めましょう』と言われたけど、何を答えればいいか分からない」——システム開発の打ち合わせで、こうした疑問を持つ発注者は多いです。
非機能要件は、機能要件と比べて見落とされやすいにもかかわらず、システムの使いやすさや安全性を大きく左右する重要な要素です。この記事では、非機能要件とは何か、なぜ重要なのか、具体的に何を決めればいいのかを分かりやすく解説します。
機能要件と非機能要件の違い
まず、機能要件と非機能要件の違いを整理しましょう。
機能要件とは、「システムが何をするか」です。「ログインができる」「商品を検索できる」「データをCSVで出力できる」——こうした、具体的な機能を指します。発注者にとって最もイメージしやすく、要件定義の際に真っ先に話題になる部分です。
非機能要件とは、「システムがどういう状態であるべきか」です。機能そのものではなく、その機能を取り巻く品質や性能に関する要件を指します。「1000人が同時にアクセスしても遅くならない」「個人情報は暗号化して保存する」「障害が起きても24時間以内に復旧する」——こうした、目に見えにくい部分の要件です。
レストランで例えるなら、機能要件は「メニューに何があるか」、非機能要件は「料理が出てくる速さ」「店内の清潔さ」「予約システムの安定性」に相当します。料理(機能)がどれだけ美味しくても、提供が遅すぎたり店が不衛生だったりすれば、お客さんは満足しません。システムも同じで、機能がどれだけ充実していても、非機能要件が甘いと「使えないシステム」になってしまいます。
非機能要件が見落とされやすい理由
多くの発注者が機能要件には熱心に要望を出す一方、非機能要件は開発会社に「お任せします」と丸投げしてしまう傾向があります。理由は明確です。
機能要件は、画面や動作として目に見えるため、イメージしやすく要望を伝えやすいです。一方、非機能要件は完成して使ってみるまで実感しにくく、何を決めればいいのかも分かりにくいという特徴があります。「そもそも何を聞かれているのか分からない」という状態で、結局「普通にお願いします」という曖昧な回答になってしまうことがよくあります。
しかし、この「お任せします」が後から大きな問題を引き起こします。
非機能要件を曖昧にした結果、起きること
非機能要件を明確にせずに開発を進めた場合、次のような問題が実際に起きています。
動くけど遅すぎて使えない
機能はすべて仕様書通りに実装されているのに、画面の表示に何秒も時間がかかり、現場の社員から「使いづらい」という声が上がるケースです。「性能要件」を決めていなかったために起きる典型的な問題です。仕様書通りに動いているため「バグ」とは判断されず、改善には追加費用が必要になることが多いです。
繁忙期にシステムが落ちる
普段は問題なく動いていたシステムが、月末の集中アクセス時にダウンしてしまうケースです。「同時アクセス数」や「想定利用者数」を事前に伝えていなかったために、サーバーの設計がその規模に対応していなかったことが原因です。
セキュリティが不十分で情報漏洩のリスクがある
「セキュリティはお任せします」という発注の仕方では、最低限の対策しか実装されないことがあります。個人情報や決済情報を扱うシステムであれば、暗号化・アクセス制限・ログ管理など、具体的なセキュリティ要件を明示する必要があります。
障害時に長時間業務が止まる
サーバーに問題が発生したときの復旧体制が決まっていないと、トラブル発生時に「どのくらいで直るか分からない」という状態に陥ります。「可用性」「稼働率」の要件を決めておくことで、こうしたリスクに備えられます。
非機能要件で決めておくべき主な項目
発注者として、最低限押さえておきたい非機能要件の項目を紹介します。
①性能要件
画面の表示速度、データ処理にかかる時間、同時アクセス数への対応など。「何人が同時に使っても、何秒以内に表示されるべきか」を具体的な数字で伝えましょう。
②可用性・稼働率
システムがどのくらいの割合で正常に動いている必要があるか。「年間99.9%以上稼働すること」など、業務への影響度に応じて設定します。
③セキュリティ要件
データの暗号化、アクセス権限の設定、ログの保管期間など。個人情報や機密情報を扱う場合は特に重要です。
④拡張性
将来的に利用者数や取扱データ量が増えた場合に、システムが対応できるかどうか。事業の成長を見据えて伝えておくべき項目です。
⑤運用・保守性
障害発生時の復旧時間の目安、バックアップの頻度、保守対応の範囲など。長期的に使い続ける上で欠かせない要件です。
⑥互換性
利用するデバイス(パソコン・スマートフォン・タブレット)やブラウザの種類。社員がどの環境で使うかによって、対応範囲を決める必要があります。
非機能要件を伝えるときのコツ
非機能要件は専門的に聞こえますが、発注者が技術的な数字を自分で決める必要はありません。大切なのは、「業務の実態」を正直に伝えることです。
「何人くらいの社員が同時に使う予定か」「ピーク時はいつで、どのくらいのアクセスが想定されるか」「システムが止まったら、業務にどのくらい影響が出るか」「扱うデータに個人情報や機密情報は含まれるか」——こうした実態を伝えることで、開発会社が適切な非機能要件を設計してくれます。
「分からないから決められない」と諦めるのではなく、「分かる範囲の実態を伝える」という姿勢で要件定義に参加することが大切です。
まとめ:非機能要件は「見えない品質」を決める作業
非機能要件は、完成した直後には気づきにくいものの、システムを使い続ける中で必ず影響が出てくる要素です。機能要件ばかりに気を取られて非機能要件を後回しにすると、「動くけど使えない」「いつか限界が来る」システムになってしまいます。
「非機能要件についてよく分からない」という段階でも問題ありません。シスナビでは、業務の実態をヒアリングしながら、必要な非機能要件を一緒に整理しています。まずはお気軽にご相談ください。