アジャイルチームビルディング
学習の目的
この単元を完了すると、次のことができるようになります。
- タックマンのグループ進化の 4 フェーズを挙げる。
- 優れたアジャイルチームの要件を要約する。
- アジャイルチームが部門を横断して機能する方法を説明する。
チームワークで冒険に挑む
アジャイルについて明確なビジョンを持っている人は、すぐれたソフトウェアをデリバリするにはチームワークが不可欠であり、優れたアジャイルチームは「私」ではなく「私たち」を具現化したものだと考えています。意欲的なチームメイトと一緒に本当に重要なものを構築するという冒険を共有することほど、やりがいのあるものはありません。
完璧なアジャイルチームに共通する価値は共有されていますが、そのチーム作りに決まったやり方はありません。スクラムを実践する人もいれば、Kanban を使用する人もいます。アジャイル純粋主義者は、同じ場所で作業するチームを好みますが、ビジネスの現実として、アジャイルチームが地理的に分散せざるを得ない場合もあります。ほとんどのアジャイルチームは必要なスキルをすべて備えていますが、特定の作業のためにスペシャリストの招聘が必要になることもあります。では、自分のチームが優れたチームへの道を歩んでいるか、どうすればわかるでしょうか? 続けましょう。
強固な基盤の上に築く
チームができたら、重要なのは、アジャイルチームは個人のように、時間をかけて成長するものだと覚えておくことです。アジャイルの理論家はよく、タックマンのグループ進化の 4 フェーズに言及します。アジャイルチームは、進化の過程で 4 つの重要なフェーズを通過します。
タックマンのグループ進化の 4 フェーズ
フェーズ | このフェーズのグループの特性 |
---|---|
1.Forming (形成) |
マネージャから高度な助言が必要、個々の役割が不明確、プロセスがうまく確立されていない |
2.Storming (混乱) |
チームの意思決定がどう下されるかを理解、目的は明確だがチーム内の人間関係があいまい |
3.Norming (統一) |
チーム内の人間関係がよく理解されている、明確な目標へのコミットメント、プロセスの最適化が開始 |
4.Performing (機能) |
チームがうまく機能、戦略的であることに焦点、ほとんど監督せずにチームがうまく機能する |
チームが Performing フェーズに達すると、開発が実際にうまく進み始めます。メンバーは互いを信頼し、互いの強みを理解し、その理解を活かしてソフトウェアの構築方法を最適化します。
アジャイルチームのメンバーを変えずにおくには何らかの組織的な統制が必要ですが、チームを (もちろん妥当な範囲で) 守ることは有益です。変化 (新人社員、従業員の退職など) が発生したら、チームはその変化を吸収するために Forming フェーズに戻ります。
高パフォーマンスのアジャイルチームは信頼の上に築かれています。コードレビュー、タスクブランチング、継続的なインテグレーション、一定のリリース間隔などの健全なエンジニアリングプラクティスは、優れたチームを築くうえで非常に重要です。優れたアジャイルチームには他に 2 本の柱があります。継続的なメンタリングと共有スキルセットです。チームで作業することの大きな利点の 1 つは、同僚が互いから学び、互いにメンタリングすることです。メンタリングとは、経験の浅いメンバーが熟練メンバーから学ぶための活動だけではありません。チームの全員が互いから学ぶことで、チーム全体としての影響が、個々のメンバーによる影響を積み上げるよりも大きくなります。一方で、共有スキルセットは、異質な作業に取り組むチームの力を解き放ちます。エンジニアとして、新しいスキルを学ぶことは常に重要です。それによって自分が組織にとってより価値のある存在になり、互いの作業をサポートする能力が向上するからです。また、誰かがクリティカルパスになることに対する防御にもなり、全員の精神的な負担をなくすことができます。
プロのヒント: アジャイルチームはエンジニアだけのものではありません。より大規模なソフトウェア組織では、マーケティング、HR、財務など、会社のさまざまな部門でアジャイルチームが結成されます。
アジャイルチームによる部門を横断したコラボレーション方法
今日のソフトウェアチームには、開発者とテスターに加え、製品マネージャ、設計者、マーケティング担当者、運用部門も参加します。そうすることで、アジャイルチームは 3 つの製品フェーズ (開発、販売、運用) に集中しやすくなります。
各製品フェーズは、トライアッドを構成する 3 つのチーム (理想的には各チームに 5 ~ 7 人のメンバー) によってサポートされます。各トライアッドでは、アジャイルアプローチを取り、製品の発展に伴い、チームは継続的に各フェーズに取り組み、製品と市場について知識を深めていきます。以下は、各トライアッドの内訳と、拡大ソフトウェアチーム内の各チームの担当、内容、場所、理由を示します。
トライアッド | 担当 | 焦点 |
---|---|---|
開発 |
製品管理 |
市場、対象となる顧客のペルソナ、適切な製品設計原則を理解する |
設計 |
価値提案、製品の目標、最小限の実用製品を定義する |
|
開発 |
健全で持続可能なエンジニアリングプラクティスを使用して開発する |
|
販売 |
製品管理 |
製品の競合環境と市場の進化を理解する |
設計 |
各顧客セグメントに対する製品の価値提案を強調するメッセージを作成する |
|
マーケティング |
Web ページ、発表メール、ブログ、動画など、製品の発売をサポートする資料を作成する |
|
運用 |
製品管理 |
一定間隔で顧客にソフトウェアをリリースする |
開発 |
顧客の問題に対応する |
|
サポートと運用 |
顧客のフィードバックを将来の製品開発へのインプットとして Make トライアッド (開発、PM、設計) につなぐ |
チームがどのトライアッドでサポートしていても、アジャイルアプローチによってチームはデリバリを迅速化し、楽しむことができます。次は、アジャイルプロセスの詳細とアジャイルセレモニーについて説明します。
リソース