Draft Pull Request と WIP を使い分けて透明性を上げる
開発環境
- 複数のチームでアジャイル開発
- レビュー環境
- GitHub を使用
- レビュアーにアサインされた人以外もレビューに参加できる
- Pull Request 上のやりとりは Slack に通知しており、誰でも閲覧可能
Draft Pull Request のよくない使い方
普段の開発では Draft Pull Request を活用しています。
Draft Pull Request は作業がまだ途中であり、レビュー可能な状態ではないですよ〜ということを明示したい場面に用いるものです。
Draft Pull Request ではマージボタンをクリックできません。
作業完了後 Ready for review をクリックして Pull Request を Open にすると、マージボタンがクリックできるようになります。
Draft Pull Request について
Draft Pull Request は作業途中であってもフィードバックをもらいやすくするために使い始めました。
しかし、使っているうちに「レビュー可能な状態ではない」ことを示すためではなく、「レビューが完了してもマージできない」ことを示すために使われることが多くなりました。
Draft Pull Request に対するコメントは現状 Slack に通知されません。
そのため、レビューが可能な状態であるにもかかわらず Draft Pull Request にしている場合、クローズドな環境でレビューが進行し、アサインされたレビュアー以外のメンバーがレビューに参加するのが難しくなりますし(Pull Request が作成されていることに気づきづらい)、指摘内容や議論の内容も共有されません。
これでは、アジャイル開発で大切とされる透明性が失われてしまいます。
WIP でマージ可否を制御する
Draft かどうかでマージ可否を制御するのをやめて、代わりに WIP を導入しました。
これにより、Pull Request のタイトルに WIP
や work in progress
、 🚧
を含んでいると、Pull Request のステータスチェックが進行中のままとなり、マージできない状態であることが視覚的にわかります。
以前の記事「マージ前にベースブランチの変更の取り込みを必須化することでコード品質を向上させる」で紹介した Status checks that are required.
に WIP を指定すれば、Pull Request のタイトルに WIP
等を含んでいるとマージボタンをクリックできないようにもできます。
変更前後の Draft、Open、WIP それぞれの意味は以下の通りです。
レビュー可能になれば Open にする運用に変えたので、Pull Request 上のやりとりが Slack に通知されるようになりました🙌
変更前 | 変更後 | |
---|---|---|
Draft | ・まだ作業中でレビュー不可能 ・レビューが完了してもマージ不可能 |
・まだ作業中でレビュー不可能 |
WIP | - | ・レビュー可能 ・レビューが完了してもマージ不可能 |
Open | ・レビュー可能 ・レビューが完了したらマージ可能 |
・レビュー可能 ・レビューが完了したらマージ可能 |
まとめ
情報を取りに行かなくても済むように Draft Pull Request の使い方を見直しました。
透明性が上がり、以前よりやりとりや議論を把握しやすくなったと感じます。
他にもっといい方法があれば、コメントで教えてください!
私たち BABY JOB は、子育てを取り巻く社会のあり方を変え、「すべての人が子育てを楽しいと思える社会」の実現を目指すスタートアップ企業です。圧倒的なぬくもりと当事者意識をもって、こどもと向き合う時間、そして心のゆとりが生まれるサービスを創出します。baby-job.co.jp/
Discussion