レビューの合格を目的にしないで！ ~自分の失敗経験から学んだこと~

## はじめに
　不具合修正や新機能開発を行う上でコードレビューやテストケースレビューは避けて通れません。そのため「レビューの合格」を目的に取り組む人もいるのではないでしょうか。この記事はレビューの合格を目的に取り組んでいた自分の失敗経験から学んだことと、自分が今後意識したいことをいつでも見返せるようにまとめたものです。

### この記事でわかること
- レビューの合格を目的とせず、より良いものを作っていくために伝え方を意識すること
- レビュワーに理解してもらうために今日から実践できる7つのこと

### この記事の対象者
- 自分と同様にまだレビューに慣れていない方
- レビューの合格を目的にしている方

## レビューの合格を目的にしてはいけない
　ここではレビューの合格を目的にしていた自分の失敗経験から学んだことを3つ挙げます。

### レビューでは相手に分かりやすく伝えて理解してもらおう
　本来のレビューの目的は第三者の視点を取り入れることで、より良いものを作ることです。そのためには、自分の考えを分かりやすく伝え、レビュワーに理解してもらう必要があります。レビューに合格しようとすること自体は間違いではありません。しかし合格に囚われすぎて、本来の目的である「レビュワーに理解してもらう」という視点が欠けてしまうと、レビューでの伝え方やメンタル面で違いが生じます。

### レビュイーとレビュワーの情報量の差は意識しよう

　レビュワーが理解できるレビューを実現するには、本当に必要な情報を考えて整理してから伝えるべきです。しかしレビューの合格を目的としていた自分は、自分の考えについてレビュワーを納得させようと調べたことを整理せず、すべて伝えるレビューとなっていました。レビュー内容について自分はわかっていてもレビュワーからしたら理解が難しい箇所は数多くあります。知っているだろうという前提で話を進めてしまうと、少しずつ理解できない内容が積み重なってしまい結果として良くないレビューとなってしまいます。そのため、レビュイーとレビュワーの情報量の違いを常に意識し、伝える情報を整理してから実施することが、レビューの目的を達成するうえで重要です。

### どうせレビューをやるならプラスの気持ちで臨もう
　レビューの合格を目的にしていると、自分のレビューで相手が納得してもらえるのかという不安に潰されてしまうことがあります。当時の自分もレビュー前はいつも緊張していました。加えて前述したように相手が理解できないレビューとなってしまい、せっかく準備しても成果が出ず落ち込んでしまいます。しかし良いものを作るという目的でレビューに臨むと、納得してもらえるか心配というよりは自分の考えを相手に分かりやすく伝えるにはどうすればいいかという方向に注力できます。また合格不合格ではなく、自分の考えや見落としていた点についてFBをいただこうというプラスの思考でレビューに臨めます。

　以上の理由から、レビューでは合格を目的とするのではなく自分の考えを分かりやすく伝え、レビュワーに理解してもらうことを常に意識すべきと自分は気づくことができました。

## レビュー時に意識することはなんだろう
　繰り返しになりますが第三者の視点を取り入れることで漏れがないかを確認し、より良いものを作る為には自分が書いたコードの意図や考えを分かりやすくレビュワーに伝える事が大切です。レビュー時に自分の考えをわかりやすくレビュワーに伝える上で意識したほうがいいことをまとめました。（自分の経験を踏まえて作成）

**準備編** 
- レビューを通して相手にどうしてほしいか考える
- 話す情報を整理する

**レビュー中編**
- 結論から話す
- レビューの流れを説明する
- キリが良いところで、質問や指摘がないか聞く
- レビューが途中からのスタートの場合は、これまでのあらすじを冒頭に説明する

**資料作成編**
- キャプチャした画像を利用するときはわかりやすさを意識する
:::note warn
注意
分かりやすく伝えようと資料作成にこだわるよりかはレビュー中にどう話すべきなのかをより重視したほうがいいという指摘を当時いただきました。
:::

### 準備編
#### レビューを通して相手にどうしてほしいか考える
　レビューを通して相手にどうしてほしいのか、その目的によって伝え方は大きく異なります。レビュワー視点でも今回のレビューでどのような点に注目して考えればいいのか、事前に知ることのできます。今回のレビューの目的はなんなのか、レビュー準備中に一度考えてから本番にいくことで有意義なレビューにすることが可能です。

