欠陥の検出→分析→予防

プロセス改善関連の書籍として、シリーズとなっているものですが、「ソフトウェアの欠陥予防」というのが出版されたので、購入してみました。


ソフトウェアの欠陥予防 ― テストより確実な品質改善法

ソフトウェアの欠陥予防 ― テストより確実な品質改善法


この書籍では、ソフトウェアの品質向上と欠陥除去に対する取り組みとして、以下のように3つのレベルに分けて、そのテクニックを紹介しています。

  • Lv1 検出
    • 検出可能なあらゆる欠陥を検出し、修正するまでテストすること。存在する欠陥を多くの特定することは可能であるが、他でも起こり得る類似の欠陥を予防することはほとんどできない。
  • Lv2 分析
    • 既に検出された欠陥を分析し、欠陥が混入した原因分析を行う。時間と専門知識を要するが、その結果によって改善がなされた場合は、大きな利益を生み出す可能性がある。
  • Lv3 予防
    • 潜在的な欠陥を先手を打って特定し、取り除く。欠陥とその根本原因を取り除くことは、将来の開発工数の効果性を改善する。


これらのことは、私も最近良く考えることと合致していたのですが、最近のソフトウェア開発では、検出して(修正して)いるだけでは、大抵は手遅れになります。


書籍の内容とは少し離れますが、世の中の多くのソフトウェア開発プロジェクトは、短納期・低予算などの外的要因、スキル不足等の内的要因により、テストを十分に実施する時間を確保できないまま、デスマーチ化することが多いように思います。


要件定義・設計のFIXが遅れ、コーディングも短期間で行うために欠陥が多く混入し、その結果、テストは、期間が圧迫されたり、繰り返しテストが多くなったりします。そして、最後には、昼夜2交代制の状況になっているようなことも、現場で多く目にしてきました。


分析・予防となると、大抵の場合、「組織全体で」とか「次のプロジェクトで」とかなりがちなのですが、なかなか過去の失敗は活かされません。
それ故、プロジェクト単体で、如何に問題を早期に「検出」し、「分析」を効率的に行い、失敗する前に「予防」するかが、今、求められていることだと思います。