| シリーズの一部 |
| ソフトウェア開発 |
|---|

Scrumは、ソフトウェア開発やその他の業界 で一般的に使用されているアジャイルチーム コラボレーション フレームワークです。
スクラムでは、チームは作業をスプリントと呼ばれる時間制限のある反復期間内に完了すべき目標に分割することを規定しています。各スプリントは1ヶ月以内で、通常は2週間続きます。スクラムチームは、デイリースクラムと呼ばれる、最大15分間の時間制限のあるスタンドアップミーティングで進捗状況を評価します。スプリントの終了時には、チームはさらに2つのミーティングを開催します。1つは関係者に作業を説明してフィードバックを求めるスプリントレビュー、もう1つは社内スプリントの振り返りです。スクラムチームの責任者は通常、スクラムマスターと呼ばれます。[ 2 ]
スクラムチームは、部門横断的かつ自己管理型であるべきです。シーケンシャルなアプローチとは異なり、スクラムは反復的かつ漸進的な製品開発フレームワークです。[ 3 ]スクラムは継続的なフィードバックと柔軟性を可能にし、物理的な共同作業や緊密なオンラインコラボレーションを奨励し、チームメンバー全員間の頻繁なコミュニケーションを義務付けることで、チームの自己組織化を促します。スクラムの柔軟なアプローチは、プロジェクトの進展に伴ってステークホルダーが要件を変更するという要件変動性の概念に一部基づいています。[ 4 ]
ソフトウェア開発におけるスクラムという用語の使用は、 1986年にハーバード・ビジネス・レビューに掲載された竹内弘高氏と野中郁次郎氏による論文「新製品開発ゲーム」に由来する。著者らは、自動車、複写機、プリンター業界の製造企業のケーススタディに基づき、製品開発のスピードと柔軟性を向上させる新しいアプローチを概説した。彼らはこれを「ラグビー・アプローチ」と呼んだ。これは、単一のクロスファンクショナルチームが複数の重複するフェーズにまたがって活動し、「ボールをパスし合いながら、チームとして最後までやり遂げようとする」プロセスである。[ 5 ]著者らは後に、著書『知識創造企業』の中でスクラムについて詳述した。[ 6 ]
1990年代初頭、ケン・シュワバーは自身の会社であるAdvanced Development Methodsで、のちにスクラムとなる手法を用いていた。ジェフ・サザーランド、ジョン・スカムニオタレス、ジェフ・マッケナはイーゼル社で同様の手法を開発し、その手法を「スクラム」と呼んだ。[ 7 ]サザーランドとシュワバーは後に協力して、自分たちのアイデアを統合した単一のフレームワーク、正式にはスクラムとして知られるようになった。シュワバーとサザーランドはスクラムをテストし、継続的に改良を重ね、1995年には研究論文を、[ 8 ] 2001年にはアジャイルソフトウェア開発宣言を発表した。 [ 9 ]シュワバーはデュポン研究所とデラウェア大学のババトゥンデ・オグンナイケとも協力してスクラムを開発した。オグンナイケは、製品管理が実証的な実践に根ざしていなければ、初期条件の変化時にソフトウェア開発プロジェクトが失敗することが多いと考えていた。[ 10 ]
2002年、シュワバーは他のメンバーと共にスクラムアライアンスを設立し、認定スクラム認定シリーズを立ち上げました。[ 11 ]シュワバーは2009年後半にスクラムアライアンスを離れ、その後、並行してプロフェッショナルスクラム認定シリーズを監督するScrum.orgを設立しました。[ 12 ] 2009年以降、シュワバーとサザーランドによって「スクラムガイド」[ 13 ]と呼ばれる公開文書が発行・更新されてきました。このガイドは6回改訂されており、最新版は2020年11月に発行されています。
スクラムチームは、少なくとも3つのカテゴリー、すなわちプロダクトオーナー、開発者、そしてスクラムマスターで構成されます。プロダクトオーナーは、プロジェクトの成果に関心を持つステークホルダーと連携し、開発者にタスクと期待を伝えます。[ 14 ]スクラムチームの開発者は、スクラムマスターの支援を受けながら、自ら作業を組織します。[ 15 ]
各スクラムチームには1人のプロダクトオーナーがいます。[ 16 ]プロダクトオーナーは製品開発のビジネス面に焦点を当て、ほとんどの時間を利害関係者やチームとの連絡に費やします。その役割は主に製品の利害関係者、顧客の声、または委員会の要望を代表することを目的としており、ビジネス成果の提供に責任を負います。[ 17 ] [ 18 ] [ 19 ]プロダクトオーナーは製品バックログを管理し、チームが提供する価値を最大化する責任を負います。[ 18 ]ただし、各スプリントでどれだけの作業を行うか、どのように達成するかを決定するのは、プロダクトオーナーではなく開発者です。[ 3 ]
スクラムでは、開発者またはチームメンバーという用語は、製品の開発とサポートに役割を果たす人を指し、研究者、建築家、デザイナー、プログラマーなどが含まれます。 [ 13 ] [ 20 ]
スクラムはスクラムマスターによって推進され、その役割はスクラムの理論と実践についてチームを教育し、指導することです。スクラムマスターはチームリーダーやプロジェクトマネージャーとは異なる役割と責任を持ちます。プロジェクトマネージャーは多くの場合、人材管理の責任を負いますが、スクラムマスターはそうではありません。スクラムチームでは、開発者間の自己組織化を最大化するためにプロジェクトマネージャーを関与させることはありません。[ 3 ]


