天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

エンジニアのためのスキルアップ勉強会#1「妥協しないコードレビュー」に参加してきた

sonicgarden.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。(家庭の都合で1時間だけの参加でした)

会の概要

以下、イベントページから引用です。

本イベントは、株式会社ソニックガーデンが主催する勉強会です。普段プログラミングの腕を磨いているエンジニアのみなさんが、アウトプットを通して自身の学びを整理し、より深められる機会になるように企画しました。

年に4回の開催を予定しており、今回がその記念すべき第1回です。LTをする側、聞く側の双方に学びがあり、参加して良かったと思える会になるよう、運営一同盛り上げていきます!LT会終了後には交流会も予定してますので、横のつながりを作る場として活用いただけると嬉しいです。

交流会の中で、次の勉強会のテーマを考えるなど、参加者と共に今後の勉強会を作っていけたらと考えています。

会の様子

講演1〜「レビュアーとして成長するには」〜

最初に橋本さんから発表がありました。

橋本さんは情報系のバックグラウンドがあるわけでもなく、プログラマとしての歴も浅め(昨年の4月にプログラマとしてのキャリアをスタートした)ですが、そんな中で成長するためにコードレビューが有効だと考えているそうで、今回はその方法に関して話がありました。

コードレビューを積極的に受けるためには、橋本さんはチームに対する貢献意識を持てることの一つが重要だと考えているそうで、貢献意識があるからこそ申し訳ない気持ちが減ってコードレビューの効果が高まるということでした。

また、コードレビューを通して上達するためには、(元も子もないですが)最適なタイミングで技術書を読むことと、他の人からレビューを受けて*1チームのレビューを読むことに加え、コードレビューを小さく始める*2ことが重要だと考えているそうでした。

講演2〜「ソニックガーデンジムに参加してコードに対する向き合い方が変わった話」〜

続いて登川さんから、ソニックガーデンジムに参加してコードに対する向き合い方が変わった経験談の話がありました。

登川さんは、コードを書くのに慣れてきたもののもっと良いコードが書けるんじゃないか?という疑問をもってソニックガーデンジムに参加したそうで、実際に参加してみて成長を実感できたということです。

ソニックガーデンジムに参加していくなかで、登川さんは

  • レビューしやすいように工夫をする(PRのサイズに気をつけたり変更箇所動画を貼ったりLinterを使用したり)
  • 気になるところはなぜそういう提案をするのか?も質問する
  • 他人のレビューを見てみる

の行動を取ったそうで、結果的にコードレビューに対する恐怖意識が低減し、むしろコードレビューしないほうが怖いと思うようになったそうです。

こうした経験を通して、「良いプロダクトを作るために必要な共通認識の構築」が妥協しないコードレビューだと考えるようになったという話でした。

講演3〜「コードレビューを受ける新人の心構えと準備」〜

次に遠藤さんから、レビュイー側からコードレビューを改善していくための方法に関して、レビューのための準備/レビューの心構えの2点から話がありました。

レビューのための準備としては、

  • 重要な指摘箇所をレビュアーが見落とすリスクを減らすために、セルフレビューで凡ミスがないか確認する
  • 同期や後輩のコードをレビューする

の2点が重要だということでした。

レビューの心構えとしては、

  • 口調を気にしない(信頼関係が構築できているのは前提にある)
  • 「なぜ」を考える

の2点を意識するとよいのではないか?というお話がありました。

講演4〜「妥協できないソニックガーデンのコードレビュー」〜

最後に田中さんから、ソニックガーデンにおける「妥協しないコードレビュー」とはなにかを話してくれました。

詳細は想像以上に膨大で紹介できない量だそうですが笑*3、一部を紹介すると、

  • 将来にわたって面倒を見れるのか?を考える
  • コメント数がとんでもないことになっても躊躇しない
  • 「なんとなく...」のコメントであっても議論を躊躇しない
  • 空行やコメントに関してもこだわる
  • 自分の好みや思想もコメントする
  • 自分のことを棚にあげる
  • 代替案がなくても違和感としてコメントする

などが挙げられるということでした。

また、レビューに妥協しないことはプログラミングに対して妥協しないことの延長だということで、結論としては「決して怖くない人たちだよ」というのが伝わればよいということでした笑

会全体を通した感想

ソニックガーデンの方々は、コードレビューや議論が元々好きな方が多いのかなーと思っていたのですが、元々はコードレビューが怖かったという方も多くいらっしゃったのが印象的でした。

また、プログラマー歴がそこまで長くないうちから、徹底的に妥協しないコードレビューの姿勢が身についているのがとてもよいなあと思いました。

*1:レビューを受ける際には「修正します」ではなく、「なぜそんな指摘が来ているのか?」など徹底的に内容を理解することが重要。ただし分かった気になっているかの判断ができないのはなかなか難しい...

*2:1行でわかることから始めたり「ここがわかりにくい」という表明をするなど

*3:後日資料として公開予定