2007-09-08-02-罪とバグ - project-enigma

2007-09-08-02-罪とバグ

>> Site top >> weblog >> 月別アーカイブ >> 2007年09月のlog >> 2007-09-08-02-罪とバグ

最終更新日付:2013/12/31 07:38:18


罪とバグ

2007 年 09 月 08 日

「 バグ指標値 」 という言葉をご存知だろうか。単体試験や結合試験、総合試験といった各試験フェーズにおいて、プログラム 1 キロステップあたりに存在すると想定されるバグの件数である。ソフトウェアを開発している企業ではたいていこういう指標値を持っていて、開発プロジェクトでそれを振り回す人がいるわけだ。

最初にそれに出くわしたとき、陰郎は大きな勘違い...というか、善意の解釈をしてしまった。ふむふむ、これはつまり統計的に過去のバグ密度をデータとして蓄積し、未来の開発プロジェクトに(たとえばスケジュールとか予算とかに)フィードバックできるようにするためのものだな、と。これから立ち向かうプロジェクトの想定規模にこの指標値を当てはめれば、想定されるバグ件数がある程度の精度で見積もれるし、それをもってスケジュールや人的資源の配置も計画できる。時系列に沿ってその時々のバグ密度を並べれば、開発部隊のいわゆる 「 質 」 を追跡できるし、なかなか殊勝な心構えじゃないか、というわけだ。ところが。

そんなわけはなかったのだ。

少なくとも陰郎は、このバグ指標値がプロジェクトのスケジュールに影響を与えるところを唯の一度も目にすることは無かったし、自分達の仕事の結果によってこの指標値が修正されることもなかった。不思議なことに、なんとも固定的な数字だったのだ。では、何のためにこの数字が使用されたか。驚くべきことに、この数値の使い方は、そもそもこの指標値に対する以下のような発想を基にしたものだった。

作成されるプログラムにはこの指標値に該当する数のバグがあるはずだ。なければならない。

そう、つまり 『 想定された件数のバグを試験で摘出することを要求する 』 ために使用されるのだ。試験で発見されたバグの件数が少ないと、「 質のいいコードを書いた 」と誉める代わりに 「 ちゃんと試験してるのか 」 と疑われる。では、逆に指標値を上回るバグを発見したら 「 たくさんバグを見つけてくれた 」 といって誉めてくれるだろうか。そんなわけもない。 「 指標値以上のバグの存在は低品質なコードを意味する 」 といってやっぱり叱責されるのだ。

なんだか笑い話のようだが、陰郎が昔参加したプロジェクトではこんなのがまかり通っていたのである。穏便に済ませるには、バグ検出数が指標値の範囲内に収まるようにするしかない。当然、誠実にやっている限り、運を天に任せるしかなくなってしまうのだ。

そして、それは陰郎の身にも災厄として降りかかってきた。とある小さなプロジェクトで陰郎が一人で書いたコードは、検出されたバグ件数が指標値をはるかに下回っていたのだ。当然のごとく、会ったことも無い誰かさんから物言いがつき、陰郎と陰郎の書いたコードは 「 理由付け 」 を迫られることになった。

担当 : 「 バグ件数が少なすぎるって指摘がきちゃったんですよ。 」

陰郎 : 「 だって俺が書いたんだよ? そんなにバグ出るわけないじゃん。 」

担当 : 「 でもそれじゃ納得しないですよ。なにか理由出せないですか? 」

陰郎 : 「 ... 」

結局、理由として 「 開発作業中からローカルで小刻みなテストを繰り返していたため、試験フェーズでは指標値を下回るバグ検出数となった 」 という話で通ったと記憶している。これは事実だが、理由の全てではない。しかし、問題の誰かさんに理解できる理由は他になかったのだ。

この一件があまりにも阿呆らしく感じられてしまったため、陰郎はその次の仕事で本来ならやってはならないことをやった。すなわち、指標値どおりのバグが試験フェーズで摘出されるよう、自らバグを仕込んだのだ。ただ、発注元の担当者(前述の会話の相手)にだけは話しをしておいた。結果、試験でのバグ検出数はご注文どおり。それまでで一番波風の立たないプロジェクトとなった。

これを茶番だといって糾弾するのも結構だが、それをいうなら 「 N 個のバグがあるはずだ。なければならない。 」 という発想とそれを振り回す阿呆の踊りだって十分に茶番だろう。所詮は 「 ルールに従ってさえいれば、問題が起こってもルールのせいで自分のせいじゃない 」 程度にしか考えていない連中である。こっちは実際にモノを作って動かさねばならないのだ。だいたい重要なのは検出して直したバグの数ではなく、残っている(かもしれない)バグの数だろう。最初に指標値を持ち出してバグの数を固定して、あとはその数だけ検出すれば合格、というのはどう考えてもおかしい。無論、「 バグはあといくつある? 」 という質問に簡単に答える方法はないが、だからこそ 「 実用に耐える 」 だけの品質を確保するような試験を構え、その内容や結果を皆でレビューするのではないのか?

実際のところ、何があのようなバグ指標値の倒錯を生み出すのか、陰郎には今でも判らない。これからも判るとは思えない。しかし、それが何であろうと、「 誠実さ 」 でないことだけは確かだ。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.