スプリント(デザインスプリント、イテレーション、タイムボックスとも呼ばれる)とは、チームメンバーが特定の目標に向けて取り組むための一定期間のことです。各スプリントは通常1週間から1か月ですが、最も一般的なのは2週間です。スプリントの目標は、目に見える形で「完了」したものを生み出すことであり、チームに確実性を与えるために、目標は不変のものとして扱われます。外部の優先事項の変更により目標を変更する必要がある場合、プロダクトオーナーまたはチームはスプリントを終了し、新しい目標を設定した新しいスプリントを開始できます。
各スプリントは、スプリント計画イベントから始まります。このイベントでは、スプリントの目標が定義され、バックログから優先順位が決定されます。スプリント計画の推奨最大所要時間は、スプリントの各週につき2時間です。各スプリントは、スプリントレビューで終了します。スプリントレビューでは、ステークホルダーに進捗状況を示してフィードバックを得ます。また、スプリント振り返りでは、チームが今後のスプリントに向けた教訓と改善点を特定します。[ 3 ]

スプリント中、開発者は毎日、特定のガイドラインに沿ってデイリースクラム(多くの場合は立ち会いながら)を開催し、スクラムマスターがファシリテートすることもある。[ 3 ]デイリースクラムミーティングは15分未満で、毎日同じ時間と場所で開催される。ミーティングの目的は、スプリントの目標に向けた進捗状況と、目標達成を妨げている可能性のある問題を、詳細な議論には立ち入らずに発表することである。ミーティング後、個々のメンバーは「ブレイクアウトセッション」や「アフターパーティー」に参加し、さらに議論したり協力したりすることができる。[ 21 ]スクラムマスターは、チームメンバーがデイリースクラムを効果的に活用できるようにし、チームメンバーが活用できない場合は、同様の結果を得るための代替案を提供する責任がある。[ 22 ] [ 23 ]
スプリントレビューは、スプリントの終了時に実施される会議で、チームが完了した作業をステークホルダーと共有し、フィードバック、期待値、今後の計画について協議します。スプリントレビューでは、完了した成果物がステークホルダーに提示されます。スプリントレビューの推奨時間は、スプリントの週ごとに1時間です。[ 3 ]
スプリントの振り返りは、チームメンバーがスプリントの長所と短所、将来の改善領域、継続的なプロセス改善アクションを内部的に分析できる独立した会議です。[ 17 ]
バックログリファインメントとは、チームメンバーが将来のスプリントに向けてバックログを見直し、優先順位を付けるプロセスです。これは、新しいスプリントの開始前に独立した段階として行うことも、チームメンバーが単独で取り組む継続的なプロセスとして行うこともできます。バックログリファインメントには、大規模なタスクをより小さく明確なタスクに分割すること、成功基準を明確にすること、そして変化する優先順位とリターンの見直しなどが含まれます。[ 24 ]このプロセスは以前は「グルーミング」と呼ばれていました。[ 25 ] [ 26 ] [ 27 ]
アーティファクトとは、スクラムチームがプロジェクトに向けた作業を文書化することで、製品開発を管理する手段です。スクラムアーティファクトには多くの種類がありますが、最も一般的なものはプロダクトバックログ、スプリントバックログ、インクリメントの3つです。
プロダクトバックログは、実行すべき作業を細分化したものであって、チームが製品に対して維持する製品要件(機能、バグ修正、非機能要件など)の順序付きリストを含んでいる。プロダクトバックログの順序は、タスクの緊急度に対応している。バックログ項目の一般的な形式としては、ユーザーストーリーやユースケースなどがある。[ 3 ]プロダクトバックログには、プロダクトオーナーによるビジネス価値の評価や、チームによる製品の労力や複雑さの評価も含まれる場合があり、これらは丸められたフィボナッチスケールを用いたストーリーポイントで表すことができる。これらの見積りは、プロダクトオーナーがタイムラインを判断するのに役立ち、プロダクトバックログ項目の順序付けにも影響を与える可能性がある。[ 28 ]バックログの先頭にある優先度の高い項目は、開発者が作業できるようより詳細に細分化されているが、バックログの下位にあるタスクはより漠然としている可能性がある。[ 3 ]
スプリントバックログとは、製品バックログから特定のスプリントで開発者が取り組む項目のサブセットです。[ 29 ]開発者は、過去の実績に基づいて各スプリントにおける自身のキャパシティを評価し、スプリントを埋めるのに適切と思われるタスクでこのバックログを埋めていきます。スクラムアプローチでは、スプリントバックログ上のタスクは特定の個人やリーダーによって開発者に割り当てられるものではありません。開発者は、バックログの優先度、自身の能力、学習機会などの他の要因に応じて、必要に応じて作業をプルすることで自己組織化を行います。[ 3 ]
インクリメントとは、スプリントの目標と完了の定義を満たす、リリース可能なスプリントの出力です。これは、完了したスプリントバックログ項目すべてと、それ以前のすべてのスプリントの作業結果を統合して形成されます。[ 3 ]

