IPAより8年ぶりに非機能要求グレードの更新版がリリースされました。
しかし、この非機能要求グレードは使ってはいけません。
その理由を綴っていきます。

全体

経営者目線を無視

システムは経営者・経営陣が、システムから何らかの便益を得るために投資するものです。
非機能要求グレードの多くの項目はコストに直接影響してくるものです。
コストに直接影響するものであるにも関わらず、経営サイドからすると何のために・なぜ投資するのか理解できない仕様になっています。

リスクが漏れる

非機能要求は、リスクへの対応です。漏れのある知識集的なデータベースだと、個別のプロジェクトに対応できず、漏れが出てきてしまいます。

また、最も危険なことは、この非機能要求グレードを使うことでリスクへの対応を”やったつもりになる”ことです。

費用対効果が計れない

費用をかけるということは費用対効果が検討できなければなりません。洋服を買うときも高いけど、生地が良いとか、生地が良いとしわになりやすいとか、様々なことを総合してお金をかけるかどうか決めているはずです。非機能要求グレードでは、このような費用対効果は一切検討できません。

情報の提示と要件が混在している

要件という言葉には狭義の要件と広義の要件があるのではないかと考えています。
広義の要件とは、ベンダからみるとお客様の提示するもの全体が要件です。
狭義の要件とは、要件のうちお客様が費用対効果などから選択の余地のあるもので、それ以外の選択の余地の無いものはお客様からベンダに対して行うただの情報提供です。
この協議の要件提示と情報提供は分けて考えるべきです。なぜなら情報提示は最上流工程では出せず、工程の中で順次提示しなければならないものも出てくるからです。そのような情報提示は、本来ベンダがどの工程でこういう情報を提示して下さいとSUGGESTするべきです。

可用性

冗長化するかどうか、顧客に聞いてなぜ答えられるのか

何をどの程度冗長化するのかをお客様が、なぜ答えられるのでしょうか。
仮にIT部門の担当者が答えたとして、そのIT部門の担当者は経営サイドになぜ冗長化したのか答えられるのでしょうか。答えはNOです。
費用をどのくらいかけて冗長化するのかは費用対効果ですし、冗長化レベルを上げるか下げるかはビジネス上の影響が検討できていなければいけません。

RPO・RTOは早い方が良いに決まっている

RPO(目標復旧地点)・RTO(目標復旧時間)もコストに大きく影響します。また復旧方法は業務アプリケーションの仕様にも大きく影響します。それをRTO・RPOどうしますか?だけでヒアリングできる訳がありません。
ビジネス上の影響を勘案してどの程度コストをかけるべきかということと、実際障害が起きた際にどのように復旧していくかという話がないと決められません。

稼働率を要件化するのはナンセンス

稼働率は運用してみないと検証できません。また、障害発生確率を試算することも現実的でないため、稼働率を要件として決めることは意味がありません。
稼働率を定義する必要があるのは、ある条件下だけで一般のシステム開発では意味が無いので、定義する必要はありません。

最も重要な項目が入ってない

非機能要求グレードには可用性のうち、停止時間を大きく左右するものが入っていません。また、同じくコストを最も左右する要件も入っていません。

性能

最も重要な項目が入ってない

非機能要求グレードには、性能とコストを最も左右する重要な項目が入っていません。

性能についての理解が不足している

性能の項目に“同時アクセス数“という項目があります。これを聞きたくなる気持ちはわかります。その数値でミドルウェアの設定を決めたいからです。しかし、お客様がなぜ同時アクセス数を決められるのでしょうか。オンラインシステムでは、様々な機能が一定期間内に大量に発生します。どの機能がどのくらい単位時間あたり発生するのかわかるIT部門の方がいるのでしょうか。できる方がいるとしたら、その方は超スーパーマンです。
つまり、同時アクセス数を聞くということは性能に関してお客様と要件を詰めていく能力が無いことを示しています。

運用保守

運用保守については、ほぼゼロ点に近いと言って良いでしょう。
運用保守とはそもそも何なのか、そこから考える必要があります。

移行

移行に関しても、根本的な項目が入っていません。移行は進め方と要件がセットになっていなければなりません。最も最上流で注意が必要な分野ですので、間違った要件定義を行わないようにしましょう。

セキュリティ

セキュリティは、多くの製品・サービスが存在し、コストも大小様々です。正しいリスク分析と費用対効果分析により製品・サービスを選定しないと、費用対効果が悪かったり、セキュリティに漏れのある要件になってしまいます。
他の項目も非機能要求グレードは使ってはいけませんが、セキュリティは特に使用してはいけない項目です。