2015年9月8日火曜日

とあるソフトウェア開発者と品質管理者の戦い

ソフトウェア開発は、製造業と違って品質データのバラつき大きく、定量的品質データ分析が適用しにくい業界です。
そのため、うまく品質管理ができていないことがよくあります。
以下は、私の体験をもとにしたフィクションです。



キャラクター


高見
品質管理担当者。
ソフトウェア開発の仕事をしているが、設計もプログラミングもできない。協力会社に発注してルールを守らせるのが主な仕事。



板垣
開発者。
意味がわからないルールを強制されるのが大嫌い。






戦い(その1)〜いい具合の指標値!?〜




板垣さん、お客様がコンサルタント会社の品質指標はダメだら考えてほしいって言われたので、考えてみました。
とりあえず、基本設計工程分だけみてもらえませんか
かなり、いい具合だと思いますよ。




<基本設計工程品質指標>
項目下限指標値上限
レビュー密度(人時/ページ)-20%0.3+20%
欠陥密度(件/ページ)-20%0.3+20%
※数値はフィクションです。

<選定方法>
・類似プロジェクト2つの平均値を入手。
・その2つの間をとって指標値を設定。
・そこから+-20%で、2プロジェクトの平均値が入るので、上下限は+-20%に設定。




(どこがいい具合!?)
いや、ダメでしょう。これじゃ品質分析できないですよ。
そもそも、この上下限に何%のデータが入る想定ですか?
上下限に入らなかった場合はどのようなアクションを想定していますか?





(うるせーやつだ)
いきなり、そんなに質問されても困りますね。
何%のデータが入るかとかデータ分析のことは指標値を決めた後に考えます




一度に色々言い過ぎましたね。順番にいきましょう。
上下限外はOK/NGの判断ではなく、現物・現場・現実の確認を効率的に実施する(対象絞り込み)ための道具という認識でよいですか。





(うるせーな、何でもいいよ)
そうですね。その認識です。






そうですよね。
ソフトウェア開発のデータはバラつきが大きいので。
ちなみに、同一仕様、同一プロセス、同一開発規約、同程度のスキルのチームで多数の開発を実施(12開発Gr)しても、品質データは大きくばらついたというデータもあるんですよ。





(しらねーよ)
へー、そうなんですか。勉強になります。






次に、この上下限に何%のデータが入るかです。
IPAが毎年品質データを出しているので、それをみてみましょう。
とりあえず、下限:第1四分位、指標値:中央値、上限:第3四分位として、ご提示の値と比較してみましょう





SEC BOOKS:ソフトウェア開発データ白書2014-2015
<基本設計工程品質指標>
※下限:第1四分位、指標値:中央値、上限:第3四分位
※カッコ書きは品質管理者の提示値
項目下限指標値上限
レビュー密度(人時/ページ)0.074
(0.24)
0.243
(0.30)
3.636
(0.36)
欠陥密度(件/ページ)0.099
(0.24)
0.250
(0.3)
0.514
(0.36)





IPAゆるいですねー。
ところで、第1四分位、第3四分位って何ですか?






例えば、データが100個あったときに、小さい方から25番目のデータが第1四分位、50番目が中央値、75番目が第3四分位です。
つまり、ゆるいとおっしゃっいましたが、統計的にはこの上下限に50%しかはいりません。






こんなにゆるい範囲でたったの半分ですか!?
IPAのデータって3581プロジェクト分も集めてるからデータがばらついてるんじゃないですか?




逆ですよ。
少なくとも、たった2つの標本からつくったデータよりは信頼できます。







わかりました。
他の方の意見も踏まえて、修正します。








戦い(その2)〜混ぜるな危険!〜




他の方の意見も踏まえて、次のように変えてみました。
今度はどうでしょうか。






<基本設計工程品質指標>
項目下限指標値上限
レビュー密度(人時/ページ)0.10.33.0
欠陥密度(件/ページ)0.10.30.5

<選定方法>
・品質管理者提示値、IPAの数値、お客様のコンサルタントの提示値が近い場合は、品質管理者提示値を採用。
・品質管理者提示値、IPAの数値、お客様のコンサルタントの提示値が離れている場合は、それらの平均値を採用。



最悪ですね。
統計的土台があってはじめて品質分析できます。
数値をいじって、統計的な意味付けをなくしてしまったら品質分析できませんよ。




(本当にうるさいやつだ、早く決めたいんだよ)
指標値と品質分析方法をリンクさせる意味がわかりません。






以前もいいましたが、「上下限外はOK/NGの判断ではなく、現物・現場・現実の確認を効率的に実施する(対象絞り込み)ための道具」です。
本当は全量をしっかり分析するのがベストですが、それが難しいので怪しいところを探すための言わばソナーなんです。




それはわかりました。







例えば、レビュー密度を横軸、欠陥密度を縦軸にとったとき、下限、上限を決めると、次のように9つの領域にわけられます。
レビュー密度と欠陥密度に関係がなく、下限が第1四分位、上限が第3四分位なら、平均的には、7の領域には1/4 * 1/4 = 1/16のデータが入ると考えられます









なるほど。
担当プロジェクトのデータをあてはめて、例えば7の領域に1/16より多くのデータがあるとおかしいということですね





おかしいかどうかはわかりません。
そのプロジェクトの特性上、そうなるのが自然かもしれませんから。
ですから、やはり、現物・現場・現実の確認が必要なんです。
データはあくまでソナーです。





難しいですね。






どういう意味で難しいと言っているのかわかりませんが、定量的品質分析は簡単ではありません。
例えば、どれくらい差があったら有意な差といえるのかは、本当は検定しなければわかりませんし





(あー、小難しくてめんどくさい)
で、話を戻して、何で私の指標値の案はダメなんですか?







数値を色々混ぜてしまったので、さっきの例で言えば「7の領域には平均的にはどのくらいのデータは入るはずか」というのがわからなくなってしまいます。
これはあくまで一例で他の分析も同様にできなくなってしまいます。





(よくわかんねーな、めんどくせー)
わかりました。
とにかく早く指標値を決めないとまずいので、板垣さんのご提案に従ってIPAのデータをそのまま採用しますよ。




別にIPAのデータを推しているわけじゃないですよ。
例えば、上下限は第1四分位、第3四分位でいいのかとか、対数変換しないと正規分布にならないとか、そういうことは考えてますか?
どのように分析するのかを考えないと指標値も決められないということをわかってほしいんです。




(めんどくせー)
わかりました。勉強します
とにかく、指標値は承認してください。






おしまい(続かない)


イラストは いらすとや の素材を使っています。