TL;DR
- 最近、PR(プルリクエスト)をもう少し小さくしたいと考えている
- 技術単位でPRを分けると、レビュー時に完成形が見えづらいことがある
- PRを分けることを考えるより、PBIを小さくすることを考えた方が良いかもしれない
はじめに
最近、PR(プルリクエスト)を小さくしたいなと考えています。
今のチームで巨大なPRばかり作られているわけではありません。ただ、レビューする側になった時に「もう少し小さかったら見やすいのにな」と思うことがあります。
というより、むしろ自分が大きいPRを作ってしまうことが多いので、申し訳ないなと思うことがあります。
そんなことを考えていて、少し気になりました。
技術単位でPRを分ける
最初は単純に「機能を複数のPRに分ければいい」と思っていました。
例えば、ある機能を作る時に
- バックエンドのPR
- フロントエンドのPR
に分けます。
実際によく見るやり方だと思います。
ただ、自分はこの分割方法のPRを見るのはあまり得意ではありません。
バックエンドだけのPRをレビューしていると、最終的にどんな画面になるのか分からないことがあります。
逆にフロントエンドだけのPRだと、今度はAPIの仕様やデータの流れが見えてきません。
レビュー自体はできます。でも、「この変更によってユーザーが何をできるようになるのか」が見えづらいです。
レビューする側も、頭の中で完成形を補完しながら読む必要がある気がしています。
そう考えると、技術単位でPRを分けることはPRを小さくする方法ではあります。ただ、レビューしやすくする方法とは少し違うのかもしれません。
問題はPRではなくPBIなのかもしれない
このように考えていて思ったのが問題はもっと前から起きていて、それはPBIなのではないでしょうか。
例えば「通知機能を作る」というPBIがあったとします。
これをそのまま実装するとPRは大きくなります。だからPRを分割したくなります。
でも、そもそも
- 通知一覧を見る
- 未読状態を表示する
- 既読にする
のようにPBI自体を分けられるなら、それぞれが1つのPRになります。
PRを分割する必要すらなくなります。
「PRをどう分けるか」を考えていましたが、その前の「PBIをどう分けるか」が重要なんじゃないかと思っています。
おわりに
そもそもPRを小さくする必要があるのかという話もあります。
レビュー時間やレビュー品質との関係もありますし、大きなPRにもメリットはあると思います。
だから「PRは絶対に小さい方が良い」と言いたいわけではありません。
ただ最近、PBIを適切に作ることが良いPRを作ることに繋がるのでは?という発見があったので、まとめてみました。