今回は、Scrum Guideをはじめとした様々な書籍や資料を読んだり、業務でスクラムマスターとしてやっていく中で自分が腑に落ちた部分を書いていこうと思います。粗いところは少しずつ加筆して行こうと思っています。今まで読んできた主な書籍や資料は、参考資料として最後にまとめておきます。
そもそもアジャイルとは
- アジャイルソフトウェア開発宣言
- アジャイル宣言の背後にある原則
- Don't Do Agile, Be Agile.
- アジャイルはするものではなく、目指すべき状態
- 自分の理解では、アジャイルとは変化(市場, 要件, 技術, 組織構造, 人, ...)に対して、問題を見つけ、仮説を立てて検証を行い、変化に対応していくことを自立してできる状態、を指すと思っています
スクラムとは
- 現状を把握するフレームワーク
- Scrum Guideに則る
- スクラムは経験的プロセスを基本としている
- 経験したことから学ぶ
- 具体的に起きたこと、経験したことを元に業務を進めていく
- 机上の空論にしてしまうと、結論がでない、メンバーの理解が得られない、背景の共通認識を得られない、といったことが起こりうる
- 経験的プロセスは以下の3つの柱によって支えられている
- 透明性
- 何を作るか
- 誰がやるか
- いつやるか
- なぜやるか
- どうやってやるか
- 検査
- 成果物のレビュー
- プロセスのレビュー
- 適応
- 問題に対して柔軟に対応する
- 透明性
スクラムの役割
- ProductOwner
- 「プロダクトのROIを最大化すること」に責任を持つ
- ROIを常に考えて、最小の機能で最大の効果を得られるようプロダクトを導いていく
- Team
- 「ScrumTeamの生産性を最大化すること」に責任を持つ
- ScrumMaster
- 「ScrumTeamが実現したいことを実現する確率を最大化すること」に責任を持つ
- 自走できるチームを作りあげることや、チームの問題を浮き彫りにしやすくする仕組みや支援を行う
スクラムイベント
- スプリント
- 目的
- 決まったタイムボックスを設けることで、スクラムチームのベロシティ(生産性)を測定するため
- 2~4週間のタイムボックス
- プロダクトの方針と今やっていることに乖離が出た場合POがスプリントの中止をおこなうこともできる
- 目的
- スプリントプランニング
- 目的
- スクラムチームがスプリントで行うタスクの深い理解を得るためにおこなう
- 開発チームが自律的に動く環境を作るため
- プロダクトバックログの中から、スプリントで実現するアイテムを選ぶ
- アイテムの数は、前スプリントまでの実績(ベロシティ)を参考にする
- ベロシティを計測するために、アイテムを実現するための想定作業見積もりを相対的なポイントとして開発メンバーで決定する
- プランニングポーカーがよく使われる
- 開発メンバーのポイントが揃うまで議論する。議論することで認識のズレや仕様の理解を確認できる。
- アイテムを実現するために必要な作業を開発メンバーで洗い出す
- スプリントで達成する目標(Sprint Goal)を決める
- リファインメントなどでDefinition of Doneをあらかじめ決めておく
- 目的
- デイリースクラム
- プロダクトバックログリファインメント
- スプリントレトロスペクティブ
- スプリントレビュー
スクラムの成果物
- プロダクトバックログ
- プロダクトを実現するために必要な機能やユーザストーリーを優先度の高いもの順に並べたもの
- 一つ一つの項目をプロダクトバックログアイテムと呼ぶ
- それぞれのアイテムに対してDefinition of Doneを用意する
- スプリントバックログ
- スプリントで着手する予定のプロダクトバックログアイテムと、それを実現するための作業をまとめたもの
スクラムをなぜやるのか?
- そもそもチームとしてどういう状態を目指しているのか?
- 自己組織化されたチーム
- 変化に対して柔軟に対応し、利益を生み出すチーム
- 業界やメンバーなど、チームを取り巻く環境は常に変化する
参考資料
2017-Scrum-Guide-Japanese(PDF直リンクです)
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~
スクラム現場ガイド -スクラムを始めてみたけどうまくいかない時に読む本-