オルタナティブ・ブログ > 森崎修司の「どうやってはかるの?」 >

計測できそうでできない多くのこと。エンピリカル(実証的)アプローチで。

Service Level Agreementで使われる指標

»

ご存知の方も多いと思いますが、サービス品質を保証することを目的としたSLAという取り決め/コミットメントがあります。ネットワークの分野では比較的浸透しているのか、インターネット通信サービスでは、NTTコミュニケーションズKDDI(旧サービスへのリンクです)、Softbank、ともにwebに掲載されています。IIJによるとインターネット接続に同社が国内で最初にSLAを導入したそうです。IBMのサイトにはWebサービスとSLAの関係を記したwebページがあります。

ここで使われているSLAの多くは可用性、応答時間/遅延時間に関するもので一定期間のうち、サービスが利用できなかった期間の割合が何パーセントかを超える(可用性)、あるいは、応答時間や遅延時間(の平均)がある閾値を超えると料金を減額する等の契約になっているようです。これらがうまく機能していたり、広く使われている理由は非常に客観的で理解もしやすいところにあると思っています。

では、ソフトウェア開発ではどうなのかというと、通信サービスほどうまくいっていないのが現状のようです。ただ、何もしていないというわけではなく、テストカバレッジ(C0, C1)を指定したり、外部委託の階層があまりにも深くならないような契約を含めたりするところもあります。また、テストケースの数をテスト対象の規模(たとえばソースコード行数)で割ったテストケース密度を指定したり、前回の不具合密度を指定したりします。また、組織内の標準手順の提示や認定されたCMMIのレベルにより判定をする場合もあります。ここで挙げた指標は、客観的ではあるのですが、できあがる成果物の直接的な指標ではなく、間接的な指標であることが広く普及していない理由と考えられます。(NASSCOMのメンバから聞いた話によると、インドではCMMIレベルが4, 5に達していないと米国からのアウトソース案件がとりにくいらしく、ある意味でSLAの指標として使われていると考えることもできそうですが)

Comment(2)