スクラムとは
スクラムは、複雑な問題に対する適応的なソリューションをチームで開発し、
価値を生み出すための軽量フレームワークです。完璧なソリューションを一度で実現することが難しいという認識から、不完全なソリューションを迅速に提供し、そこから学び、改善していくアプローチを採用しています。
スクラムの概要
スクラムは、以下の基本的な原則に基づいています。
1.
問題に対する解決策の列挙: 問題に対する様々な解決策を検討します。
2.
高優先度の策を一定期間で実行: 最も優先度の高い解決策を、短い期間(スプリント)でチームで実行します。
3.
結果の検査に基づく調整: 実行結果を検証し、必要に応じて改善を行います。
4.
上記プロセスの繰り返し: 上記のプロセスを反復することで、より良いソリューションへと進化させていきます。
スクラムの重要な点は、プロジェクト開発中に顧客の要求が変化する可能性があることを前提としていることです。予期せぬ変更に対して、計画に固執するのではなく、経験に基づいたアプローチで柔軟に対応します。
スクラムの背景
複雑な問題と適応型ソリューション
複雑な問題は、一度で完璧な解決策を見つけるのが難しいものです。そこで、適応型ソリューションというアプローチが有効になります。これは、最初は不完全なソリューションでも、段階的に学び、改善していくことで、最終的に
価値の高いものへと進化させるという考え方です。
ソリューション開発と目的
ソリューションは、プロダクトとも呼ばれます。プロダクトは、
価値を提供する手段であり、例えばカップラーメンは空腹という問題を解決し、満腹という
価値を提供します。スクラムは、このプロダクト開発の方法論であり、その目的は、プロダクトを通して
価値を生み出すことです。
軽量フレームワーク
スクラムは、厳密なプロセスではなく、軽量なフレームワークを提供します。開発の流れや重要なイベントを定義するにとどめ、具体的な手順はチームが独自に構築します。これにより、柔軟性を保ちながら、効率的な開発を進めることができます。
スクラムの歴史
1986年、
野中郁次郎と
竹内弘高が「The New New Product Development Game」という論文で、日本の組織における柔軟な開発手法をラグビーのスクラムに例え、「Scrum」として紹介しました。この論文に着想を得て、Jeff Sutherland、John Scumniotales、Jeff McKennaが、
1993年に反復型開発を取り入れた
オブジェクト指向[[プログラミング]]設計・分析ツールを構築し、
ソフトウェア開発手法としてのスクラムが始まりました。
スクラムは、産業界の様々な
ベストプラクティスに基づいており、2003年には『
アジャイル[[ソフトウェア開発]]スクラム』としてまとめられました。スクラムの定義と解説は、創設者であるKen SchwaberとJeff Sutherlandによる「The Scrum Guide」にまとめられています。
スクラムは、当初、適応型
ソフトウェア開発のために発明されましたが、現在では
ソフトウェアに限らず、あらゆる適応型ソリューションの開発に適用されています。
スクラムの背景理論
経験主義
スクラムは経験主義に基づいています。小さな実践を繰り返し、経験から学び、知識を得ることで、製品の将来をより正確に予測し、不確実性を制御するという考え方です。これは、綿密な計画で将来を見通そうとする態度とは対照的です。
3つの柱
スクラムには、経験主義を実践するための3つの柱があります。
1.
透明性 (Transparency): チーム全体で状況を正確に共有します。
2.
検査 (Inspection): 製品を頻繁に検査し、問題を早期に発見します。
3.
適応 (Adaptation): 検査結果に基づいて、製品やプロセスを修正します。
これらの柱によって、チームは経験を積み重ね、より良い製品を開発していくことができます。
スクラムチーム
スクラムチームは、スクラムの基本単位となる小さなチームです。各メンバーは高い専門性を持ちながら、一つの目標に向かって協力し、自律的に行動します。スクラムチームは、プロダクトゴールの達成に必要なすべての活動に責任を持ち、必要な権限を行使します。1チーム10人以下が推奨されています。
スクラムチームの役割
スクラムチームには、以下の3つの役割があります。
1.
プロダクトオーナー (Product Owner): 製品の責任者であり、顧客の要望をプロダクトバックログに反映させ、優先順位をつけます。
2.
スクラムマスター (Scrum Master): スクラムフレームワークが正しく適用されるようにサポートし、チーム内外の調整を行います。
3.
開発者 (Developer): スプリント期間中に、実際に製品を作成する役割を担います。
スクラムの方法論
スクラムは、以下の作成物とイベントを定義しています。これにより、チームと製品の透明性が向上し、定期的な検査と迅速な適応が可能になります。
作成物
プロダクトゴール (Product Goal): プロダクトの将来の状態を示す目標。評価可能で、チーム全員で共有されます。
プロダクトバックログ (Product Backlog): プロダクトの目指す姿とそのための要素の一覧。プロダクトゴールとプロダクトバックログアイテムから構成されます。
インクリメント (Increment): プロダクトゴールへの一歩となる具体的な成果物。完成の定義を満たした状態でリリース可能です。
完成の定義(Definition of Done): PBIの完成品が満たすべき品質基準
イベント
スプリント (Sprint): 実際に開発が行われる一定期間の区切り。通常1ヶ月以内。
スプリントプランニング (Sprint Planning): スプリントの開始時に、スプリントバックログを生成する。
デイリースクラム (Daily Scrum): スプリント期間中に毎日行う15分程度の会議。
スプリントレビュー (Sprint Review): スプリントの最後に、成果を検査し、改善点を見つける。
スプリントレトロスペクティブ (Sprint Retrospective): スプリントを振り返り、プロセスの改善点を議論する。
スプリントバックログ(Sprint Backlog): スプリントで達成したい成果、必要なPBI、手順計画からなる。
*
スプリントゴール(Sprint Goal): スプリントがプロダクト改良を通じて提供する
価値の目標
組み合わせ技法
スクラムはフレームワークであるため、様々な技法やプロセスと組み合わせて利用できます。例えば、テスト駆動開発、リファクタリング、
継続的インテグレーションなどを活用することで、より効率的な開発が可能です。
プロダクトゴール設計
スクラムにおいて、最も重要なのはプロダクトゴールです。プロダクトゴールは、プロダクトのビジョンから演繹され、提供する
価値を明確にする必要があります。
価値が不確かな場合は、MVPを作成し、
価値を探索します。プロダクトゴールを設定することで、
ステークホルダーとの議論を深めることができます。
まとめ
スクラムは、変化に強く、柔軟な開発を実現するための強力なフレームワークです。チームの自律性を促し、経験に基づいた改善を繰り返すことで、より良いプロダクトを生み出すことができます。しかし、スクラムは万能ではありません。組織の文化やプロジェクトの特性に合わせて、適切な方法で適用していく必要があります。