スクラム開発について

目次

1.スクラムとは 
 スクラムとは、アジャイル型ソフトウェア開発手法の一つで、チームで効率的に開発を進めることができる方法をまとめたもの。
 ※アジャイル開発とは(本サイト内のページ)

2.歴史
 Jeff Sutherland、John Scumniotales、Jeff McKenna が1993年にオブジェクト指向プログラミング設計・分析ツールを構築したときに実践した反復型の開発手法がスクラムの元となり、「The Scrum Guide」のまとめられ更新も行われている。
 Scrum Guide
 https://scrumguides.org/

3.スクラムの開発手法

3.1 スクラムの定義と考え方
(1)スクラムの定義
 ①プロダクトオーナーはプロダクトバックログに依頼する。
 ②スクラムチームはプロダクトバックログの目標を達成するためのアイテムを決めて、このアイテムをスプリントの中でインクリメント(成果)に変える。
 ③スクラムチームと利害関係者はインクリメントが目標に達しているか検査し次のスプリントに向けて調整する。
 ④上記を繰り返して、プロダクトを完成させる。
 このような流れでプロダクトを進める方法がスクラムであり、進行役としてスクラムマスターを必要とする。

(2)スクラムの考え方
 スプリントの中で検査と適応のために次の4つの正式なイベントがある。
 ①スプリントプランニング
 ②デイリースクラム
 ③スプリントレビュー
 ④スプリントレトロスペクティブ(振り返り)
 これらが機能するためには、透明性(プロセスの見える化)、検査(問題を検出するイベントを設ける)、適応(検査の結果に対する対応)の仕組みを備える。

3.2 スクラムチーム
 スクラムチームは、スクラムマスター、プロダクトオーナー、および複数の開発者で構成され、1チーム10人以下が推奨される。
(1)プロダクトオーナー
 顧客の意思の代表としての役割と、プロジェクト完了を保障する役割を持つ。

(2)スクラムマスター
 スクラムフレームワークが正しく適用されていることを保証する役割と、チーム内外の組織間調停(ファシリテーション)と外部妨害に対処してフレームワークが機能する役割を担う。

(3)開発者
 各スプリントにおいて作業を完了させる役割を担う。

3.3 方法論
(1)プロダクトゴール
 評価可能なプロダクトのゴールを1つ設定し、チームとステークホルダーで共有する。

(2)プロダクトバックログ
 プロダクトバックログはプロダクトのゴールと、ゴールを達成するための要素の集まりであるプロダクトバックログアイテム(PBI)から成る。

(3)インクリメント
 インクリメントはプロダクトバックログアイテム(PBI)の完成形の成果物のこと。

3.4 スプリント
 スプリントはプロダクトバックログアイテム(PBI)の開発を行う期間のことで、計画・開発・日次見直し・レビュー・調整の工程を含む。スプリント内ではこれらの工程の有無と順番のルールはない。
(1)スプリントのイベント
 スプリントでは検査と適応のために以下の4つのイベント(プロセス)を組み合わせて用いる。
①スプリントプランニング
スプリント期間の最初に行い、スクラムチームでスプリントバックログの生成、チームメンバー間の認識差異がないことの最終確認を行う。
②デイリースクラム
 スプリント期間中、チームは毎日スクラム会議を開く。スクラムマスターはチーム全員に対して、作業実績、問題、作業予定などの質問を行い開発者が答える。問題が報告された場合はスクラムマスターが即座に意思決定する責任と、問題が外的要因によるものである場合はその解決の責任を負う。
③スプリントレビュー
 スプリント最終盤にはスプリントレビューを行い、成果物が目標とする価値(プロダクトゴール)を実現しているかレビューする。インクリメントを中心にプロダクトが評価され、必要に応じてPBIが追加・変更される。このレビューには顧客・プロダクトオーナー・開発者(場合により営業・マーケター)が参加する。
④スプリントレトロスペクティブ(振り返り)
 スプリント終了時には振り返りを行い、開発工程への適応を行う。スプリントで発生した問題とその改善策などを検討し、必要に応じてプロセス改善のPBIを追加する。

(2)スプリントバックログ
 スプリントバックログは当該スプリントで実現したい成果(スプリントゴール)、そのために必要なPBI、PBIを生成する手順計画から成る。スプリントバックログはデイリースクラムで進捗を検査可能な程度の粒度が必要。スプリントプランニングで生成され、状況の変化に応じて適応する。

(3)スプリントゴール
 スプリントゴールはスプリントがプロダクト改良を通じて提供する価値の目標である。プロダクト(what)やプロダクト開発手順(how)の他、価値(why)に注目してスプリントゴールを設定する。

(参考文献)
・The Scrum Guide
 https://scrumguides.org/
・スクラム (ソフトウェア開発)(Wikipedia)

The end