AgiloはScrum管理用のソフトウェアでTracのプラグインとして提供されている。 ライセンスはApacheライセンセンスだ。
なお、このプラグインはTrac自体をプラットフォームとして利用して、上から多くの機能を被せる形になっているので、他のプラグインとの共存は無理なものが一杯ありそうだ(チケットに対する考え方が通常のTracは単一階層なのだが、これは三階層になっている。またフィールドの拡張が独自に行われているため)。また、このプラグインはプロジェクト開始当初から適用しないと意味がなく、運用も難しそうなので注意。
Trac0.11とPython2.4
※テスト環境は日本語版のTrac 0.11.4.ja1。
trac-admin /path/to/project upgradeそれで以下のように表示されていればOK。
Creating Product Backlog… Creating Sprint Backlog… Upgrade done.
まだあまりよく分かっていないのだが適当に書いておく。
(1)チームの設定
管理者画面のAgiloのメニューから「Teams」を選択して、チームを登録しておく。チームは複数設定することができ、チーム内に複数のメンバーを所属させることができる。チームメンバーには1週間のプロジェクトへの実参加可能時間を予め設定することが出来る。
(2)スプリントの設定
管理者画面のAgiloのメニューから「Sprints」を選択して、開発スプリントの期間設定を行っておく。設定はスプリント名称と、そのスプリントがどのマイルストンに属しているか、開始日、終了日または開始日からの期間の設定、そのスプリントを担当するチームの設定を行えば良い。通常プロジェクト開始時に最低限、1スプリントの長さとスプリントの回数くらいは決まっているはずなので、それを設定しておく。
(3)種別の設定
管理者画面のAgiloのメニューから「Types」を選択すると、現在登録されている種別の一覧が表示される。これの意味は、作成するタイプによって入力するフィールドが異なる、ということである。例えば「requirement」であれば、「要求事項」なので、BVPやどのマイルストーンで構築するか、といった項目を設定するし、「Story」であれば、どのスプリントでの実装か、ストーリーポイント、重要度を設定する。 この項目は標準からいじる必要はなさそうだ。
(4)画面UIの設定
管理者画面のAgiloのメニューから「General」を選択すると、画面のUIと時間の単位の設定が出来る。 特に変える必要はないけど、Tracの標準GUIが気に入っている場合は、「Enable Agilo Advanced UI?」をNoに設定する。
(5)一覧表示用のフィールド設定とバックログの設定
特に何もしなくて良い。
まず、「Requirement」を作成する。ここでいうRequirementは構築するシステムの要求事項で、Agileでいうところのフィーチャーに近い。 Requirementは、左メニューの「Create A New Requirement」から作成する。 作成の際は、そのフィーチャーがどの程度ビジネス的な価値を持つのか、といった点も記入する。 その意味でこのRequirementは、プロダクトオーナーが利用することを想定されていると言える。
次に、「UserStory」を作成する。UserStoryは受け入れ試験のストーリーに近い形で記述する。 UserStoryを記述すると、左メニューの「Product Backlog」に一覧として表示される。なお、UserStory自体に対応スプリントを割り当てていれば、「SprintBacklog」の方に一覧表示されるようだ。
「UserStory」をさらに細分化したタスクに落とすことが出来るので、必要に応じてTaskを作成する。 スプリントバックログの画面では、ストーリーに紐付くタスクをまとめて、ストーリー全体の所要時間として管理したりできる。
あとは個々のタスクを見積もりを作成しながら入れていき、実際かかった時間を記録していくと良い。 画面でバーンダウンチャートが自動で表示されるので、リソース不足とか、終了見込みとかが分かるようになっている。 なお、個々のストーリーの所要時間の見積もりは、当たり前だが、スプリント開始当初にやらないと、バーンダウンチャートがグダグダになってしまい、ベロシティも分かりにくくなってしまう。見積もりは後から変えるのはあっても良いが、とりあえずスプリント開始当初に時間をとってタスクをある程度ばらしておくこと。
以下はバーンダウンのサンプル。適当にサーバの日付をいじりながら投入したデータなので、いびつな形をしているが、イメージはつかめるかと思う。
このプラグインは、Scrumとは何ぞや、ってのをちゃんと知らないと使いこなせないような感じだが、それが大丈夫ならアジャイルプロジェクトの大きな助けになりそうだ。