とことんDevOps | 日本仮想化技術が提供するDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けするとことんDevOpsでは、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果など、DevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、アジャイル開発、コンテナ開発など

開催予定の勉強会

各種SNSのフォローもよろしくお願いいたします。

スクラム開発とは 〜スクラムガイドを読んでみよう〜

アジャイルな開発手法の中で、スクラム開発は人気のある手法の一つです。その内容については、スクラムガイドを読んでみるのが一番理解が進むでしょう。日本語版が用意されているので、是非一読してみて欲しいのですが、スクラムについて初めて学ぶという人には用語が独特で分かりにくいところもあるかと思います。概念や用語が相互に関連しているため、頭から読んでいけば分かる、という構成にはなっていません。何度も繰り返し読む必要があります。
そこで、読み進める上で必要となる用語について事前に理解をしておくために、簡単に解説してみようと思います。
 
スクラムガイド 2020年版(PDF)
 

「スクラムの定義」から読み解く

スクラムの定義に、以下のような記述があります。
 
  1. プロダクトオーナーは、複雑な問題に対応するための作業をプロダクトバックログに並べる。
  2. スクラムチームは、スプリントで選択した作業を価値のインクリメントに変える。
  3. スクラムチームとステークホルダーは、結果を検査して、次のスプリントに向けて調整する。
  4. 繰り返す。
 
ここでいくつかスクラムで使われる言葉が出てきていますが、それらの定義もスクラムガイド内で言及されていますが、簡単に解説を加えておきます。
 

プロダクトオーナー

開発するプロダクトの価値を最大化することの結果に責任を持つ人。開発プロジェクトの総責任者的な立場。原則一人。日本的な組織の場合、役職者が名目的に責任者になったり、合議制になったりすることが多いですが、それが結果として意思決定が遅くなる原因にもなっていることに注目すべきでしょう。
 

プロダクトバックログ

「プロダクトの改善に必要なもの」とスクラムガイドでは定義されていますが、開発すべき個々の機能とでも捉えたらよいでしょうか。ウォーターフォール型開発の場合には詳細設計に当たるようなもの。アイデアを出す際には付箋に記入して貼ったりする粒度になりますが、できるだけ細かく、詳細に定義する必要があります。
 

スクラムチーム

開発に取り組むチームのこと。プロダクトオーナーやスクラムマスターが開発者としても参加する場合もあります。
 

スプリント

開発を行う期間のこと。大体1週間から2週間に設定する。この開発期間でプランニングからレビューを行う開発作業を繰り返すのが基本的な開発の進め方になります。繰り返しで進めていくことをスクラムガイドでは「イテレーティブ(反復的)でインクリメンタル(漸進的)なアプローチ」としています。
 

ステークホルダー

スクラムガイド内でステークホルダーの明確な定義はありませんが、一般的には「利害関係者」とされます。主にプロダクトオーナーとコミュニケーションを取るので、たとえば社内システムであれば実際のユーザー、外部向けのサービスであれば間接的な利用顧客、直接的にはマーケティングや営業担当者がステークホルダーにあたると考えられます。
 

スクラムマスター

スクラムの定義には出てきませんでしたが、プロダクトオーナーやスクラムチームを支援する一種のコーチ役。その役割はスクラムチームの状況によって大きく異なるでしょう。もし、スクラムの進め方に慣れていないチームの場合ならば様々なスクラムイベントを行うことをリードする役割を担うでしょうし、チームがスクラムに慣れてくれば役割は無くなると言ってもよいかもしれません。
 

透明性・検査・適応

「経験主義のスクラムの三本柱「透明性」「検査」「適応」」とされているものです。
 

透明性

開発に関わることがオープンで認知可能な状態にあること。ウォーターフォール型開発では、要求仕様から詳細設計のプロセスで「なぜそうなったのか」が分からないことが多いですが、そのようなことが無いようにすべきという意味合いを感じます。
 

検査

作成物や進捗状況に対する検査。ウォーターフォール型開発における最終工程でしか行われない受け入れテストと比較して、「頻繁かつ熱心に」検査を行うことが重要と強調されています。
 

適応

プロセスなどの調整を行っていくこと。「適応」という言葉は受け身のニュアンスで捉えられがちですが、ここでは能動的に改善していくことという意味合いで捉える必要があります。
 

スクラムイベント

スクラムはスプリントを繰り返すことで開発を進めていきますが、スプリントには以下の4つのイベントで構成されます。
 

スプリントプランニング

スプリント開始時にプロダクトバックログからスプリント期間中に行う作業を決定します。決定した事項をスプリントバックログとも呼びます。
 

デイリースクラム

毎日15分間、スクラムチームが行うイベント。開発の進捗の確認、その日の計画などを立てていきます。
 

スプリントレビュー

スプリントの成果を検査するイベント。デモなどを行うこともある。
 

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

「ふりかえり」などとも呼ばれる。スプリントにおける作業の進め方など改善すべき事項がないか、あればどう改善するかなどを検討し、以前の改善についても
 

スプリントの例

スプリントがこんな感じのスケジュールになる、という例です。月曜日は休日になることが多いため、スプリントの開始を火曜日、スプリント期間を2週間としています。
 
第1週火曜日
午後:スプリントプランニング
 
毎日
9時半よりデイリースクラム
 
第2週火曜日
午前:スプリントレビュー・レトロスペクティブ
午後:次のスプリントプランニング
 
以上、簡単ですが、用語の解説などをしてみました。スクラムガイドの他、いくつか関連書籍も出ているので、そのようなものも参考にして、是非スクラム開発に挑戦してもらえればと思います。