バグが発覚したら…
プログラムを作ってテストをしていると、必ずと言っていいほど想定外の挙動(バグ)が発覚します。
実際の開発現場ではバグをその場で直してはいおしまい、ということは基本的にありません*1。
どのプロジェクトであっても、バグは何らかの形で管理されます。
バグが発覚したら、現象と再現性、可能なら再現手順を追跡可能な単票にまとめる。
単票はRedmineのチケットかも知れないし、Excelシートかも知れないし、ただの紙かも知れない。
重要なのは、起票者がまともな説明能力を有していることだ。意味不明な文章だったら起票元に差し戻す。
— たーせる (@tercel_s) 2015, 3月 7
バグを単票で管理しておくと、開発者は「今どんな問題が起きていて、誰が対処しているのか」を把握することができるようになります。正しく運用されれば、バグがそのまま放置される危険性を大幅に減らすこともできます。
もう少し広い視点で見ると、バグの発見頻度・既知バグの件数・バグの収束状況などが、PMOや顧客に対して品質を担保する際の根拠として使われることもあります*2。
Excel管理は絶対におすすめしない
ちなみにバグ票をExcelで運用するのは絶対におすすめしない。
ほぼ間違いなく管理不能になる。
仕組み自体に無理があるからだ。
— たーせる (@tercel_s) 2015, 3月 7
Excelによるバグ管理の破綻が発覚する顕著なタイミングは、リリース後に品質問題が露呈するなどして「バグの発生から収束までの状況を密にモニタリングしなければならなくなったとき」である。
「当然Excelにそんな機能は無いけど人力でがんばればなんとかなる仕事」が増えると人は死ぬ。
— たーせる (@tercel_s) 2015, 3月 7
Excelは単なるファイルなので、どこかの誰かが勝手に消すこともできるし、そうなると品管がバグ集計をする際に単票と台帳が不整合を起こして泣く羽目になる。
結局、開発中のシステム品質よりもバグ票の管理がダメダメでは本末転倒だ。
— たーせる (@tercel_s) 2015, 3月 7
溜まりに溜まったExcel製のバグ票*3を集計して「数字が合わない」「いつの時点の集計値だ……」とか言いながら、メンバーに対して「Excel単票を削除していませんか?」とか「台帳と数が合わないんですけど」とか問い合わせている悪い夢を何度か見ました*4。
そもそもバグ取りのような流動性の高い事象をExcelで管理してうまく回し切った事例を僕は知りません。集計のしやすさというメリット以上に、管理情報が不整合を起こしやすいデメリットの方が勝っているせいです。
そうこうしている間にも、新たなバグ票がやってきたりクローズの報告がきたり事態は秒速で変化するわけです。対応能力の限界なんてあっという間に超えます。これでは収束が見えるはずなどありません。
システムを作っていく過程でバグが大量に発生するのはある意味当たり前で、それをいかに効率よく消化できるかがプロジェクトを加速させるポイントなのに、開発者が自分の責任以外のところで仕事を止められるのは不幸だと感じるわけです。
一部門がパンクするとプロジェクト自体が失速する
開発現場がどれだけ生産効率を上げても、マネジメント層の動きが遅いとそこがボトルネックになって全体的な進捗は止まって見える。
ボトルネックの手前で“仕掛かり在庫”が滞留するせいで、いつまで経っても“完成品”が出来上がってこないせいだ。
— たーせる (@tercel_s) 2015, 3月 7
上記ツイートの“仕掛かり在庫”とは、クローズされていないバグ票を意味しています。
クリティカルチェーンマネジメント。元は生産管理の話で、全生産工程のうち、在庫が滞留するボトルネックを重点的に改善すれば全体最適に繋がるという考え方だ。
例えば品管がバグ票の流れを止めているような状況なら、品管に対してテコ入れすべきであって開発現場のケツを叩いている場合ではない。
— たーせる (@tercel_s) 2015, 3月 7
まとめ
思いつくまま推敲なしにつぶやいているうちに、話がいろいろ蛇行してしまいました。結局なにが言いたかったかというと……
- バグ管理そのものは大事である
- Excelによるバグ管理には無理がある
- 無理を通そうとするとプロジェクト全体が停滞する
- 炎上してみんな燃え死ぬ
開発者は「品管がのろまなせいだ」と考えているし、品管は「開発者がバグをいっぱい作りこんだせいだ」と考えている。
……という夢をみた、ということです。
こんな経験、ありませんか?
おまけ
僕『Red… mine…』
品管『えっえっ何て?』
僕『Redmine! フー! Redmine! フー! 品質管理もRedmine』
品管『ちょっと待ってちょっと待ってお兄さん! Redmineって何ですの? 導入しろと言われましても意味わからんからできませーん』
— たーせる (@tercel_s) 2015, 3月 7