ブヨ (うわー!)、Bugzilla (少しうーん)、Trac、Jira、そして今では FogBugz など、数多くの問題追跡システムを使用してきました。私は何よりも Trac が好きですが、それはおそらく、私が FogBugz の管理者ではなく、現在の化身で悲しいことにひどく悪用されているためです。
ワークフローを正しく設定することは非常に重要です。奇妙なことに、バグ トラッカーに何を入れるか、そこに入れるものにどのようにラベルを付けるかを決めるところから始まります。顧客を獲得するとすぐに、すべての開発チームが次の 3 種類の問題を実際に追跡します。
実際の顧客によって指摘された問題 (ライブ バグ)。
現在開発中の新しいソフトウェアの問題 (開発バグ)。
今後やりたいこと(特徴)。
もちろん、これら 3 つのクラスの問題には、それぞれ独自の優先順位があります。ボタンの単なるスペルミスである「ライブバグ」は、公式に発表されたリリースをブロックしたり、他の開発やテストなどを妨げたりする「開発バグ」よりもはるかに重要ではない可能性があります.
問題の重大度は、副作用がどれほど恐ろしいものであるかを表します。私の経験では、これは次のように要約されます。
プログラムが何かを台無しにしています。データ、顧客への不正請求、間違った薬の調剤。これは最悪です。私はかつて、ソフトウェア コマンドがサービスマンの真ん中で油圧アームを引っ込めるシステムに取り組んだことがあります。これは最悪です。
プログラムがクラッシュしており、回避策はありませんが、その間は (ダウンする以外に) 何も台無しにはなりません。ダウンタイムによって何かが台無しになった場合は、重大度 #1 を使用します。
プログラムは正しく動作していませんが、実際に使用できる特定の回避策があります。
プログラムは迷惑な方法で誤動作していますが、結果には影響しません。
プログラムは、明確に定義された方法で改善する必要があります: 使いやすく、新しい機能を実装し、より速く実行するなど.
これらのシステムでよく発生するもう 1 つの問題は、「役割」の概念です。問題追跡システムに適用されるように、役割は要約すると、誰が実行を許可されているかということになります。問題を作成できるのは誰ですか? 誰がステータスを変更できるか、誰がステータスを別のユーザーに再割り当てできるか、誰がステータスを閉じることができるかなど。
私が緊密に協力してきた小規模から中規模のチームでは、この一般的な一連のルールがうまく機能しています。
誰でも問題を作成できます。作成者は、課題の作成時に任意の (またはほとんどの) 受信者に課題を割り当てることができます。デフォルトの受信者は問題トリアージ チームです。開発者は、この方法でコードの作業中に見つけたバグをメモし、そのバグを自分自身に割り当てて、コードを変更する理由を追跡できます。
トリアージ チームが集まり (ここで間隔を指定)、問題を評価して割り当てます。トリアージ チームは特に重複レポートを探します。その場合、新しい問題は既存の問題チェーンに「ロールアップ」されます。再現のために QA に割り当てられた、フィールドからの再現されていない問題。お客様からの重大度の高い問題の場合。
バグをクローズできるのは、バグの作成者だけです。QA または CSR によって開始されたバグ レポートは、開発者がクローズすることはできません。はい、これは、CS と開発チームが同意しないバグが未解決のままであることを意味します。人々が同意していないのに、問題トラッカーが問題を解決済みとして報告するのはなぜですか? 嘘のデジタル リポジトリが必要な場合は、C-SPAN があります。
一部のチームは、ある部門から別の部門への問題の移動をマネージャーに予約したい場合があります。他のチームは、チームメンバーが問題を別のチームに移動 (または戻る) することを許可する場合があります。これは経営陣の疑念、または単に誰が作業時間を割り当てることが許可されているかという問題に帰結する可能性があります。
トリアージプロセスが鍵です。トリアージ チームは基本的に、組織内で誰が何に取り組み、次に何に取り組むかを決定する人です。チームが定期的にミーティングを行うことで、本当に重要なことを見逃したり、不注意によって平凡なことを忘れたりしないようにすることができます。Triage キューに何もない場合、会議 (concall、netmeeting、実装が何であれ) は、会議のリーダーによってキャンセルされる可能性があります。
スクラムを使用している場合、トリアージ チームはおそらくスクラム マスターであり、問題が現在のスプリントに取り込まれるかどうかを決定し、バックログに入る場合は適切に優先順位を割り当てます。