アジャイル開発とは
アジャイル開発とは、カスタマーに短いサイクルで継続的にソフトウェアを届けるための方法論のこと。 ソフトウェア開発マネジメントにおける価値観・ルール・プログラミング手法・チーム参加時の心構えなどをまとめている。
短い開発サイクル(イテレーション)を繰り返しながらプロダクトをつくる
アジャイル開発では、1〜3週間単位で具体的な成果を出す。短い期間でやってみて、結果を確認してまたプランを立てたり変更してまた繰り返す。
「分析 → 設計 → 実装 → テスト」のサイクルを何周もする。 このサイクルをイテレーションと呼ぶ。
ユーザーが問題なく使えることが確実になったらイテレーションは完成となる。その後は次のイテレーションを始める。
ベロシティ
1回のイテレーションで完了させられるストーリー(実現したい機能)の量をベロシティと呼ぶ。Velocity = 速度。
1回の期間で片付けられる仕事量を把握することで、他の仕事にかかる時間や労力を予測することができる。計画全体を見通せるようになる。
アジャイルなソフトウェア開発では役割分担ははっきり分かれていない
プロジェクトの成功に寄与することが目的なので、自分ができることはなんでもする。自分が貢献できると思ったら、なんでもやっていい。
役割に人を合わせるのではなく、人に役割をあわせる。その人が得意なことをやってもらう。 エンジニアでも元マーケティングや元営業の人もいたりするので、活かせる知識があればどんどん使えばいい。
メンバー構成
顧客を巻き込むことが重要。デモを見に来て、質問に答えてフィードバックをくれるカスタマーをチームに入れる。問題領域の専門家であるほうがいい。
判断権限を持つ顧客をチームに加えることで、継続的なフィードバックを得ることができる。開発スピードを早めることができる。
アジャイル開発チームメンバーになるときの心構え
以下のことを理解しておく。(覚悟しておく)
- 品質に責任を持つのはチーム
- 品質管理部門はなく、すべてのチームメンバーが品質に責任がある
- 指示待ち人間はいらない。自分から問題を解決する
- 自分のことを知り、言語化しておく
- 自分は何が得意なのか
- 自分はどうやって貢献するつもりなのか
- 自分が大切に思う価値はなにか
- チームメンバーは自分にどんな成果を期待していると思うか
マスターストーリーリスト
プロジェクトでやるべきタスクをまとめたものを、マスターストーリーリストと呼ぶ。 スクラムでは「プロダクトバックログ」と呼ばれている。
プロジェクト開始前にするべきこと「インセプションデッキ」
プロジェクトを成功させるには、メンバー全員がプロジェクトに関する共通理解をもつ必要がある。
共通理解を持つためのツールがインセプションデッキと呼ばれる、いくつかの課題を集めたもの。プロジェクトに関係するすべての人が共同で作成する。(書籍の重要な部分になると思うのでネタバレしないように詳細は書かない)
インセプションデッキは仕事場に貼り出しておくのが理想的。 改変すべきタイミングがきたら柔軟に変更する。
インセプションデッキを作るメリット
- プロジェクトメンバー全員が共有することで、一致団結する
- プロジェクトを進める上で発生する問題を、解決する方針になる
- プロジェクトに見通しを立てて、成功確率を上げる
思ったこと
プロジェクトを始める前から、アジャイルのような共通した価値観や、プロジェクトの進め方をメンバー間で共有しておくのは素晴らしいことだと思った。
ソフトウェア開発ではないが、僕はチームで商品開発(自社+他社の混合)をしたことがある。そのとき、チームビルディングのむずかしさを経験した。
自分が自社側のリーダーポジションにいた。効率的とは思えない方法でプロジェクトが進められていたので、変更を提案した。
変更は意外と聞き入れてくれたのだが、継続できない問題が発生した。価値観やルールの共有を徹底していなかったことが大きな要因だと思う。
ここでアジャイルのような価値観をはじめからメンバーが根底に持っていたら、プロジェクトが効率的に進みそうだと思った。