アジャイル開発のひとつとして、スクラム開発というものがあります。スクラム開発は開発効率の向上を目的として、2~4週間程の短いスパンで開発を繰り返していきます。スクラム開発におけるスクラムマスターの役割やどんなことをするのかについて、いまいち理解出来ていない方も多いです。今回はそのような方に向けて、解説していきます。
1. アジャイル開発の手法のひとつ"スクラム開発" とは
アジャイル開発は短いスパンでの開発を繰り返し、クライアントの要求の変更や追加について柔軟に対応しながら開発する手法です。
スクラム開発はアジャイル開発のひとつであり、スクラムというチームを組んで、プロダクトオーナー(納品物の責任者)、スクラムマスター(チーム全体のサポート)などがそれぞれの役割を担いながら開発チームと一緒に計画を進める手法です。
短期間での開発工程を繰り返しながら、常に状況を"見える化" し、問題点を見つけ、改善しながら納品物を作成していきます。
1.1 スクラム開発の流れと進め方
スクラム開発は、スプリントと呼ばれる「設計→開発→テスト→改善」の一連のプロセス(通常2~4週間)を繰り返してシステム開発を進めていきます。
・プロダクトバックログ(プロダクトの機能をストーリー形式で記載)にあるタスクを4つのステータスで管理し、Todo(未完了)タスクの中から優先度の高いものをスプリントで開発します。
・デイリースクラム(開発メンバーによる日々のミーティング)で進捗を確認します。
・スプリントレビューで開発したプロダクトのデモを行い、機能要件を満たしているか、改善はないかなどのチェックをします。
1つのスプリントが終われば、クライアントがプロダクトと開発チームの評価を行う形です。
2. スクラムマスターとは
スクラム開発では「スクラム」というチームを組みます。下記のメンバーで構成されておりそれぞれが役割を担います。
- プロダクトオーナー
- スクラムマスター
- 開発チームメンバー
◆ プロダクトオーナー
プロダクトオーナーは、作成するプロダクトに対する、最終決定権や責任を持つ人です。
「プロダクトバックログ」と呼ばれるやりたい事リストを常に管理して、最新の状態にする責任があります。
◆ スクラムマスター
スクラムマスターは、スクラムチームのリーダーとして開発メンバーのサポートを行うとともに、外部の関係者にもスクラム開発の価値を理解してもらうために説明を行います。
よくあるのが、ウォーターフォール開発のプロダクトマネージャーと混同されがちという点です。
スクラムマスターは、トップダウンによる意思決定や作業指示は行わず、プロダクトオーナーと開発チームメンバーが円滑に計画を進行できるようにサポートします。
◆ 開発チームメンバー
ウォーターフォール型開発では、ブログラマー・テスター・概要設計者・詳細設計者など役割が決まっていますが、スクラム開発では全ての開発に関わる人を「チームメンバー」と一括りにしています。
役割ごとに分けないのは、チーム一体となって最大の価値を提供するということに重点をおいているからです。
3. 【実践編】スクラムマスターの役割・仕事内容
スクラムマスターの役割は、スクラムチームにスクラムの理論・価値を理解してもらい、正しく実践できるようにサポートするのが仕事です。
いわゆる開発チームのリーダー的存在として、計画を円滑に進めることに責任を持つ人です。開発メンバーがタスクを効率的にこなせるような環境を整え、チェックしたり、開発メンバーが期間内にタスクを全て終わらせられるように管理します。
具体的な仕事内容は以下の3つです。
3.1 開発メンバーをサポートする
スクラム開発における「設計→開発→テスト→改善」の一連のプロセス(スプリント)を滞りなく実施できるように、開発メンバーに対してスクラムの理論や考え方、取り組み方などをアドバイスし、調整しながら全面的にサポートしていく役割があります。
開発していく中で発生する障害(問題)があれば解決に取り組み、スムーズに計画が進行していくための環境作りに努めることが仕事です。
3.2 スクラム開発の価値・理論をプロジェクト関係者に伝える
スクラム開発の理論や意義を理解した上で、計画に関係する外部の人たちに、スクラム開発によるメリットや価値を説明します。
顧客とのコミュニケーションを綿密に取りながら、計画を成功に導くにはどうすれば良いのかを常に考えて行動していく必要があります。
3.3 プロダクトオーナーをサポートする
プロダクトオーナーは、クライアントの要望を満たすプロダクトを作成するために必要な業務を行う開発責任者。プロダクトバックログ(プロダクトの機能をストーリー形式でまとめたもの)の作成、タスクやスケジュールの進捗管理を行います。
スクラムマスターは計画が滞りなく進むように、スクラム開発におけるプロダクトオーナーのサポートもしなければなりません。
4. スクラムマスターが責任を持つ点
スクラムマスターが請け負う責任について次のように定義されています。
- Clearing obstacles
(障害・問題を取りのぞく) - Establishing an environment where the team can be effective
(スクラムチームが効果的なパフォーマンスを上げるための環境を整える) - Addressing team dynamics
(チームダイナミクスに対処する) - Ensuring a good relationship between the team and product owner as well as others outside the team
(開発メンバー、プロダクトオーナー、外部のプロジェクト関係者との良好な関係を保つ) - Protecting the team from outside interruptions and distractions
(スクラムチームが外部から開発を中断されたり、気をそらさられたりすることから守る)
参照元:Scrum Master|Agile Alliance
これらのことを念頭におきながら役割を果たすことが大切です。
4.1 スクラムの開発事例
ここからは具体的なスクラムマスターの役割・働き方や現場でのスクラム開発の進め方を、3つの事例を通じて紹介します。
- Rettyスマホアプリ開発チーム
- リクルートライフスタイルでの事例
- ピクシブ社での事例
◆ Rettyスマホアプリ開発チーム
Rettyでのスクラム導入事例としてのお話が紹介されています。
ウォーターフォール開発からアジャイル開発に切り替えようとしたものの、上手く浸透しなかったという声もチラホラ。
Rettyでは、どのようにしてアジャイルを浸透させ、チームの生産性や満足度向上に繋げたのかを解説しています。現場のスクラムマスターからのお話もあるので、非常に分かりやすくまとめられております。
出典:実例に学ぶスクラム導入手順-タスク属人化を避け、チーム開発力向上のためにRettyがやったこと|エンジニアHub
◆ リクルートライフスタイルでの大規模スクラム事例
規模が大きいスクラムを行う場合、事業部全体の責任を持つ人への理解、それ以外の多くの関係者にも理解をしてもらう必要があります。そういった大規模スクラムならではの事例について分かりやすくまとめられております。
◆ ピクシブ社での事例
ピクシブ社のチームビルディングに関する事例です。
スクラムはスクラムガイドにフレームワークのルールが記載されていますが、なかなか思い通りに動かすことが出来ない人も多いです。そういった方に見て頂きたい資料になります。全体としてどうやってスクラムを取り入れていくかを理解することができます。
出典:ピクシブ社初!大規模チームのチームビルディング|SlideShare
5. スクラムマスターの役割についてよくある質問・Q&A
スクラムマスターの役割についてよくある質問・Q&Aをまとめました。
5.1 そもそもアジャイル開発とウォーターフォール開発の違いは何?
アジャイル開発が「設計→開発→テスト→改善」の小さな工程を繰り返して開発していく手法なのに対して、ウォーターフォール開発は、「分析→設計→開発→テスト→保守」と一通りの工程を上から順番どおりに実行していく手法です。
アジャイル開発のメリットは、臨機応変に柔軟に対応を取ることが可能な点と、開発効率・スビートが良い点です。
機能単位で実装とテストを繰り返すので、修正の手間がかからない、開発効率の向上、顧客とのコミュニケーションを取りながら進めるので進捗が見えやすいなどのメリットもあります。
ウォーターフォール開発のメリットは、工程が明確に区切られているため、担当だけの作業に集中でき経験の浅いエンジニアでも参加しやすいことが挙げられます。仕様や課題などのゴールが明確ならこちらの開発手法を選択しましょう。
5.2 スクラムマスターとプロジェクトマネージャーの役割の違いは何?
スクラムマスターとプロジェクトマネージャーの役割の違いは、「長期的にチームの力を最大化するような観点を持っているか」にあります。
スクラムが定義する用語にインペディメント(障害物)があります。これを取り除いていくように動くのがメインミッションとされており、障害を見つけたらそれを解決に向かわせるように開発チーム全体に促したり、障害に対応しやすいようにリスト化したりするのがスクラムマスターの役割になります。
プロジェクトマネージャーのメインミッションはあくまでも「計画を立て、確実に進捗を進めること」であり、長期的な戦略というよりはプロジェクトという短期の目標に対して責任を取る人ということであり、このポイントがスクラムマスターとプロジェクトマネージャーの大きな役割の違いになります。
5.3 スクラムマスターになるには資格は必要?
アジャイル開発・スクラムマスター関連の資格は、「認定スクラムマスター」、「PSM」、「LSM」などさまざまなものがありますが、国家資格などは存在せず、資格が無くてもスクラムマスターになることは可能です。
しかしながら、スキルアップには資格取得が有効であり、会社によっては昇給・昇進の対象になったり現場に活かすことが出来る資格もあります。そのため、取得をしておいて損はないでしょう。
6. まとめ
今回は、スクラム開発におけるスクラムマスターの役割、よく比較されるウォーターフォール開発との違いなどを解説しました。スクラムマスターの仕事は多岐にわたり、難易度が高い役割でもあります。
しかしながら、開発チームのリーダーとしてチームメンバーやプロダクトオーナーをサポートをし、計画の成功に導くためには必要不可欠な人材とも言えます。本記事を良く読み、計画を円滑に進められるように活用して頂ければ幸いです。