前回は品質が良い、というのは、品質にバラツキがないことだよー、ということを書きました。
ここではソフトウェアにおける品質のバラツキとは何かを書いていきたいと思います。
ソフトウェアの品質のバラツキとは
工業製品において、品質のバラツキは生産された製品の一個一個の質の違いでした(それだけじゃないかもしれないけど)。
ソフトウェアは一つ作った後には、お店で売ってあるパッケージ製品なんかだと、同じマスターCDを元に製品のCD-ROMを作ったりするので、製品一個一個に違いが出ることは普通ありません。
じゃあバラツキが出るのはどこかというと、表からみると製品毎や製品の各機能毎で質の違いが出てきます。
ソフトウェア開発というのは、一人が一つの製品を最初から最後まで作り上げたり、機能毎に分担して複数の人が作成することがあります。
このように、いろんな人が関わって作り上げていくと、どうなるかというと、作った人のスキルによって各機能の品質にバラツキが出てきます。
ベテランの人が作った機能は、セキュリティー的にもしっかりしていて、どんなデータを入力してもフリーズしたりしないのに、慣れていない人間が作った機能は、セキュリティーも弱く、ちょっと変わったデータを入れるだけでソフトが強制終了してしまう、なんてことになります。
また、ある製品のある機能の部分に関しては詳しいベテランでも、まったく別の経験がない部分の修正を依頼すると、いくらベテランといえどもミスをしてしまうこともあります。
ところが、開発者としての経験が少なくてもずっとその機能に関わっている人は、ベテラン以上の品質を維持することができたりします。
つまり、ソフトウェアの品質のバラツキというのは、作成に関わる個人の経験とか、持っているスキルとか、知識とかによって生じてしまうことがあるわけです。
他にも要因はいろいろあるとは思いますが・・・。
バラツキをなくすためには
バラツキをなくす = 誰がやっても同じ品質のモノができあがる、と考えると、いろいろとイメージがふくらむと思います。
たとえば、プログラムの表記方法を統一するためにコーディング規約を作って開発者全員それに従う、とか、フレームワークを導入するというのも手かもしれません。
フレームワークは、ある一定のルールに従ってプログラム(または設定)すれば、フレームワークがいろんな処理を行ってくれるという仕組みです。
フレームワークが面倒な処理をやってくれる代わりに、開発者はある程度決まり切った内容を記述するだけですむようになるので、柔軟さは少し失われますが、誰が作っても同じ質を維持しやすいといえます。
なんらかのチェック機構を設けることも必要でしょう。
たとえば、コードレビューで、各人が作ったプログラムをチェックして是正したり、ペアプログラミングで開発者同士の経験とスキルを同じレベルに引き上げるのもいいですね。
<
p>あとは、テストとバグを埋め込まないことです。
このあたりは、何をもって良しとするのか、その「根拠」とか「証拠」みたいなのが重要になってくると思います。
かっこよく言うと、エビデンスですな(笑)
このあたりが、ベテランと経験の浅い人、または品質に意識がある人無い人で大きく変わってくるところだと思います。
本当は、テストとバグに関しても、ベテランでも素人で差がないというのが、品質にバラツキがないということなんだけどね・・・。まぁ、実際問題、現状はこのあたりは個人にかなり依存してしまうところだと思う
次回はこのあたりの地味な話を書いてみようかと思います。
ていうか、今回のエントリーはこれでまとまったのか?!
最後の最後で尻つぼみな感じがするのは、結局、このバラツキをいまいち解消できてなかったりするからなのでしょう(涙)
日経BP出版センター (1994/02)
売り上げランキング: 28874
ソフトウェアテストの基本となる2冊の本のうちの1冊
もっとも引用される本の一つ