今日の雑記

生きることでいっぱいいっぱい

バグDBというかバグ管理システムの運用について

名称によってはまあ現場によっていろいろあると思いますが、
Wikipedia 「バグ管理システム」 http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%B0%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
概ねこんなもんと思ってください。
ゲームでもここ数年導入される動きがあって、まあそれはそれで正しいというか良い傾向であると思われます。
大体これは開発も後期というか、ゲームで言えば「マスター提出前のデバッグ期間」から運用されることが常だと思われるのですが、これも会社とかプロジェクトによると思われます。
ただ、そのフェーズで運用を開始したとして、実は開発中から発覚しているバグ(んで直してないだけ)とか、開発中にちょっとテストしてれば見つけられるバグだったりとかで、そういうのがこのフェーズでドバーって出るパターン、多いんですよね。何気に。
そこで今回、ボクは「開発開始時からバグ管理システムを運用しよう」ということを考えてみました。「提唱」ではないです。まだボクが実践してないので。
基本は以下の4つを軸に運用します。

  1. バグが見つかったらとにかくバグDBに報告。
  2. 開発者は簡単に直せそうだったら暇を見て修正&バグDBに報告。
  3. 開発中のデバッグ報告等は開発者を含め全員で行う。
  4. (直すかどうか別にして)開発者は一日の初め(終りでも良い)に報告されたバグを見る義務を負わせる。

これは(最後の項目以外)開発後期に行われることとなんら変わりないですね。つまり「開発の最初からやろう」ということです。
ただ、開発中のバグ報告は、以下の点に注意しなければなりません。

  1. 当然開発中なので「この仕様が入ってません」的な報告はしない。
  2. 報告したバグが修正されないからといって開発者を急かさない。

流石に解りますよね?
この形で運用することによるメリットを考えてみました。以下のような感じです。

  1. 小さな問題は時を経てやがて大きな問題になりがちです。それを初期の段階から発覚させるのは決して無駄なことではありません。
  2. よく起こりがちな「この問題が何時からあったのか?」的な議論も、開発中からの記録を残しておくことにより、すばやく見つけ出せる可能性が高いです。
  3. たとえば「クライアント(や会社の上層部)に見せる」タイミングがある仕事の場合、マネージャ(ディレクター等)が「見せる前にここ直して欲しい」とかの情報が整理しやすい。
  4. 問題点(まあつまりバグ)が多い場合、開発者に対してなんらかのプレッシャーを早い段階で抱かせることができるかもしれない(まあコレはあくまで希望的観測ですが...)。

勿論、「開発者側」からの反論異論などは容易に想像できます。

  1. 開発中にそんな細かいバグなんて対処していられない。こっちは納期がすぐそこなんだ。
  2. そんなの後でまとめて取ってしまえばいいんだよ。それにこっちはそんなバグ把握している。
  3. だって、別のマネージャ(とか営業)から「あの機能を優先して欲しい」って言われててさあ...。

まあ他にもいろいろあるでしょうが、今は取りあえずこの辺で。
大体この手の話に反論してくる方々に共通して見え隠れするのは、

  • 今はバグとってる場合じゃない

ということを主張したいだけの意見なんですよね。
今回の「バグ管理システムの早期運用」はそういう話ではないんです。
簡単にまとめると「バグは発覚したときに、開発者本人が把握しておきましょう(そして、できれば駆除しましょう)。」という、コレだけの話なんです。
プログラマやってる方なら解ると思うのですが、数ヶ月前、数週間前、下手したら数日前、もっと下手したら数時間前自分が組んだソースコードだって「他人の(振りをした)コード」になりがちです。忙しければ忙しいほどその度合いは増すことでしょう。
そうならない為にも、「報告があったらまず見て、把握する。」事が重要なんだと思います。
直近ではボクも試す機会はないですが、次の機会に恵まれたら、個人レベルで試してみようかな?と思います。
というわけでなんか「良い BTS(BugTrackingSystem)ないかしら...?」と模索中です。良いのあったら情報ください。