振り返りは何のためにするの？〜基本のき〜


## はじめに
各開発案件ごとに PJ メンバーで振り返りをしているのですが
**そもそも振り返りって何のためにするんだっけ？** だったり、
**何となく振り返りをして満足してしまう** みたいなこともあったり。
振り返りのレビューでありがたい FB（ボコボコ）こともあったり。
ちょうど社内でレクチャーをすることになり、
改めて振り返りの目的や、実践方法をおさらいしようと思い、そのアウトプットです。

## 前提

今回は開発プロセスの中で、アジャイルを選択したときのチームとしての振り返りがメインです。
個人やウォーターフォールでの開発とは少し違ってくる部分もあるかと思いますのでご了承ください。

## 振り返りは何のためにするのか

「そんなの、**次に活かすため**に決まってるでしょう」
以前の私はきっとこんな顔で言っていました
![jiman_hanashi_woman.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/883905/da61701d-7811-b565-f9e0-f0221ee3de87.png)


##### 「**じゃあ次に活かせるようなものじゃなかったらどうするの？**」

##### 「**次に活かすって何？**」

![dog2_2_surprise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/883905/9cc748c5-8980-78b9-76a7-29e176992976.png)


（人間から犬になりました）

一見聞くと、次活かすというのは正解のように感じますが、不十分だなと。

例）
今回の振り返りで、良かったこととして「ペアプロ」があがっていたとしましょう。
→ じゃあ次の案件でもペアプロしようぜ ★ とはならないですよね
・ペアプロしたことが**なぜ良かったのか**
・**どういう点が（何が）良かったのか**
・**どういうときに有効なのか**

など深掘りしていく必要があります。

## 振り返りの目的

ずばり、この 3 つです。

① 立ち止まる
② チームの成長を加速させる
③ プロセスをカイゼンする

#### ① 立ち止まる

日常の業務に追われていると、視野が狭くなってきがちです。
視野が狭くなってくると、目の前のことが優先になってしまったり。

だからこそ、**意図的に立ち止まることが振り返りの第一歩**になります。
個々人で立ち止まるのではなく、「みんな」で立ち止まること、
同じ課題に対して、全員で立ち止まって考えたり、視点や視野を揃えることが重要です。

#### ② チームの成長を加速させる

こちらは個人的には意外でした。
各イベント（朝会、振り返りなど）でしか必要な情報を共有しない環境ではなく、
必要であれば高い頻度でコミュニケーションをとれるような環境を作るために
振り返りを上手く使っていくようなイメージです。

振り返りの手法は様々あるので、
コミュニケーションが活発になったり、信頼関係が構築しやすいような手法を
取り入れることで、チームとしての成長を加速させていきます。

#### ③ プロセスをカイゼンする

ドヤ顔で言っていたやつに近いものがこちらです。
「良いことは何度も継続できるように、失敗は繰り返さないように」 だと
シンプルではありますが、
これだと、ペアプロ良かった → ペアプロしよう！とあまり変わらないですよね

だからこそ、何が良かったのか、なぜ良かったのか、など深掘りをした上で
**成果を出すための行動を選択できる状態にまで持っていく** ことが大事です。
ここが難しいですよね、、、（後ほど詳細記載します）

また、カイゼンする際のポイントとして **「小さく、少しずつ」** が鉄則です。
プロセスの変更など、上手くいくかわからないものを
いきなり大きく変更するのではなく
すぐに戻せるように「小さく、少しずつ」です。
これはアジャイルの文脈だからこそ色濃く出る部分ですね

## 振り返りの流れ

振り返りの流れです。

① 事前準備をする
② 場のセッティングをする
③ 出来事を思い出す
④ アイデアを出し合う
⑤ アクションを決める
⑥ 振り返りをカイゼンする
⑦ アクションを実行する

具体的に何を実施したのかも含めて記載できればと思います。

#### ① 事前準備をする

まず、第一に、振り返りのファシリテーターを決めます

