いざ!Agile 2011 Conferenceへ
今年は、アジャイルマニフェストの誕生からちょうど10年という節目の年。900を超えるサブミッションから選ばれた200以上のセッションに2000人の参加者が詰めかける過去最大級のイベントとなっています。
アジャイル開発のカラの中をのぞいてみよう
初日は、『アジャイルサムライ』(オーム社)の著者でもあるJonathan Rasmusson氏のセッション「Agile In a Nutshell」に参加しました。「Agile In a Nutshell」のセッションの概要には、こう書かれています。
もし、あなたのキャリアのほとんどが、ウォーターフォールを使ったデリバリであるならば、要件の変化、適用性の高い計画づくり、タイムボックスを使った開発…であるアジャイルは、恐ろしいものに感じるかもしれない。 この初心者向けセッショントークでは、アジャイル開発とは何か?からはじめ、アジャイルプロジェクトでの作業や、アジャイルになるための3ステップなど、アジャイル開発をシンプルに説明していく。
セッションは、「アジャイルブートキャンプ」というステージのオープニングという位置づけで、Robert Martin氏の「The Origins of Agile」と合わせて楽しめる内容となっています。Rasmusson氏は、アジャイル開発の本質を、丁寧に、幅広く、わかりやすく説明し、最後には彼自身の経験から得られた「大事な3つのステップ」が共有されました。初心者向けのセッションと書かれていますが、アジャイル開発を始めたばかりの方だけでなく、実践者やアジャイル以外の開発手法を採用されている方にも、役立つ発表内容でした。
ここからは、セッションで共有された内容から、特に印象に残った部分を紹介します。まずはじめに、ソフトウェア開発で避けて通れない「計画づくり」を整理しましょう。
あなたはアジャイルな計画づくりを知っているはずだ
アジャイルでは、とてもシンプルな方法を使い、現実的な考え方をもとに計画を組み立てます。たくさんの作業があったとしても、ほとんどの場合は、それを全て実施するための十分な時間がないのが実情です。よって、たくさんあるタスクの中から、「やるべきこと」や「やれる量」を洗い出す必要が出てきます。
大抵の場合、以下のような流れで作業を洗い出すのではないでしょうか?
- やることリストを作る
- それぞれのタスクのボリューム(時間)を推測する
- タスクの優先順位を決める
ここまでできると、「やるべきこと」「やる量」「やる順番」が明確になります。アジャイル開発では、それぞれをファンシーな名前で呼びます。
- やることリスト → マスターストーリーリスト
- タスク → ユーザーストーリー
- 推測 → 予想
まずは、マスターストーリーリストから計画を作りましょう。マスターストーリーリストができていれば、計画を単純に組み立てることができます。まずは、計画を組み立てるパーツを用意するために、タイムボックス(1週間や2週間といった一定の期間のこと)を設定します。優先度の高いユーザーストーリーから順に完了させる前提で考えた場合に、タイムボックス内でチームがどれくらいタスクをこなせるか、「やれる量」を見える化します。タイムボックスの単位は「イテレーション」や「スプリント」と呼びます。
上の図を例にあげると、チームは4つぐらいのユーザーストーリーを消化できるようです。仮に12個のユーザーストーリーがあるならば、恐らく3回のイテレーションで計画は完了するであろうと見通しをたてることができます。
もし、仮に「完了させなければならない日」が存在するのであれば、その日にフォーカスして、ユーザーストーリーがどこまで完了するかを推測・確認することができます。資金に限りがあった場合も同じです。期限が短いといった制約がある場合は、マスターストーリーリストから「やれる範囲」を、洗い出すことも容易になります。
この方法は、アジャイル開発に特化した考え方ではありません。Rasmusson氏は、誰もがこの方法に気がついていると指摘します。さて、より計画を安定させるために、次は「できる量」を安定させる方法を確認してみましょう。