Androidチームの若宮(id:D_R_1009)です。 今朝方、Twitterを眺めていたら下記のツイートが目にとまりました。
ここ最近、超絶便利に感じていた Pull Reminders が GitHub に買収されて、誰でも自由に使えるようになったみたいだ。
— suzuki (@suzuki) June 17, 2019
GitHub + pull request でチーム開発をしていて、Slack も使っているところであれば、とりあえず試してみると良いと思う。https://t.co/xvHdkDu7YR
「これは便利そうだ!」と感じたため社内Slackに投稿し、
利用を開始したところ
期待以上の便利さだったので、本ブログでも紹介したいと思います。
Pull Pandaとは
GitHubのリリースでは下記のように紹介されています。
We’re excited to share some big news: we’ve acquired Pull Panda to help teams create more efficient and effective code review workflows on GitHub.
https://github.blog/2019-06-17-github-acquires-pull-panda/
ブログでも紹介されている通り、Pull Pandaには"Pull Reminders"・"Pull Analytics"・"Pull Assigner"の3機能があります。
- Pull Reminders : Slack通知
- Pull Requestが開かれた、コメントされたなどの条件でSlack通知をカスタマイズできます
- 指定の時間にPull Requestをチェックし、コードレビューやコードレビューへの対応を促すリマインダー機能も備えています
- Pull Analytics : Pull Requestに関連する様々なデータ分析機能
- Pull Requestの平均マージ時間や修正量、各コントリビューターのコメント量などを一覧にします
- チームやリポジトリごとの取り組みが可視化されるため、データをベースにした組織文化の改善を行うことができます
- Pull Assigner : 自動レビュアーアサイン機能
- Pull Requestへのレビュアーが偏らないよう、自動的にコントリビューターをアサインします
Slack用GitHubアプリとの違い
Slackの公式サイトで紹介されている通り、SlackとGithubを連携させているチームも多いと思います。
大きな違いとしては、下記3点があげられると感じています。
- 通知をSlackチャンネルだけでなく個人のDMとして受け取ることができるので、Slack通知を個人やチームに合わせてカスタマイズしやすい
- レビューのリマインダー機能があるため、「レビューをお願いします!」と個人間でやり取りする必要がなくなる
- 「レビュー終わりました! 対応お願いします!」とレビュアーがレビュイーに連絡する必要がなくなる
どれもチーム内の個人の活動でなんとかしていたことを自動化 + ルールとして運用することができるようになります。 「ツーカーの仲」で開発しているチームより、多人数で協働しているチームをサポートするツールではないでしょうか。
運用ルール
弊Androidチームの場合
現在は下記ルールで運用を開始しています。
リマインダー機能(チャンネルへのリマインダー)
- 11:00と17:00の1日2回リマインダー at #android_pr
- レビュー待ち、レビューコメント対応待ちの2条件で通知
- PRは作成されて2時間以上たったものを通知
- 通知したくないPRには
WIP
ラベルをつける
リマインダー機能(個別DMへのリマインダー)
- カスタマイズ推奨
- 開発スタイルに合わせておまかせ
自動アサイン機能(
Automated review assignment
)- Androidチームは
CODEOWNER
を利用しているため対応しない - Androidチームが増えたら対応を検討(2019年6月現在3名)
- Androidチームは
設定について
スタディプラスでは個々人の働き方に合わせた出勤時間となるため、可能な限り緩めのルールで運用したいと考えています。 そのため、リマインド設定は下記の条件としました。
- 昨日レビューが終わっていないPull Request ⇨ 11:00にリマインド
- 当日15時までに作成されたPull Request ⇨ 17:00にリマインド
今後
Androidチームで試験的に取り入れとなりましたが、社内の他チームでも取り入れる機運が高まっています。 社内の全チームで展開し、知見を取り入れてより便利に使っていきたい……と思っていたら、他チームの導入がどんどん進んでいました。
気軽にPull Requestのフローを改善できるので、ぜひぜひ取り入れてみてください!