こんにちは。浅野です。
私ごとですが、最近入籍しました。
苗字が変わりましたが、旧姓はエイリアスとして残り続けているので、このまま「浅野」と名乗り続けていきます。
さて、今回のテーマは「コードレビュー」です。
コードレビューにまつわる問題について考え、解決手段の1つとしてGitHubの機能を紹介したいと思います。
コードレビューにまつわる問題
みなさん、コードレビューしていますか?
レビューって結構大変ですよね。
忙しい時や自分の作業に集中したい時は、ついついなおざりになってしまうこともあるのではないでしょうか?
私の肌感覚ですが、以下はどの開発チームでもよくある問題なのではないかと思います。
- レビュー依頼溜まりすぎ問題
- レビュアー固定化問題
それぞれ補足します。
レビュー依頼溜まりすぎ問題
あるあるとして、結構共感してもらえると思います。
いや〜、本当にレビュー依頼っていつの間にか溜まっているんですよね。
やりがちではあるものの、単純にチームの開発スピードを低下させるので良くないです。
1つのプルリクエスト(以下、PR)がマージされないことで、他の作業に影響が出て、前に進めなくなってしまう、なんてことにもなりかねません。
レビュアー固定化問題
これもあるあるですよね、きっと。
レビューを後回しにする → 他の人がレビューしてくれる、というサイクルを繰り返していると、毎回同じ人がレビューしているという事態になりかねません。
これの何がまずいかって、ナレッジが共有されないことだと思います。
コードレビューをしていると、さまざまな発見があります。
そういった知見が共有されないままだと、チーム全体としてのコードの質が向上しません。
原因
こうした問題は、どうして発生してしまうのでしょうか。
私の所感ですが、こんな個人の気持ちが影響しているように思います。
「自分がやらなくても、誰かやってくれるでしょ!!」
ああ、よくない!よくない!
でも、つい思ってしまう!!
特にレビュアーにアサインされている人が多いと、甘えがちになってしまうかもしれません。
改善策
GitHubには、レビュアー自動割り当て機能というのがあります。
現在所属しているチームで最近導入されたのですが、上記の問題へのアプローチとしてとても良いと思いました。
レビュアー自動割り当て機能の概要
毎回レビュアーを自動で設定してくれる機能です。
レビュアーの人数も指定できます。
自動割り当てのアルゴリズムは、ラウンドロビンとロードバランスの2つから選べます。
ラウンドロビンは順番に割り当ていくのに対し、ロードバランスは30日間で同数となるようです。
期待する効果
レビュアーの人数が減ることで、「自分がレビューしなければいけない」という状況が強制的に生まれます。
その結果、レビュアーの当事者意識が高まりそうです。
また、レビュイーの立場としても「誰かレビューしてください」ではなく、「◯◯さんとXXさん、レビューしてください」と言えるので、より早くレビューしてもらえそうな気がします。
加えて自動でレビュアーが決められるので、誰に依頼するか悩まずに済む点も良いです。
導入方法
ざっくりですが、大きく2つの手順が必要です。
- Teamの作成
- 自動割り当ての設定
詳細は、ドキュメントで確認してください。
使用方法
PRのレビュアーに、作成したTeamを指定してください。
するとTeam内のランダムで選ばれた人が、レビュアーにアサインされます。
副次的効果
今まではチーム全員をレビュアーとしてアサインしていたので、一人ひとり探すのが手間でした。
この機能を使うと、ワンクリックで終わるので楽チンです。
最後に
この機能を使うようになって間もないので、正直なところどれほど効果があるのかは分かりません。
それでも、メンバーの意識を変えやすくする機能ではあると思っています。