![forQiita (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/998a9e30-08f5-cbe5-b4d9-dc42ca7dbdce.png)

#### 話す情報を整理する
　「レビュイーとレビュワーの情報量の差は意識しよう」で伝えたように、レビュイーは理解できていても初めて聞くことになるレビュワーにとっては、理解が難しい箇所は数多くあります。その際に、今回のレビューの目的を達成するには相手はどんな情報が必要なのか？を一度考えたうえで、調べた内容をすべて話すのではなく情報を整理してから話す必要があります。

![forQiita (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/f0c1edf1-b997-967d-2f83-875cf2f542d3.png)

### レビュー中編
#### 結論から話す
　どの場面でも結論から話すことは重要です。自分の考えを分かりやすく伝えてレビュワーに理解してもらう事が重要なレビューでも結論から話すことは求められます。結論から話さないと要点が伝わらず、どこに焦点を当てればよいかやFBのポイントがわかりにくくなります。特に難しい内容の場合、途中で何を伝えたいのかが曖昧になってしまいます。本番になると緊張することもあるかもしれませんが、話す情報を事前に整理し、どのように伝えるかを決めていれば難しくはないと思います。

![forQiita (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/a8bd0f6a-9a13-08a0-46d9-20c2643c76d0.png)

#### レビューの流れを説明する
　レビューの流れを説明することで、レビューの全体像をレビュワーが把握できます。これからレビュイーがどのように話すのか、どこに焦点を当てて聞けばよいのか・FBすればよいのかをレビュワーは考える事ができます。またレビュイーとしてもレビューの流れを事前に考える事によって、話す情報をより整理しやすくなるのではないでしょうか。

![forQiita (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/b64afbe0-6451-d3ae-69ff-a5f9d7999456.png)

#### キリが良いところで、質問や指摘がないか適宜聞く
　レビューの本当の目的は自分の考えを一方的に伝えるのではなく第三者の視点を取り入れることで漏れがないかを確認し、より良いものを作ることです。自分の考えを長時間伝えたあとで質問・指摘をいただくとどこに指摘すべきだったかを振り返るのに時間がかかったり、気になるところが解消されないまま次に進んでしまうことでレビューの目的は達成できません。区切りがいいところで、質問・指摘をいただく時間を取ることで、レビュイーは的確なタイミングでFBをいただける、レビュワーは理解した状態で次の話を聞けるなど、お互いにとって有意義なレビューとなります。また仮に時間が足りなかった場合でも今日話したここまできちんとレビューできたから大丈夫、次回はそれ以降から聞くという流れを生むことができます。

![forQiita (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/9b5199d7-25b1-9f86-7284-d285c3ab8528.png)

#### レビューが途中からのスタートの場合は、これまでのあらすじを冒頭に説明する
　前回のレビューで、時間が足りず途中からレビューを行うこともあると思います。その時にいきなり続きのところから始めてしまうと、自分以外にも多くの方のレビューに参加しているかも知れないレビュワーは話が思い出せず、困惑してしまいます。自分がどんな不具合の修正を行っていて、今回のレビューではどこから再開して、前回のtodoはなんだったのか1.2分使って説明するだけでも、今日行うレビューの充実度は格段に高まると思います。

![forQiita (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/f49a7b82-11d5-a606-30a0-80f884936ab6.png)

### 資料作成編
#### キャプチャした画像を利用するときはわかりやすさを意識する
　レビューするうえでキャプチャした画像を資料に添付することもあると思います。自分の考えを分かりやすく伝えてレビュワーに理解してもらう上で、資料の見せ方も大切です。

##### どの箇所が大切なのか、枠で囲む。
　見てほしい箇所を視覚的に示してあげると、この画像でどこを伝えたいのか一瞬で理解できます。例えば、レビュー中に12行目を見てくださいと伝えて、レビュワーが添付された資料から探すよりも、写真の赤枠で囲ったところを見てくださいと伝えることでレビュワーがすぐに重要なポイントを認識できるようにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/e52ab0e7-bdc3-513d-d0ae-0f9d2d246aac.png)

##### コードのキャプチャにはVisual Studio Codeを用いる
　コードのキャプチャを用いる場合、Visual Studio Codeが便利です。Visual Studio Codeを用いるとどのクラス・どのメソッドのコードなのか、スクロールしても消えずに表示されるので説明する際に活用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/c401319b-fd91-200f-9d1e-ffcf3ce46458.png)

## まとめ
　この記事では、レビューでの合格を目的にしていた自分の失敗経験から学んだことを紹介しました。特に自分の考えを分かりやすく伝えるという点に着目しましたがあくまでそれは手段であって、レビューの本当の目的は第三者の視点を取り入れることで漏れがないかを確認し、より良いものを作ることです。なのでそこだけ注意していただけたらと思います。

　またレビュー時に意識したほうがいいこととして今回は7個紹介しましたが、不十分の可能性もあります。今回のようにレビュワーに分かりやすく伝える為の取り組みは失敗経験からでも学べるので積極的にトライして自分なりの伝え方を見つけていくといいと思います。自分もまだまだ未熟ですが頑張っていきます！！

　記事が良かった・参考になったと思ったらいいね！を付けてくれると嬉しいです！