非機能要件の検証って難しい

投稿日:2008年11月05日 作成者:yasunaka

システムがうまく機能しない大きな原因の1つに、非機能要件が満たされていないことがあります。機能要件についてはやらなければならないことが明確なので、きちんと合致していることを検証するのは比較的容易ですが、非機能要件については定義そのものがぼんやりとしている場合が多く、どこまでやれば満たされていると判断できるのかが釈然としない場合が多いのではないでしょうか?

非機能要件の例としては、こんな項目があります。
・性能要件
・キャパシティ要件
・移行要件
・運用要件
・障害対策要件
・セキュリティ要件

「非機能要件については定義そのものがぼんやりとしている」と書いたのですが、これは非機能要件は「?できる状態」をあらわしているものだからではないかと思います。システム全体に渡って定義された状態を満たしていることを検証しなければならないわけですが、「状態」を満たしていることをシステムの外部から見て確信できるようにする、なんてことはなかなか難しいものです。

少し前に、大規模ECサイトのリニューアル後に大規模な障害が発生したという件がネット上で話題になっていましたが、これなども一言でいえば、性能要件とかキャパシティ要件といった非機能要件に問題があったと言えます。それらがきちんと検証されていたかどうかは知る由もないのですが、もし当事者となって考えた場合、じゃあ実際問題、どうやって本番運用前の段階で問題が発生しないことを検証するのか? というのはかなり難しい問題だと思いませんか?

こういった問題に対処できるのは、似たような環境で多くの事例・経験を積んだ組織ということになるのだと思います。これこそシステム開発の本来のノウハウといえる部分ではないでしょうか?