deha magazine / アジャイル開発 / 【今さら聞けない!】スクラム開発の体制とは?開発チームの役割とあるべき姿
【今さら聞けない!】スクラム開発の体制とは?開発チームの役割とあるべき姿
2020/07/16
スクラム開発では、チームや個人に役割を設けワンチームとなり開発を行います。
この記事では、そんなスクラム開発の体制を徹底解説していきます。
オフショア開発にスクラム開発を取り入れたいと思っている方に必見の記事となっています。
これを読めば
- スクラム開発の開発チームとは何か?
- スクラム開発のチームの役割は何か?
の疑問が解決できますよ。
開発チームとは
開発チームは、各スプリントの終了時にリリース判断可能な「完成」したプロダクトインクリメントを届けることのできる専門家で構成されています。
「完成」したインクリメントは、スプリントレビューに必要になります。インクリメントを作成できるのは、開発チームのメンバーだけになります。
開発チームは、自分たちの作業を構成・管理するために、組織から体制と権限を与えられています。その相乗効果によって、開発チーム全体の効率と効果が最適化されます。
その開発チームのうち、開発以外の細かな調整はスクラムマスターやプロダクトオーナーが行います。
開発チームの作業内容
スクラムの活動では「プロダクトインクリメント」を生み出すために必要な作業を直接実行します。
スプリント中、開発チームは製品のプロダクトバックログアイテムの設計、開発、テスト、および製品のプロダクトインクリメントへの統合を実行します。
これを行うために、開発チームの計画立て、管理、および相互通信の手段を自己組織で決定し、すべてのスプリントに完了したプロダクトインクリメントを最後に転送する必要があります。
ここからはその詳しい方法について解説していきます。
スプリントの計画を立てる
開発チームは、各スプリントの最初の計画に参加し、スクラムマスターの指定を通じてプロダクトオーナーと協力し、スプリントの目標を設定します。
スプリント目標の設定以降、チームは優先順位を再調整し、その目標を達成するためのタスクを実行計画を立てます。
開発チームで必要な進捗確認
スプリントの実施中は、各スプリントの目標を達成するために、開発チームの役割の進捗を交換する毎日のスクラムに参加し、残りのジョブの完成計画を修正する必要があります。
チームメンバーの誰かがこのイベントに参加できない場合、チーム全体で情報が不足している可能性があり、全体像の一部が不足している恐れがあります。それにつれて、各スプリント、あるいはプロジェクトの全体の目標が達成できない恐れもあります。
グルーミングプロダクトバックログ(製品開発カテゴリを明確化)
各スプリントでは、開発チームは次のスプリントに向けて作業の準備をするために、プロダクトオーナーとの相談の時間の必要です。 相談のほとんどは製品の残りの要求を明確化、追加するためです。
そのため、各要求の情報を作成、修正、追加します。優先度に基づいてアイテムを見積もり、再配置します。
各スプリントの開発チームは、スプリント全体の時間の最大10%をこのタスクの実行に費やしています。
スプリントレビューとスプリントレトロスペクティブ
各スプリントの最後に、開発チームはスプリントレビュー(製品レビュー)およびスプリントレトロスペクティブ(ワークフローの改善)という、2つの検査と適応イベントに参加します。
スプリントのレビューでは、開発チーム、スクラムマスター、プロダクトオーナー、およびその他の利害関係者は、プロダクトオーナーから招待され、チームがスプリントで完了したプロダクトインクリメントについての試行、評価、フィードバックを提供します。
スプリントレトロスペクティブでは、スクラムマスターの調整の下で、開発チームがプロダクトオーナーとともに、チームでのコラボレーション方法および作業プロセスの検査と適応について商談し、プロダクトインクリメントをより早く、より多い価値を転送できるよう、または製品の質をより高めるよう、良い技術を探します。
開発チームの規模
開発チームの最適な規模は、柔軟性を維持できるほど小さく、スプリント中に重要な作業を完了するのに十分な大きさです。
メンバーが3人未満の場合、開発チームはやり取りが少なくなり、生産性が低下します。
そのような小さな開発チームは、スプリント中にスキルの制限を経験する可能性があり、開発チームは最終製品の段階的な仕上げを提供できなくなる可能性があります。
メンバーが9人を超えると、調整が必要になります。 大規模な開発チームは非常に多くの複雑化を引き起こし、実験プロセスの有用性を低下させます。
プロダクトオーナーとスクラムマスターの役割は、スプリントバックログの作業を行っていない限り、開発チームには含まれません。
開発チームのあるべき姿は「自己組織化」と「連結機能を持つチーム」
自己組織化
自己組織化とは、チームが生産プロセスを導き、決定を下す能力と権限を持っていることを意味します。
つまり、チームがツール、テクニック、および仕事を完了するための方法の選択肢、全てを制御できることも意味します。
同時に、チームメンバーの関与と責任は、コマンド・コントロールモデルで編成されているチームよりもはるかに高くなります。
スクラムの開発チームの自己組織的な性質は、以下のような点です。
- チームに管理職はいない。チーム管理を担当する個人は一人もいない。
- 開発チームは、各スプリントを作成するプロダクトバックログの各項目の数を自己的に選択して決定する。
- 開発チームは、各項目のワークロードを自己推定する。
- 開発チームは、自身の作業の進捗状況を監視する。
- すべてのジョブは、個人に割り当てられることなく、チーム集団によって「所有」される。したがって、結果が良いか悪いかにかかわらず、その責任は一人にではなく、チーム全体に与える。
連結機能を持つチーム
連結機能を持つチームとは、外部からの支援なしに、ジョブ全体を完了し、各スプリントの終わりに転送可能なプロダクトインクリメントを生み出すために必要なすべてのスキルを完全に備えていることを意味します。
これは、それぞれのメンバーがすべてのスキルをもっている必要があるという意味ではなく、特定の数のスキルしか持っていないが、お互いを補完し、チームが必要なすべてのスキルを持つという意味です。
連結機能を持つことで、チームが動作し、完全な生産ユニットとなり、生産性と製品品質を向上させることができます。これにより、チームは外部から待つことなく、迅速に意思決定を行えます。
開発チームでは、各メンバーが、テスター、プログラマー、設計の専門家、データベースの専門家などの特定の職種を持っていないません。すべて「開発者」と呼びます。
これにより、集団的所有権、集団的責任、およびメンバー間の平等が強化されます。
連結機能を持つチームが行うことで、チームの学習も促進させることができます。
各メンバーが異なる背景から来ており、1つまたはいくつかの特定のスキルの強みを持っている可能性がありますが、コラボレーションする中で、これらのメンバーは新しいスキルを他のメンバーから学び、それぞれのメンバーは追加のスキルを形成できるます。
これは、メンバーが役割に関係なく、メンバーがお互いにサポートできるようにするために重要であります。
まとめ
スクラム開発の体制と開発チームの役割を紹介していきました。
従来の開発モデルとは異なり、スクラム開発チームは、製品の機能開発をするための計画立てや自己決定をより多く実行します。
プロダクトオーナーと協力して開発している製品をより理解できるよう連携していくことが大切でしたね。
dehaソリューションズでは創業時から現在まで4年以上スクラムを適用し、様々なシチュエーションでスクラムの価値を実感してきました。何かご相談などがありましたら、気軽に問合せして下さい!
参考減: