エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

お前だったのか、いつもレビューしてくれていたのは

こんにちは、エムスリー 製薬企業向けプラットフォームチームの後藤です。

この記事は エムスリー Advent Calendar 2022 の 13 日目の記事です。

エムスリーではコードレビューが文化として根付いており、各チームで活発に実施されています。 本記事では、日々のレビュアーの貢献に感謝を伝えるためにチームで実施した取り組みをご紹介します。

きっかけ

とある期末、チームで半期の実績を振り返っていた時に、ふと思い立ったのが発端です。
「新規のサービスを開発した」、「売上N%アップに貢献した」といった実績はよく聞きますが、その中で必ず実施されているはずのコードレビューについてはあまり触れていないことに気づきました。

もちろん日々の業務の中でレビュアーに感謝を伝えている場面はたくさんあったのですが、目に見える形の実績として残してみようと思ったことがこの取り組みを始めたきっかけでした。

チームでのコードレビューの取り組み

まず、私のチームでのコードレビューの取り組みについてご紹介します。

エムスリーではコード管理にGitLabを使用しており、コードレビューは基本的にMerge Request (GitHubでいうPull Request) 上で実施されます。 私のチームでは、実装に問題なければMerge Requestにリアクション (絵文字) をつけることでLGTMとし、指摘や質問があればコメントをつけてディスカッションをするというルールで運用しています。

レビューをスムーズにする細かな仕組みも整っており、具体例を挙げると下記のようなものがあります。

  • Merge Requestのテンプレート
  • GitLab上でのメンションをSlackに通知するbot
  • GitLab CIを使った、レビュー依頼のSlack通知

レビュー実績を集計する

レビューの実績については、シンプルにレビューを実施した数を集計することにしました。 私のチームではレビューをした場合は Merge Request にリアクションをするルールなので、リアクション数を数えればレビュー数がわかります。 集計にはGitLabのAPIを使用しました。

まずMerge Request APIで対象期間中にマージされたMerge Requestの一覧を取得します。
実際には下記のようなURLとなります。 100件ずつの取得なのでpageをインクリメントしながら全件取得します。

https://{gitlab_url}/api/v4/projects/{project_id}/merge_requests?state=merged&updated_after={date}&per_page=100&page={page}&private_token={token}

次に、各 Merge Request に対して、Award emojis APIでリアクションを取得します。
実際には下記のようなURLとなります。 レスポンスにはリアクションをしたユーザの情報が含まれていますので、ユーザ単位での集計が可能です。

https://{gitlab_url}/api/v4/projects/{project_id}/merge_requests/{mr_id}/award_emoji?private_token={token}

これらのAPIを使って誰が、どのリポジトリで、何件のレビューをしたかを集計するスクリプトを作成しました。 出力結果は下表のようなイメージです。

Xリポジトリ Yリポジトリ
Aさん 10 25
Bさん 40 5
Cさん 0 20

レビュアーへ感謝を伝える

実際に集計した結果を見てみると、最もレビュー数が多い人は半期で330件でした。 数字にすると、チームへの大きな貢献であることが改めてわかりました。

また、ほとんどのメンバーがレビュアーを務めており、メンバー相互でレビューをしていくチーム文化が数字に現れていたのもこの取り組みで実感できました。

その他にも、開発が活発だったリポジトリはどこか、誰がどのサービスの開発に多く携わっていたかなども数値で可視化されチームメンバーで共有できたので、実績の振り返りとして非常により取り組みだったと思います。

実際に感謝を伝えた様子 (スタイリッシュな鳥のアイコンが筆者)

まとめ

本記事では、コードレビューの実績を集計してレビュアーに感謝を伝えるチームの取り組みを紹介しました。

チームへの貢献を目に見える形で残すこと、それに感謝を伝えることは非常に大事なことだと実感しました。 今後もこの取り組みは続けていきたいですし、新たな取り組みも考えて実践していきたいと思います。

We are Hiring!

エムスリーではエンジニアを募集中です。 チームメンバーがお互いに尊重しながら日々の業務に取り組んでいる環境で一緒に働いてみませんか?
ご応募お待ちしています。

jobs.m3.com