🔎

エンジニアの相互レビューで感じたメリット

FLATに入社して初めて「相互レビュー」を導入した際に感じたメリットやより効果を上げるために実践してみたことを書いてみます。

導入(相互レビューで享受できるメリット)

弊社では開発者同士で相互にレビューを行っています。これはスキルセットに関わらず、もれなく案件に携わるエンジニア全員が対象(レビュアーとしてもレビュイーとしても)です!
最終的なクオリティチェックの前に開発者同士でレビューし合うことによって、以下のようなメリットが考えられます。

  1. 次工程へ進むコードの質が高められる
  2. 他の人の書いたコードを読むことで、新しい知見を得られる
  3. 最終チェックを行う人の負担を減らせる


1.次工程へ進むコードの質が高められる

以下のような内容は開発者同士でも確認することができます。

  • 仕様に対するロジックがおかしくないか
  • 冗長な書き方をしていないか
  • わかりずらい命名をしていないか
  • (リファクタリングしているのであれば)修正前後でロジックに変化がないか
  • 変数やメソッドなど、共通化できる部分はないか
  • シンタックスエラー、コンソールエラーはないか


2.他の人の書いたコードを読むことで得られるものがある

また、これはスキルセットが似通った開発者であっても、そうでなくてもメリットがあります。

スキルセットが同じ場合

  • 自分では書かないようなコーディング方法、ロジック、命名などがたくさん見れる
  • 「こう書いたらもっと良いのでは」などのような議論がソースコードを使ってできる


スキルセットが異なる場合

  • 自分では書けないコードを読む機会がもらえる (新しい発想・共通化の仕方・知らなかったライブラリ等)
  • 先輩が後輩にソースコードを見てアドバイスする経験を得られる


また、レビューする視点だと間違ったことは言えないのでしっかり調べたり、
人にFBすることで自戒することにもなるのでかなり勉強になります。

3.最終チェックを行う人の負担を減らせる

単純に開発者同士でレビューを挟むことでクオリティが上がるので、最終チェック時の戻りが減ります。
また、過去に指摘された内容を開発者同士で共有することで、同じ指摘を防ぐことなどもできます。


相互レビューの効果をより上げるために実践していること


1. レビューで指摘された(した)内容を全てTipsとして共有する

毎案件終わる度にNotionにTipsとしてナレッジを蓄積しています。
内容としては以下のようなものです。

  • レビュワー視点で学んだとこ
  • レビュイー視点で学んだとこ
  • お互いの指摘事項
  • お互いが見落としてしまったこと
  • ソースコードで議論したこと



誰でも見れる場所にナレッジとして蓄積することで同じ悩みを解決したり、同じ指摘を受ける確率を減らせればと思っています。

2. 良いコードを褒める

人は誰しも褒められるとやる気が上がる(?)と思います。(少なくとも自分は)
ですので、良いコードを見つけたときは「この書き方めちゃめちゃ良いですね!次から真似します」といった具合にコメントをするように心がけています。
お互いに指摘し合うだけではなく、議論したり、良い部分は褒め合ったりしながら開発していくことで仕事が楽しくなります。

まとめ

相互レビューはさまざまなメリットがありますが、開発者同士の協力が必要なため互いのスケジュールが合わない場合もあります。
そのため作業がスタックしないようにタスクや進捗の管理には気をつけていきたいです。