複数のスクラムチーム間の品質のばらつきを解消!
複数のスクラムチームで、1つの大きなプロダクトを開発している(したことがある)皆様!成果物の品質に関して、以下のような問題に悩んだことはありませんか?
たとえば・・・
- ① システム(機能)統合時に起きる不具合
チームごとに異なるテスト方法や品質基準が採用された状態で開発が行われており、各チームのシステム(機能)統合時に、予期しない不具合や作業遅延が発生する。 - ② バージョン管理方針の不一致
ブランチ戦略やマージ方針が統一されないまま開発を進めたことで、最新のコードや修正中のコードの場所がチームによって異なってしまい、バージョン管理が複雑化している。 - ③ チームごとに異なる開発環境
チームごとに異なる環境設定やデプロイ手順に沿って開発・テストが実施されることで、開発環境下での動作と統合環境での動作が一致しないことがある。
上記3つの例に心当たりがある方も多いのではないでしょうか。これらの問題は、チームごとに独自のプロセスや基準をもって開発を進めてしまい、プロジェクトとして品質への一貫性が損なわれることが原因で起こります。この問題を改善するために有効な手段の1つとして考えられるのが、「全チーム共通の完成の定義」を作成することです。
完成の定義とは?
完成の定義とは、「プロダクトが完成した」と判断するために、満たすべき品質基準や条件を記述したものです。完成の定義を設け、これを満たすように開発することで、チーム全員が「求められる品質を満たして完成させた」という共通の認識を持つことができます。
完成の定義の具体例
- チームインクリメント
✓ ストーリー用のブランチにすべてのコードが格納されている
✓ すべてのストーリーの全ユニットテストが成功している(回帰テストを含む)
✓ 必要なドキュメントの作成・更新が完了している
✓ すべてのストーリーが受け入れ基準を満たしている
✓ バグフィックスが完了している - システムインクリメント
✓ システムインクリメントブランチに各チームのインクリメントがマージされている
✓ 全体の統合テストが完了している
✓ 負荷テスト・パフォーマンステストが完了している
✓ システム全体のセキュリティチェックが完了している
✓ バグフィックスが完了している
✓ ユーザー受け入れテストが完了している - リリース
✓ 本番と同等の環境下での最終テストが成功している
✓ 運用手順が確認・用意されている
✓ バックアップとリカバリプランが準備されている
✓ ユーザーへの移行支援が準備されている
全チーム共通の完成の定義を導入するメリット
完成の定義を導入することで得られる複数のメリットのうち、一部を紹介します。
- ① 品質の向上
「完成した」と判断するために必要な品質基準や条件を明確に定めるため、すべてのストーリーは一貫した品質基準を満たすことになります。また、全チーム共通の一貫した基準として完成の定義を定めることで、誰がどの作業を行っても、成果物の品質を一定に保ちやすくなります。これにより、プロジェクト全体の整合性が向上します。 - ② 透明性の向上
完成させるために必要なタスクや条件が可視化され、意思決定がしやすくなります。 - ③ 改善活動の促進
完成の定義は定期的に見直す必要があります。この見直しのサイクルがプロセス改善の機会となり、継続的改善につながります。
このように、複数のスクラムチームで1つの大きなプロダクトを開発する際に直面する品質の問題は、「全チーム共通の完成の定義」を取り入れることで改善することが可能です。
これは「SAFe®」という大規模アジャイルの手法の中でも推奨されています。
画像引用元: SAFe STUDIO(外部サイト)
SAFe®では他にも、複数のチームで1つのプロダクトを開発する際のノウハウが紹介されています。大規模アジャイルの手法に興味がある方はぜひ、「SAFe®入門セミナー」をチェックしてみてください!
SAFe®入門セミナーのご紹介
社内のたくさんの方に短い時間でSAFe®を知ってもらいたい、組織に広めたい方向けの入門セミナーです。
関連サービス
-
スクラム入門
スクラムの基礎となる考え方や用語を短時間で効率的に学習します。参加者でスクラムチームを組み、身近な題材を用いたスクラムによる開発を体験することで、スクラム(アジャイル開発)に携わる際に必要となるマインドセットの重要性を実感します。
-
アジャイル開発コンサルティング
ソフトウェア開発はビジネス環境の変化に追従できていますか?企業全体のアジャイルトランスフォーメーションからソフトウェア開発チームへのスクラム導入まで幅広くご支援し、ビジネスに貢献する開発組織やチームの変革・育成をお手伝いします。