要件定義の進め方

システム開発の大炎上を防ぐために、上流工程(前工程)に位置する「要件定義」について、考えていくブログです。

要件定義書の作り方
PDCAサイクルではなく、PDCサイクルを回そう
あるべきV字モデルについて整理した
スコープを決めてから、QCDの議論をしよう

IPAの非機能要求グレードの小項目を理解する(No5/119:稼働率)

今回は、稼働率について紹介する。

稼働率:稼働を予定している時間のうち、どのくらいの割合稼働させられるか

稼働率というのは、稼働を予定している時間のうち、どのくらいの割合の時間システムが稼働しているかの指標だ。稼働率99%だとか、稼働率99.9%だとかの数字で表現される。あまりイメージがわきにくいと思うので、具体的な数字で計算してみよう。

例として、定時時間中のみ稼働しているシステムで稼働率を計算してみるとする。

1年で1920時間(1日8時間、月160時間)稼働するシステムの場合

  • 95.00%:1年(1920時間)のうち96時間は故障している
  • 99.00%:1年(1920時間)のうち9.6時間は故障している
  • 99.90%:1年(1920時間)のうち57.6分は故障している
  • 99.99%:1年(1920時間)のうち5.76分は故障している

となる。運用をしたことのある者ならわかるかもしれないが、いったん原因不明のトラブルが発生すると、すぐに復旧というのは難しい。したがって、稼働率99%以上の要求というのは、事実上、トラブルで故障するなと言っているに等しい。仮にトラブルで故障したとしても、システムを監視するシステムを導入し、自動復旧を試みるなどの仕組みが必要だ。稼働率95%ならば、人力で対応可能なレベルと考える。

稼働率を決めるうえで大切なことは、業務が停止したときにどのくらい困るかを明確化すること

顧客側から見れば、稼働率は高ければ高いほうがいい。しかしながら、稼働率を高くすればするほど、高い稼働率を維持するためのコストがかさむこととなる。大切なことは、システムが仮に停止したとして、その業務はどのくらい困るのか?年間何時間の停止ならば許容できるのか?をあらかじめ明確化しておくことだ。そういう明確化をしておくことで、稼働率はどこまでのレベルが必須なのかを決めておくことができる。

稼働率95.0%と稼働率99.9%では、システムの構成は変わるはずだ。ベンダの実力値を測る意味合いで、目標稼働率95.0%の場合と目標稼働率99.9%の場合でシステム開発の見積をさせてみよう。提案内容は異なるはずだ。上記2つの実現方法の違いの部分にベンダの考えが表れてくる。ベンダの能力試験という意味合いで、2パターンでの見積依頼をかけてみるとよい。

24時間365日稼働するクラウドサービスの場合

参考として、24時間365日稼働しているクラウドサービスの場合の稼働率を示す。
1年間で業務が中断する時間の合計は、それぞれ以下の通りとなる。

  • 95.00%:1年(8760時間)のうち438時間は故障している
  • 99.00%:1年(8760時間)のうち43.8時間は故障している
  • 99.90%:1年(8760時間)のうち4.38時間は故障している
  • 99.99%:1年(8760時間)のうち26.28分は故障している

24時間稼働するシステムの場合、稼働率計算における分母が大きくなるため、稼働率95.00%の場合だと故障時間はかなり大きいように見える。そもそも24時間稼働させねばならないシステムで5%の時間が故障中ということは許されず、求められる稼働率は、最低でも99.00%以上が妥当だ。

まとめ

稼働率というのは、稼働を予定している時間のうち、どのくらいの割合稼働させられるかのことだ。業務が停止したときにどのくらい困るかを明確化した後で、何時間の業務停止ならば許容できるかを決め、そのあとに求める稼働率を決めるとよい。

f:id:req-definer:20220206213347p:plain

[No5][A.1.5]稼働率

結論:まずは、業務の停止許容時間を決めた後に、目標稼働率を決めよう