スプリントプランニングはどうやってやるの？

# Sprint Planningとは何？
スプリントプランニングとは、スプリントの一番最初のイベントです。スクラムチーム全員が参加します。必要に応じてSMEに同席してもらうのもOK。
スプリントの長さによって、ミーティングのタイムボックスが決まっています。

| Sprint     | Timebox         |
|------------|-----------------|
| 1ヶ月      | 8時間           |
| 2週間      | 4時間           |
| 1週間      | 2時間           |

<sub><font color='red'><ins>タイムボックスとは必ずしもその時間までやらないといけないことではありません。早く終わってもOKです。しかし、それを超えてはいけません。</ins></font>
つまり、１ヶ月のスプリント計画が2時間で終わったならば、無理やり8時間まで伸ばす必要がないとの事です。逆に8時間超える時間までダラダラと続くのもよくありません！
</sub>

<sub>※スクラムの基礎について[こちらの記事](https://qiita.com/_dakc_/items/7eae44b6a7bc2aff0c7e)に書いています。</sub>

## え、何するの？
最初に書いたようにスプリントプランニングは一番最初のイベントで、スプリントの始まりの意味をします。<ins>***ここではスプリントで実⾏する作業の計画を⽴てます。***</ins>

> 
計画を立てるのがプロダクトオナーでもなく、スクラムマスターでもなく、開発者でもありません。では、誰が立てるのでしょうか？

<sub><font color='blue'>スクラムチーム全員が協力し合って立てます。**Team Collaboration**がキーとなります！</font></sub>

プロダクトオーナーがとても重要な役割を果たします。プロダクトゴールを達成するためにこのスプリントで何をすべきか、参加者が議論できるように努力する必要があります。もっと簡単な言うと、バックログアイテムの中から開発者が高い価値のあるアイテムを選定できるように促します。

## 結局どうやるのよ？
#### ①スプリントゴールの設定
まずは、プロダクトオーナーが今作っているプロダクトの価値をどうすればこのスプリントで上げる事ができるのかについて話します。別の言い方をすると、***このスプリントはなぜ価値あるのか***について話します。
例、
> プロダクトのゴールが「会社の売り上げを1億円上げる」です。最近は〇〇Payの需要が上がっている。我々のXX製品が〇〇Payの対応できると第2四半期には1万人の新規ユーザーが獲得できると思われる。そうなれば500万の売り上げアップに貢献できる。

プロダクトオーナーの説明が分からなかった場合は開発者らが質問をしてもOKです。上の例を聞くとこのスプリントを通して売り上げアップに繋げられる事にみんなが気付くと思います。そしてスプリントの価値を理解したところで、それを実現するためにみんなが話し合ってスプリントゴールを設定します。
例、

```
Sprint03 スプリントゴール -> 我々のXX製品に〇〇Pay機能追加
```

上記の例はとてもシンプルですが、個人的には下記の書き方が好きです。ゴールを設定する時に「SMART」というテクニックを使うといいらしいです。
![original source: scrum.org](https://scrumorg-website-prod.s3.amazonaws.com/drupal/inline-images/example%20SG.jpg)

#### ②スプリントで実施するバックログアイテムの選定
スプリントゴールが決まったら、それを達成するために***このスプリントで何ができるのか？***について話し合いをします。つまり、プロジェクトバックログの一覧からこのスプリントで実施するアイテムを選定します。このスプリントでどれぐらいのアイテムを選ぶかが最初は難しいです。スプリントを回して行くにつれて、過去の経験を活かしてより正しく予測できるようになっていきます。
ここでは***「Definition of Done (DoD)」***もとても重要です。**DoD**はプロダクトに対して作りますが、そのスプリント用に改良してもOKです。

例

- 全てのアクセプタンスクライテリア（Accepatance Criteria）が満たされtている
- ユニットテストカバレッジ > 90%
- 機能テスト合格
- 既知の不都合なし
- コードレビュー合格

<sub>日本語版のスクラムガイドではDoDの事を「完成の定義」と記述しています！</sub>

**Acceptance Criteriaの例**
![Original Source - https://www.scrum.org/resources/blog/done-understanding-definition-done](https://scrumorg-website-prod.s3.amazonaws.com/drupal/inline-images/USTEx1.png)

**Behaviour Driven Development (BDD)**
いけている所では、「アクセプタンスクライテリア（Accepatance Criteria）」をBehaviour Driven Development (BDD) を使って、テストも自動でやります。
![BDD](https://image.slidesharecdn.com/20161012-agiliabudapest-examplemapping-gasparnagy-161012110106/95/givenwhenthenready-sprint-planning-with-example-mapping-agilia-budapest-2016-6-1024.jpg?cb=1476270202)
<sub>source: [https://www.slideshare.net/gasparnagy/givenwhenthenready-sprint-planning-with-example-mapping-agilia-budapest-2016](https://www.slideshare.net/gasparnagy/givenwhenthenready-sprint-planning-with-example-mapping-agilia-budapest-2016)</sub>

#### ③ バックログのアイテムの細分化

最後に、***選択した作業をどのように成し遂げるのか？***について話し合いをします。

選択したアイテムが**DoD**を満たすためにどうすればよいか計画します。例えば、バックログアイテムを小さなサブアイテムに分けます。細分化する基準として1日以内に完了できるよう分解すると良いですよ。
<sub><font color="blue">どのように細分化するのか決めるのが開発者です。プロダクトオーナーやスクラムマスターが指示するのがよくありません！</font></sub>

ちなみに、バックログアイテムがDoDを満たせば、インクリメントに変わります。つまり、

```
「ステータス=Done」のバックログアイテム = Increment
```

## で、アウトプットは何？
スクラムチームが何時間もかけて計画したのにアウトプットがなかったら困りますね！
「スプリントプランニング」のアウトプットが下記３点です。

- スプリントゴール
- スプリント内で対応するバックログアイテム
- 各バックログアイテムをDoneするための計画

これらの3項目をまとめて<ins>スプリントバックログ</ins>と言います。
  

<sub><font color='blue'>つまり、スプリントプランニングのアウトプットが「***スプリントバックログ***」です。</font></sub>