RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのエンジニアブログ

スクラム開発のエッセンス〜スクラムチームとスクラムイベント〜

スクラムとは

こんにちは。strongWhiteです。今回はスクラムに関する解説記事です。
スクラムとは、変化の激しいソフトウェア開発の問題に対応するための開発手法です。 ソフトウェアは建築物などの三次元的な物体とは異なり、認識しにくく不透明な存在であるため、潜在的な問題(バグなど)を早期に察知するのが難しい性質を持っています。また、問題を認識できたとしても修正などの後戻りが難しい場合があります。このようなソフトウェア開発の問題を解決するのがスクラムです。
スクラムでは、あらかじめ定めた期間内に一定の成果物を作成(開発)し、徐々にソフトウェアを構築するというアプローチを取ります。ソフトウェアに「透明性」を見出し、潜在的な問題を認識しやすくするのです。
今回の記事ではスクラムを用いた開発を始める方向けの前提知識として、スクラム開発の関係者(スクラムチーム)とスクラム開発中で発生するイベント(スクラムイベント)について解説します。

スクラムチーム

スクラム開発は、以下の役割を担う人(たち)が相互に作用し合って進捗していきます。

  • プロダクトオーナー
  • 開発チーム
  • スクラムマスター

各役割とその使命については後述します。これらの役割を担い、スクラム開発を進める人たちをスクラムチームと呼びます。

プロダクトオーナー

プロダクトオーナーは開発しようとしているプロダクトのオーナーであり、プロダクトの最終責任者です。
プロダクトオーナーは「プロダクトのビジネス的価値」に着目し、プロダクトで実現したいことに優先順位をつけてリスト化したプロダクトバックログを作成・更新・管理する役割を担います。プロダクトオーナーは開発チームにプロダクトバックログを公開することで、なぜそのプロダクトを作るのかというビジョンと優先順位を理解してもらうよう努めます。

開発チーム

開発チームはプロダクトオーナーが決定した要件を成果物として実現するメンバーの集まりです。
プロダクトの開発責任を担うのが開発チームであり、プロダクトに不具合がある場合や、プロダクトオーナーの定める品質基準に達しない場合にそれらの問題解決に努めます。

スクラムマスター

スクラムマスターはプロダクトオーナーと開発チームがスクラムを実行する手助けを行います。
スクラムマスターは現場のスクラムのルールを熟知し、スクラムチームが最高のパフォーマンスを発揮できるように働きかけます。開発チームが技術的困難に遭遇している場合は解決策を提示し、プロダクトオーナーがプロダクトバックログの更新に問題を抱えている場合はアドバイスします。また、スクラムチームの進捗に影響を及ぼす要因の排除や、スクラムの理解が不足しているメンバーに対してコーチングするなど、その役割は多種多様です。

まとめ(1)

スクラム開発における各役割とその関係の理解が少しでも進めば幸いです。
「要するにプロダクトの責任者と開発チームがいて、それらのサポーターを通して開発を進めるってこと?」
...今は恐らくこれぐらいの認識ではないでしょうか。実際にスクラムを導入されるとそれぞれの役割の重要性が見えてくるかと思います。
「役割はなんとなく理解できたけど、どのように「スクラムを実行する」の?開発以外のイベントって何?」
それでは次章以降、スクラム開発で発生するイベント(スクラムイベント)について解説します。

スクラムイベント

スクラム開発では、単に開発を進めるだけでなく、ソフトウェアの「透明性」を見出すためのアプローチを取る必要があります。そのために規則的に行われる5つのイベントがあり、これらをスクラムイベントと呼びます。

  • スプリント
  • スプリントプランニング
  • デイリースクラム
  • スプリントレビュー
  • スプリントレトロスペクティブ

スクラムイベントは定期的なミーティングとは違い、自分たちのスクラムのあり方に問題があれば解決し、より良い状況を作るために行います。このようにフィードバックを織り込んだイベントを実施することで開発を円滑に進めます。

スプリント

スプリントは開発のイテレーションのことです。スクラムチーム内で適当な期間を定めますが、通常は1週間〜3週間が多いです。
決められたサイクルで開発を進めることで、スクラムチームで完了できる仕事量を把握します。

スプリントプランニング

スプリントプランニングはスプリント開始時に行われる最初のスクラムイベントです。
「スプリント期間内で何ができるか(何をするか)」を明らかにするミーティングであり、スクラムチーム全員が参加します。プロダクトバックログで優先順位の高いものから順に完了できそうなものを選び、選んだ項目について具体的なタスク量を明確化するために適当な単位でタスクを分割してリスト化したスプリントバックログを作成します。

デイリースクラム

デイリースクラムはいわゆる「朝会」であり、昨日したこと、今日やること、課題を共有する場です。
主に開発チームが行うスクラムイベントであり、スプリント期間中は決まった時間に毎日行います。そのスプリントのゴールが達成できそうかと、日々の仕事の進捗を把握します。また、デイリースクラムにはスクラムマスターも参加します。

スプリントレビュー

スプリントレビューはスプリントの成果物を披露し、プロダクトについてフィードバックを得るためのミーティングです。スクラムチーム全員が参加します。
スクラムチームの他にステークホルダースクラムチームに所属しない会社の経営陣、あるいは顧客など)を招待する場合もあります。開発チームはスプリント期間内に達成できたことと、達成できなかったことを伝え、次回以降何をどう作っていけばいいか議論します。

スプリントレトロスペクティブ

スプリントレトロスペクティブはスプリント終了時に行われる最後のスクラムイベントです。スクラムチーム全員が参加します。
いわゆる「振り返り」であり、スクラムチームの現状を見直し、次回以降のスプリントでより良い仕事を行うための改善策を出していく場です。開発チームとスクラムマスターが中心になって進め、次回のスプリントに向けてのアクションプランを出します。

まとめ(2)

スクラム開発の進め方が理解できたでしょうか。本当はもう少し細かい話もあるのでが、ざっくりとまとめると

  • 計画→開発→お披露目→振り返り→(以下、繰り返し)

となります。イテレーションが設定されているおかげで問題に気付きやすくなり、改善や後戻りしやすいシステムになっています。これこそがスクラム開発の醍醐味であり強みでもあります。これからスクラムを始める人にとって、今回の記事が少しでも参考になれば幸いです。

Copyright © RAKUS Co., Ltd. All rights reserved.