【プロデューサーの本棚】アジャイルサムライ-達人開発者への道-(2011)
Jonathan Rasmusson(西村 直人、角谷 信太郎監訳、, 近藤 修平、角掛 拓未訳)「アジャイルサムライ-達人開発者への道-」、オーム社(2011)
アジャイル開発(マネジメント)の本は多いが、これだけ、マネジメントと開発手法のバランスのとれた本は珍しい。また、説明の突っ込み方も技術書特有のポイントを絞って詳細に説明するというのではなく、全体像が把握でき、かつ、個々の説明も実用レベルという絶妙のバランスで書かれている。この点も含めて、アジャイル開発の取り組むための最初の一冊としては、文句なしにお勧めの本。
◆アジャイルが有効であるための3つの前提と開発に求められること
まず、この本は3つの前提を置いている。
1.プロジェクトの開始時点にすべての要求を集めることはできない
2.集めたところで、要求はどれも必ずといってよいほど変わる
3.やるべきことはいつだって、与えられた時間と資金よりも多い
の3つ。このような前提で開発方法を考えたときに重要なことは、価値ある成果を毎週(定期的に)届けることで、そのためには必要なことが6つある。
(1)大きな問題は小さくする
(2)本当に大事なことに集中して、それ以外のことは忘れる
(3)ちゃんと動くソフトウェアを届ける
(4)フィードバックを求める
(5)必要とあらば進路を変える
(6)成果責任を果たす
この6つを開発手法として体系化したのが、スクラムなどのアジャイル開発手法である。
◆アジャイルチーム
アジャイルはチームがすべてである。アジャイルチームは、「何を作るかを決める」顧客と「どうやって作るかを決める」開発チームが組んで、「アジャイルチーム」を作る。アジャイルな顧客は、業務に深く通じていて、ソフトウェアが何をするのか、どんな見た目になるのか、どんな具合に動くのかを気にかけ、開発チームに確固たる指針を与え、質問に答え、フォードバックしてくれる存在である。
開発チームには、アナリスト、プログラマ、テスター、プロジェクトマネジャー、UXデザイナーなどのメンバーがいる。それぞれがアジャイルな流儀をよく理解していることが必要だ。メンバーを探すには、
・ゼネラリスト
・あいまいな状況に抵抗のない人
・我を張らないチームプレイヤー
といった性格のメンバーを探すことが望ましい。
◆インセプションデッキ
アジャイルなプロジェクトでは、「期待」のマネジメントをすることが極めて重要である。そのためのツールとしてインセプションデッキがよい。インセプションデッキは
・我々はなぜここにいるのか
・エレベータピッチを作る
・パッケージデザインを作る
・やらないことリストを作る
・「ご近所さん」を探せ(ステークホルダ分析)
・解決案を描く
・夜も眠れなくなる問題はなんだろう?(リスク分析)
・期間を見極める
・何を諦めるのかをはっきりさせる
・何にどれだけ必要なのか
の10個の課題からなる。この課題に答えることによって、期待が明確になり、期待に応えることができる。
◆要求の収集
アジャイルな計画を作るには、まず、ユーザストーリーを集めることをお奨めする。ユーザストーリーは、顧客がソフトウェアで実現したいと思っているフューチャーを簡潔に記述したものだ。ユーザストーリーを有効なものにするために、押さえておくべきポイントは
・顧客にとって何かしらの価値が書かれれている
・エンドツーエンドになっている
・独立している
・交渉の余地がある
・テストできる
・小さい、見積もれる
などである。ストーリーを集めるには、ストーリー収集ワークショップを開催するのがよい。
◆見積もり
2番目のポイントは見積もりである。アジャイルの見積もりの目的はプロジェクトのターゲットがコントロールによって達成可能かどうかを判断することである。そのためには、見積もり手法には
・今後の計画を立てられる
・見積もりは当てずっぽうだという前提を踏まえている
・ソフトウェアの複雑さを認めている
の3つの特性が求められる。そのために
・ストーリーそれぞれを相互に相対的なサイズで見積もる
・ポイントをもとにして進捗を追跡する
という方針で計画を立てるのがよい。具体的な見積もり方法としては、チームが納得して見積もりができるものが好ましく、
・三角測量
・ランニングポーカー
などの手法を使うとよいだろう。
◆アジャイルな計画作り
アジャイルな計画づくりは、以下のような手順で進めていく。
(1)マスターストーリー(ユーザーストーリーの一覧)を作成する
(2)プロジェクト規模を見極める
(3)優先順位をつける
(4)チームのベロシティを見積もる
(5)期日を仮決めする
その上で、バーンダウンチャートなどの方法で実績を管理しながら、イテレーションの中でベロシティを調整していく。
◆プロジェクトの運用
アジャイルプロジェクトの運用で不可欠なことは
・期待をマネジメントすること
・フィードバックを得ること
だ。イテレーションの中では、4つのミーティングを行いこれを実現していく。
・今回のイテレーションの作業に備えるミーティング
・今回のイテレーションのフィードバックを得るミーティング
・次回のイテレーションの計画を立てるミーティング
・次回のイテレーションで改善できる余地を探すミーティング
イテレーションの可視化にはカンバンの考え方が有効である。具体的には
・リリースボード(リリース状況を示す)
・ストーリーボード(イテレーションのユーザストーリーの状況を示す)
の2つを作れば、チームでも上位組織へのプレゼンにも使える。
コメント