Trac、Redmine、Trello、Jiraといろんなプロジェクト管理ツール(バグトラッキングツール)を使ってきました。
ここ最近ではGitHubを使っていて、Issueを使って開発を行っています。
タスクをチケットやIssueといった形で管理していますが、いつも長いあいだ閉じられないチケットが発生していました。
こういったチケット、タスクについては意図的に閉じたり、閉じることができる仕組みにしていかないと残り続けることになります。
忘れ去られて残っているチケット、タスクを確認するだけでも大変な作業になることがあるので、その対処について考えてみました。
ケース1: 完了の定義が曖昧
タスクのチケットではタスクを完了させる事が目的となります。
ですがそのチケットを見ただけではどうすれば完了かが不明確な場合があります。
特にチケットを作成する人とタスクを処理する人が異なる場合、お互いが思っている「ここがゴールだよね」と思っているところが違っているとチケットが消化されない確率が上がります。
対処としては「完了(done)の定義」を明記することです。(アジャイル開発手法の一つであるスクラム開発では「完成(done)の定義」1として取り扱っています。)
ただし「完了(done)」を何にするのか、というところは難しい議論になります。「○○が動作すること」で通じる場合もあれば「○○をクリックして次のページに遷移して、○○が表示されて、○○は赤くなっていること。それをIE8(!)、FF、Chrome63で動くことの確認。」かもしれないです。
「doneの定義」で検索すると色々と出てくるので参考にしておくと良いです。
https://www.google.com/search?q=done%E3%81%AE%E5%AE%9A%E7%BE%A9
ケース2: 情報が少なすぎる
チケットについての情報が少なすぎる場合です。
例えば「ボタンの色を変更する」というタスクがあった場合に、どのボタンなのか、何色にするのか、という情報が無い場合です。
チケットを作成した時にはチャットや会話の流れで明らかになっていたとしても、チケットのみを見た場合に何をすれば良いのかが特定できない場合、後から見返した際に手を付けられなくなり、放置される原因になります。
ただし情報を細かく書くことはそれだけ時間を使うことにもつながります。「軽微な修正の1つのチケットを書くのに1日掛かりました」みたいなケースも見てきたので、いかに短時間で正確に、かつ必要十分な情報を伝えるか、ということがポイントになります。
この「いかに短時間で正確に、かつ必要十分な情報」については画像のキャプチャが非常に有効です。
「百聞は一見にしかず」という言葉にあるとおり、いろんな手段で良い情報を正確に伝えていきましょう。
ケース3: 複数人がアサインされている
チケットの担当者が複数人の場合です。
複数人が携わるチケットの場合には安易に複数人をアサインしがちですが、その反面、責任が曖昧になり、チケットが放置される原因になります。
放置された原因を聞き取りをしてみると「○○さんの作業待ちだった」ですとか「○○さんがやるものだと思った」といった内容で止まりがちです。
できる限り1人で完結できるに分解し、複数人が関係する場合には複数のタスクに分割することを検討しましょう。
ケース4: 不要なチケットを閉じる(保管しておく)仕組みがない
残念ながら放置されたチケットは定期的に閉じるか、目に付かないところに置くようにします。
そのため、定期的に閉じるためのルール作りも重要です。具体的には「3ヶ月間動きが無いチケットは無条件に閉じる」といった手立てが有効です。
ソフトウェア開発では色々と環境が変わっていく事が多いです。長い間放置されてしまったチケットでは、依存しているサービスに変更があったり、顧客の要求が変わったり、といった環境的要因から手を付けられなくなることがあります。そういったチケットは積極的に閉じてしまった方が良いです。
「やっぱり必要だった」場合には再度オープンするか、新規にチケットを立て直す方が良いです。(個人的には新規に立て直しを行い、refs #123 などで過去のチケットに関連を付けておきます)
ケース5: 期間が長い
チケットの期間が長い場合です。見るからに1ヶ月以上掛かりそうなチケットの場合、閉じられなくなる可能性が高いです。
スクラム開発では開発期間を「スプリント」(1週間〜1ヶ月)という単位に区切って開発を行いますが、スプリントをまたぐ見込みのタスクは危険です。
スプリントをまたぎそうなほど大きいタスクの場合には、スプリントの範囲に収まるようにタスクを分解する方が良いです。
まとめ
まとめです。下記のようなチケットには注意をしましょう。
- 完了の定義が曖昧
- 情報が少なすぎる
- 複数人がアサインされている
- 不要なチケットを閉じる(保管しておく)仕組みがない
- 期間が長い
良いソフトウェア開発ライフを!
-
スクラムガイド2017 p15 ↩