スクラムとは
スクラムとは、アジャイル開発における代表的なフレームワーク(枠組み・進め方)の一つです。ラグビーの「スクラム」のように、開発チーム全員が密に連携し、一丸となってプロジェクトを進めることからこの名前がつきました。
スクラムでは、一般的に1週間から4週間程度の「スプリント」と呼ばれる短い期間を一つの単位として開発を繰り返します。チームメンバーには役割があり、製品の責任者である「プロダクトオーナー」や、チームが円滑に動けるよう支援する「スクラムマスター」、実際に手を動かす「開発メンバー」などが協力し合います。毎日「デイリースクラム」と呼ばれる短い会議を行い、進捗や課題を共有します。
具体例
例えば、新しいECサイトの機能を開発するプロジェクトで、1週間を「1スプリント」と設定します。この1週間の間に「ログイン機能を作る」という目標を定め、毎日朝に15分の立ち話で進捗を共有します。スプリントの終わりには実際に動くログイン機能をレビューし、次のスプリントで「商品検索機能を作る」というように段階的に進めていきます。
もう少し詳しく
スクラムは、アジャイル開発における具体的な「組織の動かし方」や「開発のフレームワーク」を定義したものです。スクラムの特徴は、チームが自己組織化(自分たちで判断して動く)されている点にあります。スクラムチームには「プロダクトオーナー」「スクラムマスター」「開発メンバー」という3つの役割しか存在しません。プロダクトオーナーは、何を作るべきかの優先順位(プロダクトバックログ)を決定し、製品価値の最大化に責任を持ちます。スクラムマスターは、チームが自律的に活動できるよう、障害となるものを取り除き、スクラムのプロセスが正しく実行されるよう支援します。開発メンバーは、実際に手を動かして目標(スプリントゴール)を達成するための成果物を作ります。開発期間である「スプリント」の最後には、必ず動作する成果物を関係者に見せる「スプリントレビュー」と、チームの働き方を改善するための「振り返り(レトロスペクティブ)」を行います。
試験でのポイント
試験では、スクラムチームにおける各役割の役割分担が非常によく出題されます。特に「スクラムマスターは開発者への指示役(指示命令を下すマネージャー)ではない」という点や、「プロダクトオーナーがプロダクトバックログの優先順位と内容に対する最終決定権を持つ」という原則は重要です。また、スプリント期間中にスプリントの目標(スプリントゴール)は原則として変更されないこと、毎日の朝会である「デイリースクラム」は15分程度の短い時間で進捗状況や直面している障害を共有する場であることなどが問われます。スプリントレビューの目的が単なる進捗報告ではなく、実際の動く成果物を見てフィードバックをもらうことである点も押さえましょう。
関連する用語
開発の基本思想となるアジャイル開発や、コードの品質を高めるために併用されることが多いXP(エクストリームプログラミング)のペアプログラミング、テスト駆動開発などが密接に関連しています。