私が作成したプログラムでバグが多発したため、今後同じことが無いようバグについて考えてみた。
バグ・修正コストの割合
バグの根本原因は主に上流工程での設計不備が原因
約50%が上流工程での不具合が原因で、
下流工程で上流工程の不具合が発見される場合が多いかと思います。
上流工程段階で不具合を減らすことができれば、プロジェクト全体のコストを下げることが出来ます。
修正コストの割合
要求仕様誤りを「1」とした場合の修正コスト
- 設計段階:5倍
- コーディング時:10倍
- テスト段階:20倍
- 納入辞典:200倍
となってしまいます。
参照: JASPIC SPIJapan2009 奈良隆正「ソフトウェア品費保証の方法論、技法、その変遷」
品質の重要性(顧客)
1件の不良が、業務を止めたり、不正な処理結果を出して、顧客の業務に大きな被害を与えてしまうことがある。
その結果、
- 顧客とエンドユーザの信頼関係が失われる
- 顧客とシステムを提供した側の信頼関係が失われる
⇒ 損害賠償請求もあり得る
品質の重要性(開発者)
品質を軽視した作業をすると、影響度の大きな不良を作りこんだり、不良が多発して、プロジェクトに大きな損害を与えてしまう
- テストが止まり、他の作業を待ち状態にする
- 対策のために応援者を投入する
- やり直し、作り直しになる
⇒ プロジェクトの費用がオーバー、工程遅延などが発生
QCDを意識する
Q(Quality)品質
C(Cost)費用
D(Delivery)納期
※上から順に「重要度が高い」
- 求める品質を実現できなければクライアントが離れやすくなる(Quality)
- ヒアリングが不十分で、後々の追加作業や修正作業が発生(Cost)
- 約束を守れない奴と思われる(Delivery)
まとめ
- 上流工程の段階で既に終わりまで決まっている。
- その時に良くても後で後悔する。
- プレッシャーに負けてその場しのぎで良しとしないこと。