アジャイル開発でスプリント開始までにやるべきこと

# はじめに
弊社のようなJapanese Traditional Companyでもアジャイルへの関心は非常に高まっています。かくいう私もアジャイルでプロジェクトを推進しているところです。

実際にアジャイルをやってみようとなると、いろいろとわからないことだらけです。特に、**「スプリントに入るまでに何をしておけばいいのか？」**がよくわからなかったので今回まとめてみました。

以降、私なりに解釈した内容を私の言葉で表現するので一般的な表現とは異なる部分があるかもしれませんが、ご了承ください。

# スプリントに入るまでにすること
細かく言うと環境構築や資料準備などもあると思いますが、主たる作業は以下であると認識しています。

- [インセプションデッキ作成](#インセプションデッキ作成)
- [ユーザーストーリー開発](#ユーザーストーリー開発)
- [プランニングポーカー](#プランニングポーカー)
- [初期プロダクトバックログ作成](#初期プロダクトバックログ作成)
- [初期リリース計画作成](#初期リリース計画作成)

# インセプションデッキ作成
インセプションデッキとは、アジャイル開発に携わるメンバー一人ひとりがプロジェクトの目的、目標、リスク、利害関係者などの**プロジェクトの全体像を理解し、かつ共通認識を形成するための活動**、またはその活動による成果物のことです。

こういう説明もあります（太字部分は筆者によるもの）。
>The inception deck (Figure 2, ​The Inception Deck​) is your **flashlight for dispelling the mist and mystery around your agile project. It’s a collection of ten tough questions and exercises** you’d be crazy not to do and ask before starting any project.
[Enter the Inception Deck](https://www.oreilly.com/library/view/the-agile-samurai/9781680500066/f_0026.html)

インセプションデッキには以下のような問いがあります（個人的に特に重要だと思うものを抜粋）。

- 我々はなぜここにいるのか
    - プロジェクトの背景、実現したい価値を考える
    
- やらないことリスト
    - プロジェクトとしてやるべきこと/やる必要のないことを明らかにし、スコープを明確化する
    
- 「ご近所さん」を探せ
    - プロジェクトに関係する利害関係者を洗い出し整理する
    
- トレードオフスライダー
    - プロジェクトとして重視する価値の順位を決定する(QCD, etc.)

## 参考資料

- [5分でわかった気になるインセプションデッキ](https://www.slideshare.net/TakaoOyobe/5-45195080)
- [インセプションデッキ の テンプレート (日本語版)] (https://github.com/agile-samurai-ja/support/tree/master/blank-inception-deck)

# ユーザーストーリー開発
ユーザーストーリーとは、一言でいうと**「要求」**です。しかしながら、単なる要求だけでなく、それを求める主体（役割・ロール）と理由（ビジネス的な価値）を記載することが求められます。

英語の説明の方がわかりやすいかもしれません。
>User stories are short, simple descriptions of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system.
[User Stories](https://www.mountaingoatsoftware.com/agile/user-stories)

ユーザーストーリーには受入条件を設定します。この受入条件がテスト項目になり、また見積もるうえでの基礎情報にもなるのです。

## 参考資料

- [ユーザーストーリーとは？](https://slide.meguro.ryuzee.com/slides/48)
- [ユーザー・ストーリー](http://www.e-ainet.com/UserStory.html)

# プランニングポーカー
プランニングポーカーとは、開発メンバーを中心に行われる、**各ユーザーストーリーの開発規模を相対的に見積もるための活動**のことです。

> Planning poker (also known as Scrum poker) is a **consensus-based, gamified technique for estimating, mostly used to estimate effort or relative size of development goals in software development.**
[What is Planning Poker in Agile?](https://www.visual-paradigm.com/scrum/what-is-agile-planning-poker/)

仕様も完全にわからない状態ですがから、なんとなくの開発規模しか見積もれません。しかしながら、**あるユーザーストーリーを基準に「これは何倍くらいの規模になりそう」という相対的な見積はある程度できるはずです。**その感覚をもとになんとなくの規模を見積もっていきます。

開発メンバー間で見積の大きさに差異が出た場合は見積の根拠を説明してもらいます。そのような会話の中でユーザーストーリーに対するメンバー間の認識のそごが明らかになることも多いため、非常に有益なアクティビティだと思っています。

## 参考資料

- [プランニングポーカー・オブジェクトゲームでアジャイルゲーム！～Agile 2011 Conference](https://enterprisezine.jp/iti/detail/3385)
- [プランニングポーカーのやり方](https://www.ryuzee.com/contents/blog/4664)

# 初期プロダクトバックログ作成
プロダクトバックログとは、**プロジェクトで対応すべき事項を優先順位をつけて並べたリスト**のことです。"プロジェクトで対応すべき事項"には当然ユーザーストーリーも含まれます。（というかそれがメインで、スプリントの途中で障害修正などのタスクが入ってくることになります）

>the Product Backlog is **an ordered list of everything that is known to be needed in the product.** It is the single source of requirements for any changes to be made to the product. The Product Owner is responsible for the Product Backlog, including its content, availability, and ordering.
[What is a Product Backlog?](https://www.scrum.org/resources/what-is-a-product-backlog)

プランニングポーカーが終わっているため、これでユーザーストーリーとその見積が整理されたことになります。ユーザーストーリーの実装による価値とそれにかかるコストを踏まえ、プロジェクトとして実行すべき順番を決定します。

このとき、優先度高・中・低などというつけ方はやめてください。全部高になります（笑）。順番をつけてもらうことがポイントです。

## 参考資料

- [プロダクトバックログ](https://www.slideshare.net/kakimomokuri/ss-48216891)
- [魅力的なプロダクトバックログで開発を楽しく！](https://kray.jp/blog/attractive-product-backlog/)

# 初期リリース計画作成
初期のプロダクトバックログをもとにリリース計画を作成します。初期リリース計画では、現段階の情報をもとにユーザーストーリーが何回目のスプリントで実装され、リリースに至るかを整理します。

>The goal of initial release planning is to estimate roughly which features will be delivered by the release deadline (presuming the deadline is fixed), or to choose a rough delivery date for a given set of features (if scope is fixed).
[Agile Development Release Planning](https://resources.collab.net/agile-101/agile-development-release-planning)

## 参考資料

- [How to Create an Agile Release Plan](https://www.lucidchart.com/blog/agile-release-planning)
- [Agile Development Release Planning](https://resources.collab.net/agile-101/agile-development-release-planning)

# 終わりに
突貫工事で書いたのでまた追記修正したいと思います。