2001/09/20
品質の話
一応私もプログラミングで金をもらっている人間なので、品質管理というのはある程度行っていますが、まれに顧客側から品質に関する提案を受けることもあります。
それはいまどきステップ数あたりの潜在障害件数だったり、障害瞬間最大発生率だったり、ファンクションポイントと難易度重みづけによるエラーコントロールだったり、まちまちですが、大抵は数字で示されるものです。ところが、最近ちょっと面白い指標の仕事をもらいました。それは顧客がソースレベルで提示したアプリケーションと同レベルの品質でお願い、というものでした。これは数字にできません。どうしようかと思いつつ、とりあえずソースをもらってコンパイルしてみました。出るは出るは、ワーニングの嵐。実に300個を越えるワーニングです。とはいえ、コンパイルは通るので、まともに動くことは動くのだろうと、ちょっと動かしてみたのですが、なんとか動いているみたいでした。一安心して、メモリリークのチェックをしたところ、freeの文字がソースコード上に一つもありませんでした。そう、このプログラム、メモリを確保しても一切解放していないのです。おいおい、と思いつつももう少し試してみると、さらに凄いことが判明しました。このプログラムは入力ファイルと出力ファイルを指定すると入力ファイルを加工して出力ファイルを作成するというものなのですが、ファイルをオープンして一切クローズしていないんです。fopenの文字があってもfcloseの文字がない、というとても素晴らしいソースでした。さすがにこの品質のソースを書けと言われても、プロとして恥ずかしくて書けません。問題点を全て列記し、ワーニングの原因を全て潰したソースを送り返したところ、そのコードは他社が作ったもので、品質範囲ではないと言いだしました。そこまで言うなら顧客で作ったソースをもらおうじゃないですか。多少品質は向上しましたよ。ファイルはクローズしてましたから。ただし、メモリリークの嵐は変わりませんでした。
困りました。自分のコードの品質、どのレベルで出せばいいのやら。


 

Topへ