スクラム未経験者が「SCRUM BOOT CAMP」で学んだことメモ

最近、PoCを多くやっておりスクラムから何か得られることがあるだろうと、[「SCRUM BOOT CAMP THE BOOK」](https://amzn.to/3s3HeIZ)を読みました。その時の個人的なメモです。
漫画もあり初心者にとってとても読みやすい本でした。本気でスクラムやるなら手元に置いておきたいと思いました。

<a href="https://www.amazon.co.jp/SCRUM-BOOT-CAMP-BOOK-%E8%A5%BF%E6%9D%91%E7%9B%B4%E4%BA%BA-ebook/dp/B00DIM6BMI?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=scrum+boot+camp&qid=1618124997&s=digital-text&sr=1-2&linkCode=li2&tag=yoheifukuha06-22&linkId=2b0a79c97662e8da217c6cde90317fe1&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00DIM6BMI&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=yoheifukuha06-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=yoheifukuha06-22&language=ja_JP&l=li2&o=9&a=B00DIM6BMI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

# メモ内容
## 基礎編: Scrumってなに？
Scrumはアジャイル開発の手法の一つ。常に進む方向を調整しながら目的を達成できるプロダクトをつくるために、全員が一丸となって行うべき作業・会議・成果物を定めたもので、以下の特徴を持つ。

- **プロダクトバックログ**: 要求を常に順番に並び替えて、その順にプロダクトを作る
- **タイムボックス**: 固定の短い時間に区切って作業をすすめる
- **透明性**: 現状の進捗や問題点を常に明らかにする
- **検査**: 定期的に進捗状況や作っているプロダクトが正しいのか、仕事の進め方に問題がないかを確認
- **適応**: 進め方に問題があったり、より良い方法があれば進め方を変更

### 成果物
- **プロダクトバックログ**: 実現したい要求をリストにして並び替える。常にメンテナンスして最新に保つ。
- **スプリントバックログ**: プロダクトバックログをタスクに分割した一覧
- **プロダクト**: リリース判断可能なプロダクト

### 登場人物

- **プロダクトオーナー**: プロダクトに対して責任を持ち、プロダクトバックログを最新に保つ
- **開発チーム**: 3から9人で構成し、プロダクトの開発を行う。上下関係なし。
- **スクラムマスター**: スクラムがうまくいくようにする人

### 会議体

- **スプリント計画ミーティング**: 2部構成
    - 第一部: プロダクトオーナーは何を欲しいのか、開発チームはどれくらい作れそうか。
    - 第二部: 開発チームはどうやって実現するか
- **デイリースクラム**: 15分で昨日やったこと、今日やること、課題を確認。直近のイベントや会議、メンバーの健康状態や帰宅予定時間を連絡するやり方もあるらしい。
- **スプリントレビュー**: 開発チームの成果物をプロダクトオーナーが確認
- **スプリントレトロスペクティブ**: うまくいったこと、今後改善すべき点の整理。今後のアクションプランを作る。

## 実践編: どうやればうまくいくの?
気になった点をメモしていっているだけなので、抜け番だらけです。

### 04. 見積りをしていく
見積工数を[フィボナッチ数](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0)(0, 1, 2, 3, 5, 8, 13 ...)だけで行う、というのは初めて聞きました。工数が多くなるほど不確定要素が大きくなるので、数と数の間を空けるというものらしいです。実際に使えるかわかりませんが、考え方が面白かったのでメモしておこうと。

### 05. 見積りをより確実にしていく
**見積りポーカー**という方法を初めて知りました。開発チームが全員でプロダクトバックログに対して見積りの数字を出し、根拠とともに話し合っていく方法です。Scrumでは開発チームに上下関係もないため、みんなで決めていくタイプの方法です。開発チーム内の納得感や一体感が出るのでは、と思いました。

### 06. プロジェクトの計画を立てる
スプリントごとに終わらせるポイント数を**ベロシティ**と呼び、ベロシティを基準にして計画を立てます。ただ、ベロシティはメンバーの参加度合いが常に一定でないと計画立てにくい。
リリースに関しては、リリース固有の作業(本番デプロイ、成果物納品など)もあるので注意が必要。リリースに慣れていない開発チームであれば、リリーススプリントという通常のスプリントと分けることもあり。

### 07. 詳細な計画を立てる
スプリント計画ミーティング第二部で実施するのが詳細な計画立案。会議やメールチェックなどもあるので１日に使える時間は5から6時間と考える。
**タスクの単位は1日以下にして、半日から数時間程度**まで細かくしているらしい。フル参加でないPoC向けチームでそんなのできるかな・・・細かい計画苦手だし。

### 09. 何が終わったかを明確にする
スプリントはスプリントレビューとスプリントレトロスペクティブを実施して終わります。
「**調査した内容はWikiにまとめてある**」が完了の定義の一つにありました。今までGitHubのWikiって使ったことなかったですが、たしかに便利そう。毎回、ファイルに書いていたりするの面倒だったのですよね。

### 10. 状況をうまく把握する
**タスクボード**と**バーンダウンチャート**を使って状況の可視化をするらしいです。バーンダウンチャートの参考。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134273/eab67339-ad8f-dd87-fdd3-60bc69b30174.png)

### 18. より良い状態にしていく
**妨害リスト**を作り、管理していく。妨害リストはスクラムマスターが対応する。スクラムチームを理想に近づけるためのToDoリスト。例: XXについての知見がメンバーにない。そのため、チーム外から知見がある人を探してWorkshopを実施。


# 疑問に思ったこと: リーダーについて
開発チームにリーダは立てないらしい。それで、いいの？と思ってググるとこんな記事もありました。

https://jumperson.hatenablog.com/entry/2013/03/21/080608