バグ追跡システムのライフサイクルを再考するオープンソースソフトウェアの育て方(2/3 ページ)

» 2009年09月04日 08時00分 公開
[Karl Fogel, ]

 別のバリエーションとして、1.のすぐ後で問題が重複しているとして処理済みにされる場合があります。重複した問題は、プロジェクトが既に認識している問題を誰かがまた報告すると発生します。重複した状態は保留中の問題で発生するとは限りません。解決した後で再び報告される(この状態をリグレッションと呼びます)こともあります。こういう場合は、重複の元となった問題を再度保留中の状態にして、重複した問題は処理済みにするのが普通は望ましいでしょう。バグ追跡システムは、問題を再現する情報ははじめに報告された問題で見られるように(逆も同様)、問題同士の関連を追跡しているはずです。

 開発者が問題を処理済みにする3つ目のバリエーションは、問題を解決したと思い込んで処理済みにするパターンです。これは結局、問題を報告した人がそれを拒んで再度保留中にする結果になります。これは開発者が単にバグを再現するのに必要な環境にアクセスできないか、問題を再現する手順に正確に従ってテストをしなかったために発生します。

 これらのバリエーションのほかにも、バグ追跡システムによって細かい部分が変わる場合はありますが、基本的なパターンは同じです。問題のライフサイクルそのものもオープンソースソフトウェアに特有のものではありませんが、オープンソースプロジェクトのバグ追跡システムの使い方に影響を与えています。

 1.が暗に示すとおり、バグ追跡システムはメーリングリストやWebページと同様プロジェクトの顔です。誰でも問題を報告し、調べることができますし、現在保留中とされている問題の一覧を見ることができます。よって、報告されている問題の進ちょくを何人の人が知りたがっているのかが、開発者には分からないということになります。

 問題が解決される割合は開発者コミュニティーの規模やスキルに左右されますが、プロジェクトは少なくとも問題が報告されたらすぐにそれを認識しようとすべきです。たとえ問題が解決されずにしばらく残り続けても、開発者が返答すると、問題を報告した人は引き続き参加したいと考えます。なぜなら、自分がやったことが認められたと感じるからです(問題を報告することは、例えば電子メールを送ること以上に労力が掛かることを思い出してください)。それ以上に、問題をいったん開発者が見れば、報告された問題のほかの事例に注意を払ったり、ほかの開発者と話し合える、などの意味で、プロジェクトが問題を認識したことになります。

 適切なタイミングで問題に応答するには、次の2つが必要です。

  • バグ追跡システムをメーリングリストと接続しなければいけません。これは、問題を報告することを含めた、問題の状態を変更するあらゆる行動が、メールで投稿されるようにするためです。このメーリングリストは通常使う開発用のものとは違うのが普通です。なぜなら、開発者全員が自動送信されるバグ報告メールを受け取りたいとは限らないからです。しかし、(コミットメールと同様に)Reply-toヘッダは開発用のメーリングリストのアドレスに設定しておきましょう。
  • 問題を報告するときの記入フォームは、報告する人の電子メールアドレスの欄にフォーカスを当てておくべきです。しかし、匿名で報告したいと思う人もいるので、電子メールアドレスを必須にすべきではありません。匿名の重要性については、この章の後半にある匿名性とプロジェクト参加項を参照してください。

議論の場としてメーリングリストを使う

 バグ追跡システムがディスカッションフォーラムにならないようにしましょう。バグ追跡システムに人間が顔を出し続けることは大事ですが、それがリアルタイムに議論するのに適しているわけではありません。バグ追跡システムは、起こった事実やほかの議論に対する参照、メーリングリストで起きた議論をまとめるアーカイバと考えるようにしましょう。

 こうした区別をするのは2つの理由があります。1つ目は、バグ追跡システムがメーリングリストに比べて(ついでにいうと、リアルタイムに会話ができるチャットシステムと比べても)使いにくいからです。これはバグ追跡システムのインタフェース設計が悪いからではなく、単にメーリングリストやチャットシステムが、連続していない状態、つまり自由に流れていく議論を取り込めるように設計されているからです。

 2つ目は、ある議論に参加している人が、バグ追跡システムを見ているとは限らないからです。よい問題管理のやり方(章8.ボランティアの管理の、技術的な作業だけでなく管理作業もみんなで項を参照してください)は、開発者全員に起こっている問題全部を追いかけさせるのではなく、適切な人の注意を引くようにすることです。章6.コミュニケーションバグ追跡システムでは議論しない項では、適切なフォーラム以外に偶然議論が波及しないようにする方法や、バグ追跡システムに議論を持ち込まないようにする方法を見ていきます。

 バグ追跡システムによっては、メーリングリストをモニタし、既知の問題にかんする電子メールをすべて自動的に記録するものがあります。通常、こうしたシステムはメールの件名の行にある問題の番号を、特別な文字列として認識することでこれを行います。開発者たちは、バグ追跡システムの注意を引くために、電子メールにこうした文字列を含めることができるようになります。バグ追跡システムに電子メール全体を記録させてもいいですし、(よりよいのは)通常のメーリングリストのアーカイブにあるメールへのリンクを記録させてもよいでしょう。どちらの方法でも、これはとても役に立つ機能です。あなたが使っているバグ追跡システムにこの機能があるなら、それを有効にして人々が利用するように知らせておきましょう。

content on this article is licensed under a Creative Commons License.

注目のテーマ