サーバーサイドエンジニアの水戸です!
今回は、ヤプリサーバーチームで導入しているPRレビュワー選定システムを紹介します。
レビュワー選定における問題
システム開発においては、PullRequestで第3者にコードレビューをしてもらうのが一般的です。
そこで浮上してくるのが、「レビュワーを誰にやってもらうか問題」です。
その機能(またはコード)に詳しい人や、リードエンジニアなど、一部の人にやってもらうのが普通ではありますが、ここでいくつかの課題が浮上します。
一部の人にレビュー業務が偏る
チームによっては、リードの方にレビューを寄せていたりなどあるかもしれませんが、基本業務に偏りが生じるのは良くないことです。
偏りが生じることによって、「ある人はあまり忙しくないが、ある人はとても忙しい」という状況が起こりえます。
当該機能に関する知見が偏る(属人化)
知見の属人化に関しては、更に致命的です。
普通に業務を行っていれば、属人化は自ずと起こることですが、その人がチームから離れた途端業務に支障が出るようでは、チームとして健全であるとは言えません。
そのため、属人化はできる限り解消し、メンバー全員が同じ業務ができることが理想です。(そんなチームが存在するなら教えてほしいですが)
以上のことを踏まえると、「レビュー業務はできるだけ色んな人にやってもらうのが良い」という回答に行き着きます。
サーバーチームで導入しているシステム
ヤプリのサーバーチームでは、Slackbotのカスタムレスポンスを用いてランダムにレビュワーを選定するシステムを導入しています。
カスタムレスポンスでは、特定の文字列に対して特定のレスポンスを返す事ができます。
それを利用して、以下のようにレスポンスを返すように設定しています。
sv plz
→ サーバーエンジニアの誰かにメンションfr plz
→ フロントエンジニアの誰かにメンション
実際の設定画面はこんな感じです。 (マスクしている箇所にはSlackのメンションを記載しています)
これを利用することで、ランダムにレビュワーを設定することが可能になりました。
完全にランダムのため、当日お休みの方などが当たることもありますが、そのときは再度plzをする感じです。 (そこまで自動化することはできませんでした)
なお、メンバー人数が少ないチームの場合、自分が当たることも多かったため、別の取り組みを行っているチームもあります。 *1
終わりに
今回は、サーバーチームで導入しているレビュワーの選定システムについて紹介しました。
ヤプリでは他にも、面白い取り組みやチャレンジを続けています!
少しでも興味がある方、カジュアル面談で話を聞いてみませんか?