スクラムでよく使われるバーンダウンチャートは、残りの作業を示す公開チャートです。[ 30 ]参照用に素早く視覚化できます。バーンダウンチャートの横軸は残り日数、縦軸は各日の残り作業量を示します。スプリント計画中に、理想的なバーンダウンチャートが作成されます。[ 31 ]そして、スプリント中に開発者は残りの作業量でチャートを更新します。

各スプリントの終了時に更新されるリリースバーンアップチャートは、予測スコープの達成に向けた進捗状況を示します。リリースバーンアップチャートの横軸はリリース内のスプリントを示し、縦軸は各スプリントの終了時に完了した作業量を示します。[ 32 ]
チームの1スプリントにおける総能力は、前回のスプリントで完了した作業を評価することで推定できます。過去の「速度」データの収集は、チームが自らの能力を理解するためのガイドラインとなります。
チームの「完了の定義」とは、作業が「完了」とみなされるために完了する必要がある事項を列挙したチェックリストです。この「完了の定義」は、必ずしも作業がリリース可能であることを保証するものではありません。開発の初期段階でリリースすることは現実的ではない場合もあるためです。これは、チームが既存の能力でどれだけ合理的に近づけるかを示すものです。チームが成長するにつれて、「完了の定義」は、作業のリリースに必要な要件に合わせて進化していく必要があります。[ 3 ]
関連する用語として「準備の定義」があり、これはある項目の作業を開始する前に完了する必要がある項目のチェックリストである。[ 33 ]
デイリースクラムやスクラムレビューなどのスクラムイベントは生産性を低下させ、実際の生産的なタスクに費やすべき時間を無駄にしていると主張する人もいます。[ 34 ]また、スクラムは、パートタイムまたは地理的に離れたチーム、個人または作業グループで作業したほうがよい高度に専門化されたメンバーがいるチーム、増分テストや開発テストに適さないチームにとって困難をもたらすことが観察されています。[ 35 ] [ 36 ]
体系的なレビューでは、分散ソフトウェア開発において「分散スクラムはプロジェクト全体の成功にプラスにもマイナスにも影響を与えない」ことが判明した。[ 37 ]
アジャイルソフトウェア開発宣言の著者の一人であるマーティン・ファウラーは、いわゆる「偽アジャイル」の実践を批判している。これは「アジャイルの価値と原則を無視している」[ 38 ]また、「アジャイル産業複合体が人々に方法を押し付けている」ものであり、アジャイルの原則である「プロセスやツールよりも個人と相互作用を重視する」[ 9 ]ことに反しており、作業を行う個人が作業の進め方を決定し、ニーズに合わせてプロセスを変更できるようにしている。
2016年9月、アジャイル宣言の署名者であるロン・ジェフリーズ氏[ 9 ]は、「ダークスクラム」と名付けたスクラムについて、「人々がスクラムの原則と価値を真に理解するまでは、悪用はほぼ避けられない」と述べました。彼は特に、自己組織化の普及が遅いことに注目しました。[ 39 ]
スクラムは、様々な目的を達成するために、様々な状況に合わせて頻繁に調整または適応されます。[ 40 ]スクラムを適応させる一般的なアプローチは、スクラムを他のソフトウェア開発方法論と組み合わせることです。これは、スクラムが製品開発ライフサイクル全体をカバーしていないためです。[ 41 ]スクラム実践者の中には、特定の問題や組織にスクラムを適用または適応させる方法について、より詳細な手法を提案している人もいます。多くの人はこれらの手法を「パターン」と呼んでおり、これは建築やソフトウェアにおけるデザインパターンに類似した用法です。[ 42 ] [ 43 ]
Scrumbanは、スクラムとカンバンに基づいたソフトウェア生産モデルです。作業の各段階を示すために、同じスペースで作業するチームは、付箋や大きなホワイトボードを使用することが多いです。[ 44 ]カンバンモデルにより、チームは作業段階と制限を視覚化できます。[ 45 ]
スクラム・オブ・スクラムとは、複数のチームが同一の製品に連携して取り組むために、スクラムを大規模に運用するための手法です。スクラム・オブ・スクラムの毎日のスクラムミーティングには、各チームから選出されたアンバサダー(開発者またはスクラムマスター)が参加します。調整ツールとして、スクラム・オブ・スクラムは、チームがチーム全体のリスク、障害、依存関係、および前提条件(RIDA)に共同で取り組むことを可能にし、これらは各チーム独自のバックログで追跡できます。[ 46 ]
大規模スクラムは、Bas Vodde氏とCraig Larman氏によって開発された、様々なルールとガイドラインを用いてスクラムを拡張する製品開発のための組織システムです。このフレームワークには2つのレベルがあります。第1レベルは最大8チーム向けに設計されており、第2レベルは「LeSS Huge」と呼ばれ、数百人の開発者が関わる開発に対応できます。
スクラムのダウンフィールド化
ケン・シュワバーとジェフ・サザーランドは、1995年にテキサス州オースティンで開催されたOOPSLAカンファレンスで初めてスクラムを発表しました。[...] 2001年には、スクラムに関する最初の書籍が出版されました。[...] 1年後(2002年)、ケンは世界中でスクラムのトレーニングと認定を提供することを目的として、スクラムアライアンスを設立しました。
プロダクトバックログのリファインメントとは、プロダクトバックログの項目をより細かく、より正確な項目に細分化し、さらに定義する行為です。
プロダクトバックログはグルーミングではなくリファインメントです。
バックログリファインメント(旧称:バックロググルーミング)とは、プロダクトオーナーとチームメンバーの一部または全員がバックログの項目をレビューし、バックログに適切な項目が含まれているか、優先順位が付けられているか、バックログの先頭にある項目がデリバリーの準備ができているかを確認することです。
「バックロググルーミング」という言葉を耳にすることもあるかもしれませんが、アジャイルバックログリファインメントは、プロセスの協調性と継続性をより適切に反映しているため、業界標準となっているようです。