その上で、以下の準備、決定しておきます

- 日程
- 場所（オフラインなのか、オンラインなのか）
  - オフラインの場合
    - 会議室や付箋、ホワイトボードなどツールの準備
  - オンラインの場合
    - 事前にどのツールを使うのか（Miro や Google JamBoard など）
- 当日のアジェンダ
  - 事前に各自考えておくべきテーマがあるか
- どの振り返り手法を使うのか（KTP や YWT など）

#### ② 場のセッティングをする

オフライン/オンライン共通ですが、日々の業務もあるので、
振り返りだけに集中できる環境をセッティングできるのがベストです。

#### ③ 出来事を思い出す

発散、深掘りのパートに分かれます

- 発散
  各自で、出来事を思い出しで書き出していく時間です。
  時系列、感情、学びなどを起点に書き出していきます
  このときのポイントとしては、**「事実」なのか「解釈」なのか**を
  明確にしながら書き出していくこと。
  後でチームメンバーと深掘りをしていくときに、大事になってきます。

- 深掘り

  - 各自で出した出来事に対して、メンバー間の認識をあわせる
    例えば A さんも B さんも「ペアプロをしたことが良かった」と記載があったとしても
    A さんは「**開発スピードが上がったこと**」
    B さんは「**ジュニアメンバーの育成に繋げられたこと**」が良かったなど
    同じ「ペアプロをした」という事実に対しても解釈が違ってきます。
    この解釈のすり合わせをしていきます。
  - 各項目に対しての深掘りを行う
    なぜ良かったのか、何がよかったのかなど
    **共通認識を持てる、再現性を持てるまで** 深掘りをしていきます。

#### ④ アイデアを出し合う

ここでのポイントはチームが次にするべきこと、チームで取り組みたいことなど、
**主語は「チーム」** であること。
ここでも出来事を書き出したのと同じように
各自書き出し → 共有 → 深掘りを行っていきます。

#### ⑤ アクションを決める

④ で出てきたアイデアからどのアクションとするかをここで決定します。
目的でも出てきた「**小さく、少しずつカイゼン**」です。

#### ⑥ 振り返りをカイゼンする

振り返りが形骸化しないように、
振り返りの後、5 分でもいいのでその場で時間をとることが重要です。

#### ⑦ アクションを実行する

⑤ で決まったアクションの中から優先度を決めて実行していきます。
ここで実施したアクションもまた振り返り、カイゼンの繰り返しです。

#### 終わりに

各手法までいく手前でかなりの分量になったので前半後半で分けます。
後半は、具体的な手法と実際に取り組んだ内容も一部記載できたらと思います。

## 参考文献

- アジャイルなチームをつくる ふりかえりガイドブック 始め方・ふりかえりの型・手法・マインドセット

https://www.amazon.co.jp/%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E3%81%AA%E3%83%81%E3%83%BC%E3%83%A0%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8B-%E3%81%B5%E3%82%8A%E3%81%8B%E3%81%88%E3%82%8A%E3%82%AC%E3%82%A4%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E5%A7%8B%E3%82%81%E6%96%B9%E3%83%BB%E3%81%B5%E3%82%8A%E3%81%8B%E3%81%88%E3%82%8A%E3%81%AE%E5%9E%8B%E3%83%BB%E6%89%8B%E6%B3%95%E3%83%BB%E3%83%9E%E3%82%A4%E3%83%B3%E3%83%89%E3%82%BB%E3%83%83%E3%83%88-%E6%A3%AE-%E4%B8%80%E6%A8%B9/dp/4798168793

- アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

https://www.amazon.co.jp/%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9-%E9%81%94%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AB%E5%AD%A6%E3%81%B6%E7%8F%BE%E5%A0%B4%E9%96%8B%E7%99%BA%E8%80%85%E3%81%AE%E7%BF%92%E6%85%A3-Venkat-Subramaniam/dp/4274066940