Programming SHOT BAR へようこそ。今回はリスクというものについて考えてみたいと思います。
そもそもリスクって何?
日常でもリスクという言葉を使うと思いますが、そもそもどういう意味なのでしょうか?
手ごろなところでWikipediaで調べると
「危険に遭う可能性や損をする可能性を意味する概念」とありますね。
基本的には
発生確率×損害の大きさ
といった形で表されます。ここでは「損害」と書きましたが、金融用語では不確かさ、
つまり「発生確率」の部分を意味し損得に関わらず「リスク」といいます。
とくに不確かな利益についてはアップサイドリスク、不確かな損害についてはダウンサイドリスクといいます。
行動心理学的に人間は確率を過大評価もしくは過小評価する傾向があります。
端的には信じたいものを信じるわけですが、アップサイドリスクは過大に、ダウンサイドリスクは過小にという傾向が強い。
例えば、宝くじやギャンブルなどのアップサイドリスクは過大に評価しますし、
交通事故などのダウンサイドリスクは過小に評価しがちです。
しかし、このような評価の仕方をしていると取り返しの付かないミスをしてしまいます。
例えば賞味期限切れの食材を使っても大丈夫だろう、とかそういう会社の傾くような出来事を
行ってしまったりするわけです。これは、発覚する確率を過小に評価したという点と、
また、発覚した場合の損害の大きさを過小に評価したというところに愚かさがあるのです。
リスク管理上はどんなに発生確率が低くとも、甚大な被害が発生する場合は避けることが求められます。
システム開発におけるリスクはなんだろう?
さて、システム開発におけるリスクというのはなんでしょうか?
まず、最初に断っておくと、これは全て列挙しきれるような問題ではありません。
こういったものがある、と挙げることはできますが、網羅することは難しいという性質を持っています。
ですから、さまざまな議論の中で少しずつ候補を挙げていき、その評価をしていくしかないと考えています。
そういうわけで指摘などあれば遠慮なくお願いします。
とりあえず、議論の叩き台となるように、私が思いついたものを挙げてみました。
- 難易度によるリスク。開発過程で技術的難易度により開発が完了しない、もしくは納期が延びる可能性
- 仕様の不確定さによるリスク。仕様変更が発生する、もしくは使用の矛盾が発覚して修正を迫られる可能性
- バグの発生によるリスク。バグが発覚して修正を迫られる可能性
- 担当者が働けなくなるリスク。病気・怪我・その他の理由で労働力が失われる可能性
- 開発環境に発生する障害。ウィルスの蔓延や、リポジトリのサーバの不具合、停電など。
これらのリスクは「品質」とも関連してきます。品質の向上によりリスクの発生確率を軽減できますし、
発生した場合の損害も軽減することができます。
品質ってなんだろう?
さきほどは一口に品質といいましたが、品質にも色々な属性があります。
詳しくは参考リンク
でも見てもらったほうがよいでしょう。
ソフトウェアの品質についてはISO 9126-1で定義されています。簡単に列挙すると
となります。品質の属性は、あちらを立てるとこちらが立たずというところがあり、
また、品質向上にかかる費用も青天井といったところですから、現実的にはうまくバランスを取って
どこかで妥協しなくてはなりません。
というわけで、品質の向上というのも複雑なパラメータを伴う数値だけでは捕らえにくい事項なのですが、
これらの品質の良し悪しと、逸れに伴うリスクの高低が関連してくるのですからさらに厄介なのです。
といったところで、具体的な事項については次回以降で検討しましょう
投稿日時 : 2007年11月4日 21:02