🚀

PRを作成する上で意識していること

に公開

はじめに

こんにちは、エンジニアのさきたゆです。

今回は、PR(Pull Request)のやりとり(質問・修正依頼の往復)を減らして、マージまでの時間を短縮するために意識していることを共有します。

最近はAIにPRの作成を任せることも増えましたが、最終的には人間が責任を持つべきです。
あたりまえのことも多いですが、あらためて重要だなと感じたので記事を書きました。

特に「PRの粒度(小ささ)」を軸にしつつ、粒度だけでは解決しきれない部分も含めて、私が普段セットでやっている工夫をまとめています。

背景

チーム開発をしていると、PRを出したあとに以下が起きがちです。

  • 変更差分が大きくてレビューが大変
  • 変更の意図(Why)が伝わらず質問が発生する
  • 考慮漏れが見つかって修正依頼が入り、やりとりが増える

といった理由で、PR上のコミュニケーションが1往復以上発生してマージまで時間がかかることがありました。

「やりとり自体が悪い」というより、往復が増えるとリードタイムが伸びて開発テンポが落ちやすいので、少しでも減らしたいと常々思っていました。

結論

以下の4つを特に意識してPRを作成するようにしてから、以前よりPRのやりとりが少なくなり、結果として開発スピードも上がりました。

  1. 粒度(PRを小さくする)
  2. タイトル・説明文を適切にする
  3. コンテキストが必要な部分に補足を入れる
  4. セルフレビューを徹底する(+AIレビューも挟む)

この4つはバラバラのテクニックではなく、

小さくする(粒度) → 伝える(説明) → 迷いを潰す(補足) → 漏れを潰す(セルフレビュー)

という流れで、レビューの往復を減らすためのセットだと思っています。

それぞれについての詳細

1. 粒度(PRを小さくする)

PRの粒度が大きいと、レビュワーは変更を追うだけで大変ですし、レビュイー側も考慮漏れやロジックの不備が混ざりやすくなります。
とにかく認知負荷が上がって、結果的に往復が増えやすいです。

弊社ではPRのルールとして「小さければ小さいほど良い」という価値観が強く、私も強く同意しています。

迷ったら「目的が1つか?」「リファクタと仕様変更が混ざってないか?」を基準に分けています。

具体例:リファクタは先に分ける

機能追加のために既存コードへ手を入れる前にリファクタが必要な場合、私は次のように分けます。

  • PR①:リファクタのみ(振る舞いは変えない)
  • PR②:機能追加(仕様変更)

こうすると、レビュワーは「何が変わったのか」が見えやすく、ロジックの不備や考慮漏れにも気づきやすくなります。
もちろん自分自身のセルフレビューも楽になり、結果的に手戻りが減ります。

2. タイトル・説明文を適切にする

タイトルは一目見て「何をしたか」がわかるようにします。
説明文にはWhy(なぜ)とWhat(なにを)を必ず書きます。

これは一般的な話ですが、ここをサボると

  • 「これって何のための変更?」
  • 「他のやり方と比べてなぜこれにしたの?」

みたいな質問が発生しやすく、往復が増えます。

私が使っているPRテンプレ:

  • Why:なぜこの変更が必要か(課題・背景)
  • What:何を変えたか(変更内容)
  • Screenshot:Before/After(UI変更がある場合)
  • Notes:レビュワーに特に見てほしい点 / 判断ポイント / 補足説明

他にも参考ドキュメントやチェックリストも添えます。
「レビューで迷う要素」を先に潰すイメージです。

3. コンテキストが必要な部分には補足コメントしているか

コードは変更差分だけを見ると「なぜそうしたのか」が分からないことがあります。
ここが伝わらないと、レビュワーは疑問を持ち、PR上で質問のコミュニケーションが発生しがちです。

例えば、似た用途のカスタムフックがあるのに、あえて別のフックを使った場合。
レビュワーからすると「なぜこっち?」となり、質問が発生します。

そういう往復を減らすために、私は「迷いそうなポイント」には先回りして補足します。

  • PR説明に書く:設計判断、比較検討(A案/B案)、背景
  • コードに書く:その行の意図がないと読み解けないポイント

補足を入れることで、レビューする側も実装意図を汲み取りやすくなり、結果として往復が減ります。

4. セルフレビューはしっかりしているか(+AIレビュー)

当たり前ですが、セルフレビューは徹底します。
そして1の話とも繋がるのですが、PRの粒度が小さいほどセルフレビューの負荷が軽くなり、漏れにも気づきやすいです。

また、AIによるレビューも必ず挟むようにしています。
人間のレビューを置き換えるというより、提出前に「見落としを減らす」目的で使っています。

最後に

以上が、私がチーム開発する上で「PRのやりとりを減らして、マージまでを早くする」ために特に意識していることでした。

PRの往復が増える原因はだいたい

  • 差分が大きい
  • Whyが伝わっていない
  • 前提(コンテキスト)の共有不足
  • セルフレビュー不足

に集約されやすいと感じています。
だからこそ、私は「粒度を小さくする」ことを軸に、説明・補足・セルフレビューをセットでやるようにしています。

最後まで読んでいただきありがとうございました。

Discussion