スクラムマスターとは? 開発チーム内ではたす役割と責任の範囲を理解しよう

最終更新日時:2022.09.02 (公開日:2022.09.05)
スクラムマスターとは? 開発チーム内ではたす役割と責任の範囲を理解しよう

スクラムマスターは、ソフトウェアを開発するアジャイル開発のフレームワークの一つである「スクラム」で、進行役として重要な役割を担います。今回は、そもそも、スクラムマスターとは何か、開発チーム内でどのような役割をはたすのかを説明します。

もくじ
    1. スクラムマスターとは
    2. 軽量級フレームワーク・スクラム開発とは
    3. 「スクラムチーム」とはスクラムマスターが率いる開発チームのこと
    4. スクラムマスター・プロダクトオーナー・プロジェクトマネージャーの違いは
    5. まとめ

スクラムマスターとは

「スクラムマスター(Scrum Master)」とは、「スクラム(Scrum)」の「マスター(Master=長、師、主君)」の意味で、ひとことで言えば「スクラムチームのリーダー」のことです。

開発プロジェクトの進行役としてスクラムチームを率いて、チームメンバーが能力を十分に発揮できるようサポートしながら、開発を成功に導くのが主な役割です。開発チームとプロダクトオーナー(Product Owner、Scrum Product Owner)やマネジメント・経営層とのパイプ役として、現場とトップを「つなぐ」大切な役割も担います。

このように、開発チームのマネジメントを行う、重要ポジションがスクラムマスターなのです。ただし、開発しているプロダクトの仕様や個々の機能等に対する最終的な決定権や責任を持っていないことには注意が必要です。

軽量級フレームワーク・スクラム開発とは

ソフトウェア開発の現場では、多様化するニーズなど、社会の変化にスピーディに対応するため、アジャイル開発(agile software development=アジャイルソフトウェア開発)を取り入れるケースが増えています。スクラムとは、このアジャイル開発で用いられるフレームワークの一つです。順を追って説明します。

「アジャイル開発」の概要

アジャイル開発は、これまで主流だった設計から開発まで、手順を追って進めていく「ウォーターフォール開発(Waterfall Development)」より新しい概念です。

一般の生活では聞き慣れない「アジャイル(agile)」という言葉ですが、日本語では「敏捷な」「すばしっこい」「素早い」といった意味があります。

アジャイル開発では、この言葉の意味通り、システムを開発する際、機能ごとに要件定義、設計、プログラミング、テスト、本番環境での運用のサイクルを「小規模」で「小さなサイクル」で「素早く」繰り返していきます。システムの一部の機能だけでもスピード感のある開発を始められる速さがメリットの一つです。

開発した機能を実際に使用することで新たな要望・要件が生じることがありますが、その際にも開発サイクルが小規模なので、柔軟な対応が可能になります。素早く開発のサイクルを回し、変化にも柔軟に対応できることがアジャイル開発のポイントとなります。

あらかじめきちんと計画を立てて、それに従って開発を進めるのがウォーターフォール開発なら、最初の計画は大枠にとどめ、計画の一部を実行し、その結果によって計画を最適化しながら進めていくのがアジャイル開発と言えるでしょう。

現在では、アジャイル開発とウォーターフォール開発が組み合わされる開発事例もかなり多くなっています。

「スクラム」の定義

アジャイル開発の手法には「エクストリーム・プログラミング」や「スクラム」などがあります。最もよく使われているのがスクラムです。この名称はラグビーのスクラムに由来しています。1986年に野中郁次郎氏と竹内弘高氏が研究論文で日本の製造業での柔軟で自由度の高い開発手法として名付けています。

ソフトウェア開発における「スクラム」の定義と解説は、この手法の創設者であるKen Schwaber氏とJeff Sutherland氏によって『The Scrum Guide』にまとめられています。日本語訳もあり、エンジニアなら目を通しておきたい内容になっています。

「The Scrum Guide」ではスクラムを以下のように定義しています。

スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、人々、チーム、組織が価値を生み出すための軽量級フレームワークである。

大規模なシステムは複雑であり、これを一度に作り上げることは容易ではありません。それに対応するための「適応型のソリューション」とは、システム全体が完成してから運用を始めるのではなく、機能の一部が完成したら運用を始め、ユーザーのフィードバックに適応して改善しながら開発を進めていくことです。前述のアジャイル開発の考え方にマッチしていることがわかるでしょう。

スクラムには3つの柱、「透明性」「検査」「適応」という考え方があります。スクラムにおいては、作業やプロセスはメンバーから見える必要があります(透明性)。またスクラムの作成物や進捗状況は検査される必要があります。検査の結果、目標と現状のズレが許容範囲を超えたことが判明したら、調整を行います。

スクラムは軽量フレームワークで規則がシンプルなので習得しやすいと言われることがありますが、逆にシンプルなために、変化に適応するのに経験等が必要になり、習得が困難になることもあると言われることもあります。これは、開発対象、プロダクト、チーム状況によって様々なケースが想定できるためで、スクラムの柔軟性、適応性の高さを示しています。

「スクラムチーム」とはスクラムマスターが率いる開発チームのこと

スクラム開発の基本的な単位がスクラムチームです。スクラムチームはスクラムマスター1人とプロダクトオーナー1人、そして複数人の開発者(エンジニア)で構成されます。スクラムチーム内に階層はありません。フラットな集まりです。

スクラムチームの人数は通常は10人以下が適切とされています。チームを小規模にすることで、より良好なコミュニケーションがとれ、その結果生産性の向上も期待できるからです。スクラムチームに求められるプロダクトを実現するために、メンバーがどのように動くかはチーム自身が決定します。

エンジニアは実際にプロダクトを作成する立場であり、なんらかの分野の専門家であるとされています。

スクラムマスター・プロダクトオーナー・プロジェクトマネージャーの役割は

スクラム開発を牽引するのが、スクラムマスター、プロダクトオーナー、プロジェクトマネージャーです。それぞれの役割をまとめてみます。

・スクラムマスターの役割
スクラムマスターは、スクラムチームが円滑に作業を進めるために必要なことを行います。スクラムの仕組みが適切に機能させることの責任者でもあります。さらにスクラムを組織に導入する際には、スクラムチーム内部と組織にスクラムの理論と実践を伝える役割を持ちます。

・プロダクトオーナーの役割
プロダクトオーナーは、開発中のプロダクトについての責任者です。ユーザーから求められる機能を聞き、それをチームに適切に伝える立場です。アジャイル開発の場合、ユーザーから求められるものは変化する前提です。そのため、プロダクトオーナーにはその変化に追随することも求められています。

・プロジェクトマネージャーの役割
実は、「プロジェクトマネージャー」はスクラムチームの標準的な役割ではありません。スクラムにおけるプロジェクトマネージャーの立ち位置は、スクラムチームがスケジュールを守って目標を達成できるように外部からサポート、管理をする場にあります。

名称 役割
スクラムマスター チームが最適に活動できるように支援する
プロダクトオーナー 製品の責任者。ユーザーの要望を聞き、その変化に対応する
プロジェクトマネージャー 外部からチームをサポート(本来、スクラムの役割ではない)

まとめ

アジャイル開発のフレームワークの一つであるスクラムは、スクラムチームという単位で進められます。スクラムマスターはスクラムチーム内部のメンバーが作業に集中できるように、様々な面から支援をします。またプロダクトオーナーを通じて、チーム外部とのコミュニケーションも行います。他の開発手法にはないスクラム独自のキーとなる重要な役職がスクラムマスターなのです。

執筆者:飯岡 真志

ライター

アスキーで技術系雑誌の編集に携わる。おかげでLAMPを駆使してサイト作るくらいはできる。現在はライティング、CMS、翻訳など。使用中→AWS/Perl/PHP/MySQL