アジャイルなソフトウェア開発プロジェクトでは役割分担がはっきりせず、
プロジェクトの成功に寄与することなら何でもやる。
アジャイルプロジェクトでは開発工程が他の工程と独立して行われることはない。
チームが一丸となて成果責任を果たすことに気を配らなければならない。
品質保証はチーム全体で行わないといけない。
チームをアジャイルにするためには
1. 同じ仕事場で働く(物理的に無理な場合はSkypeなどを利用すること)
2. 積極的に深く関わる顧客が存在しないといけない
顧客とは、デモを見て、質問をし、開発チームにフィードバックを行う存在のこと。
3. 2週間のスパンで問題の発生とその解決を顧客に逐一報告する習慣をつけること。
顧客がそういう関係を拒んでいるのなら、まずは信頼関係の構築から始める。
アジャイルチームは自己組織化しないといけない
自己組織化とは、自らのエゴを押し出しすぎないように気をつけながら、
チームで力を合わせるということである。
そしてチームビルディングをうまくやるために望ましいのは、
役割を人に合わせるのではなくて、人に合わせて役割分担を決めるということである。
自己組織化に必要なもの
成果責任と権限委譲
お客様の前でデモを行うことで、チームに成果責任を意識させられる。
職能横断型のチームの作ることを意識する。
役割分担に気をかけるより、誰がその仕事をやっているのかを意識する。
そのため、ゼネラリストであることが望ましい。
顧客をじかに開発へ巻き込めば巻き込むほど、プロダクトはよくなっていく」
具体的な役割について
1. アナリスト
誰が何をどうやって開発をすすめるかを考える
2. プログラマ
- テストをたくさん書く
- プロジェクトの進行中にもアーキテクチャの設計と改善に積極的に取り組む
- コードベースをいつでもリリースできるようにする。必要ならばデプロイできるようにする
3. テスター
ビルドできるだけでは不十分だということを認識している
コードが書かれたらそれがきちんと動くかどうかすぐにテストする
4. プロジェクトマネージャー
プロジェクトを成功させる唯一の方法は、開発チームを成功させることだと心得る
継続的な計画を立てる
立てた計画を見直し、必要ならばプロジェクトの方向性を調整する
彼がやるべきことは環境を整えること。
5. そのほか
例えばUXデザイナがいないなら、誰かがそれを代わりにやらないといけない。
アジャイル開発に必要な人材
- ゼネラリスト
- 曖昧な状況に抵抗がないひと
- 我を張らないチームプレイヤー
重要なのは特定の作業に固執しない度量を持つ人が重要である。