スクラム(Scrum)とは?定義や特徴、開発チームの役割を全て解説
CircleCI Japan GK リージョナル マーケティング マネージャー
今回の記事では、ソフトウェア開発の一種のフレームワークとして知られている、スクラム (Scrum) について開発の手順やプロセスに関する情報や体制、スクラムチームの役割に関する情報までをわかりやすく解説します。
スクラム(Scrum)とは簡単に
スクラムとは、簡単に説明すれば一種のソフトウェア開発手法であり、チームと共同で迅速な開発を行うソフトウェア開発のフレームワークです。スクラムでは、イテレーションと呼ばれる短い時間単位(小さなサイクル)で開発を実践します。
また、スクラム開発はアジャイル的にソフトウェア開発を実践するためのフレームワークでもあり、頻繁にアジャイル開発でも採用されている開発手法です。簡単にまとめると、スクラムとは、開発プロジェクトなどのチームコラボレーションを向上させるシンプルなフレームワークと考えて良いでしょう。現在では、プロダクト開発はもちろん、システム開発等にも幅広く世界中で活用されているフレームワークです。
Scrum(スクラム)の歴史としては、1986年に製造業より生まれ、1993年に アメリカのケン・シュエイバー氏と Jeff Shutherland(ジェフ・サザーランド)氏、二人が「スクラムガイド」を作成し1995年に正式なフレームワークとしてスクラムが開発されました。元々はラグビーのスクラムを基に名付けられたのがスクラム開発となりました。
スクラムは既存のプラクティスを包み込む。あるいは、その存在を不要にする。スクラムによって現在の マネジメント、環境、作業技術の相対的な有効性が可視化され、改善が可能になるのである。 2020年度公式スクラムガイド
スクラムガイドとは?
スクラムガイド(Scrum guides)とは、スクラムに対する定義、理論、価値基準、スクラムの開発チーム、スクラムイベント、作成物などのガイドラインであり、ジェフ・サザーランド氏とケン・シュエイバー氏によって作成された有名なスクラムルールガイドです。
スクラムガイドは、以前はソフトウェア開発専用に作成されたガイドですが、近年では、多様な業務や専門家の間でも活用されるようになりました。 2020年度には、スクラムガイドの変更があり最新バージョンの発行もされています。公式スクラムガイドに関する情報はこちらをご覧下さい。
我々は 1990 年代初頭にスクラムを開発した。世界中の⼈たちがスクラムを理解できるように、 スクラムガイドの最初のバージョンを 2010 年に執筆した。それ以来、機能的に⼩さな更新を加 えながらスクラムガイドを進化させてきた。我々は共にスクラムガイドを⽀援している。 Ken Schwaber & Jeff Sutherland
覚えておきたいスクラムチームの体制
通常スクラムの体制では、基本的にプロダクトゴールを元に集中する規模の小さいチームで構成され、スクラム開発チーム内にはスクラムマスター、開発者、プロダクトオーナーが小数人で構造されています。スクラム成功達成で一番重要なポイントが、体制を整えておくことです。この理由としては、各役割人物がプロダクトバックログの管理やコードの開発を担当する専門家(開発者)、その開発者を支援するスクラムマスターが必ず必要となります。それでは以下のセクションにて、各スクラムチームの役割を詳しく学んでいきましょう。
スクラムに欠かせないチームの役割
次に、ガイドラインを元にした重要なスクラムチーム内の各メンバーの役割や責任を以下にて説明しています。
プロダクトオーナ(PO)
プロダクトオーナーの役割とは、開発の方向性の定めや製品やサービスの価値(ROI)を上げる重要な責任があり、ソフトウェア開発プロジェクトのバックログなどの処理等も果たさなければならない重要な責任があります。
スクラムマスター
スクラムマスターの役割は主に、チーム内のコミュニケーションをリード・サポートする責任があります。
開発者(ディベロッパー)
スクラムにおけるディベロッパーの役割とは、専門家としてプロダクトや製品の作成物に対する責任や、スプリントゴールにアップデートをする役目があります。
気になるスクラム開発の特徴とは?
スクラムの最大の特徴は、「Scrum」が、チーム内のコミュニケーションを向上させ、ソフトウェアや製品開発を効率的に開発を進行させることです。スクラム開発では、イテレーションの計画を立案し、設計と実際の開発を進行させます。
ここで覚えておきたいスクラムの特徴は、イテレーション毎にソフトウェアや製品の動作や進行状況のチェックを行うのが基本ということです。ですので、スクラム開発では、ただアプリやソフトウェアを開発するのではなく、チームとコミュニケーションを取りながらリリースに向けて開発を進めていくのが重要なポイントです。
また、スクラムは「リーン思考」を元に重視するので無駄を認識し、排除しながら開発の進行を実践しなければなりません。このポイントも一つのスクラムの特徴として覚えることをお勧めします。次にスクラム開発に欠かせない3つのポイントをご紹介します。
-
Transparency(透明性)
プロジェクトのゴール、製品のビジョンや開発に関する情報、顧客からの要件が100パーセント透明であるかを確認します。
-
Inspection (調査)
プロセスや開発全体を常に調査することを示します。ここでは、問題や障害、定期的に調査を行うことが重要です。
-
Adaptaion (適用)
ソフトウェアやプロダクトに障害、問題等が発生した時に、問題等に対する調整を行うプロセスを示します。
重要なスクラムの価値基準
スクラムの3つの大きな特徴以外に、最新のスクラムガイドラインには、5つの価値基準が存在します。スクラムチームは、開発を進行させる度にこれらの価値基準を上手く使いこなし、学ぶ必要があります。
Commitment (確約)
スプリントゴールの目標又は、ゴールの為にチームが一人一人が確約することです。
Courage (勇気)
スクラムでの勇気とは、問題、不具合、困難があっても勇気を出してチームで乗り越えていく姿勢を保つことです。
Focus (集中)
各スプリントゴールや目標、機能や製品の価値向上を達成する為に集中して作業を行うことです。
Openness (公開)
英語の意味そのもので、関係者に対してオープン姿勢を保つことです。また、他人のアイデアに対する公開姿勢だけではなく、常に正直に公開することです。
Respect (尊敬)
スクラムチームメンバー全員を尊敬し、お互いのアイデアを尊敬することです。
スクラム開発の進め方と手順
スクラム開発の成功に繋がる開発の進め方を以下でご紹介しています。
ステップ1: プロダクトバックログ
スクラムを成功させるには、まずはじめにプロダクトバックログを作成する事です。ここで重要なのは、顧客の要件を基に開発や機能の優先度を透明化させ、優先度に基づいて開発ゴールをステークホルダーと共有し決めて行くことです。
ステップ2:スプリントプランニング
スプリントプランニングは、基本的にプロダクトバックログ作成後に行われるスプリント期間を示します。このステップでは優先度を基にスプリント期間内で行う必要がある作業等を開発者とPOが打ち合わせを通し決定します。
ステップ3: デイリースクラム
デイリースクラムは長くて15分、毎日設ける会議のことです。デイリスクラムーは「朝会」としてもよく知られていますが、こちらは、基本的にスクラムチームのスケジュールを基に調整していきましょう。デイリースクラムの最大の目的はメンバーがスプリントゴール達成の為の作業進行状況をチェックする機会を設けることです。
ステップ4: スプリントレビュー
スプリントレビューとは、スプリント期間の最後に行う会議の一つです。普段、この段階では顧客の関係者全員に出席してもらい、開発した機能のデモ等を行います。また、スプリントレビューはプロダクトやソフトウェアの機能の方向性を決定する場面ともなる段階です。
ステップ5:スプリントレトロスペクティブ
スプリントレトロスペクティブは「ふりかえ」とも呼ばれており、1番最後に実践する振り返り会議を示しています。スプリントレビューと良く似ているため、勘違いをしてしまうことも多いですが、Retrospectiveでは、全体のスクラム開発チームのプロセスのふりかえや今後の為の改善ポイント等を重視します。
スクラムで必要な用語集一覧
このセクションでは、スクラム開発で必ず使用される代表的な用語をまとめていますので、是非参考にして下さい。
スクラムト用語 | 意味と説明 |
---|---|
スプリント (Sprint) | スプリントとは、スプリント開発の作業を完了させる工程、期間を示します。 |
スプリント計画 | スプリントプランニングとは、スクラム開発におけるイベントであり、ゴールに向けたタスクの達成方法を定義する具体的な計画を意味しています。 |
Daily Scrum(スタンドアップ) | デイリースクラムとは、毎日15分程実施する会議のことを示します。この会議では、進行状況の確認はもちろん、問題等の確認もチェックします。 |
レトロスペクティブ (振り返り) | レトロスペクティブとは、開発の最終段階に行われる振り返り会議・活動を示します。 |
プロダクトバックログ | こちらは、製品ロードマップを基に進行させるべき作業の優先順位を表したリストを示します。 |
スプリントレビュー | スプリントレビューは先ほども説明した通り、ステークホルダーに開発した製品や機能のデモを行いフィードバックを得ることの意味を示します。 |
アジャイルとスクラムの違いとは?
実は、スクラム開発はあくまで1種のアジャイル開発手法のフレームワークであり、簡単に言えばアジャイル内のフレームワークだけです。アジャイルには XPやかんばんなどの多くの手法が存在し、スクラムはその一種と言えるでしょう。また、スクラムは「コミュニケーション」を最優先として重視します。ですので、アジャイル開発手法で使われる 「XP」と「スクラム開発」は良く比較されますが、実際にアジャイル開発とスクラム開発を比較する必要はありません。スクラム開発は先ほども説明した通り、一種のアジャイル手法にしかすぎません。
スクラムチームに最適なCircleCI
スクラムチームで CI/CDツール を活用すれば、フィードバックの収集スピードはもちろん、テスト全体を自動化することが実現します。また、品質のあるソフトウェア開発にも最適であり、より良い開発を素早く実践することが実現します
まとめ
スクラム開発は、アジャイルのフレームワークとして使われ、開発チームを一つにまとめる際やコミュニケーション向上にもとても便利ですが、チームとして何を達成するのかを透明化させるのが重要です。個人個人各プロダクトゴールをビジョンとして保ち、役割を持ち開発を進行させるフレームワークなので、より良い製品やプロダクトの開発が実現します。但し、ソフトウェアやアプリ、プロダクト開発には時と場合により最適な手法がありますので、自社のニーズをベースにより最適なソフトウェア開発手法を選択することが重要です。