はじめに:弊チームにおけるPR作成時の生成AIの活用
GitHub CopilotがPull Request(PR)の中でPRの概要を出力してくれるようになりましたね。
これまで私たちの開発チームでは、下記の記事をベースにChatGPTにPRの概要文作成の補助をしてもらっていました。
チーム内でPRの概要を記載する文化づくりと、そのPRの概要作成の負荷軽減に大いに活用させてもらっていました。
しかし、PRの中でGitHub Copilotが概要が作ってくれるようになったことで、diffを取ったりChatGPTとPRを行き来しなくてよくなり、各段に概要作成がラクになりました。
CopilotもChatGPTも、差分から読み取れる事実しか書いてくれない
GitHub CopilotにしろChatGPTにしろ、diffから一瞬でそのPRの変更点のサマリを作成してくれます。
それは裏を返せば、彼らはdiffベースのことしか知らない、ということです。
結局彼らが作成してくれる情報だけだと説明不足感が否めませんでした。1
だから、レビュイーがPRに書くべき内容がある
PRに含まれた差分そのものの概要は生成AIたちに任せられるようになったことで、人間が書くべきポイントが明確になった感があります。2
「なぜ」変えたのか、その意図を書く
生成AIは「何を」変えたのかを理解することはできますが、「なぜ」変えたのかまでは汲み取ってくれません。
なぜそのコードを修正するに至ったか、なぜその実装を採用したのか、などがPRの概要に記載されていると、レビュー時の判断に役立ちますし、確認のためのやりとりを減らすことができます。
※追記
@flyaway さんのコメントにあるとおり、コードそのものの意図はコード内にコメントとして残すことを優先すべきというのはその通りだと思います。
ただ、PRの概要としては、変更に至った経緯や、特にいくつか実装方針がある場合なぜ今回の実装を採用したかが記載されていると、PRの概要はつかみやすいな、と感じているのも正直なところです。
一方で、変更に至った経緯はPRではなくIssueやチケットなどの、実装方針については別の設計資料にあるのであればそのドキュメントのリンクが貼ってあるでも十分だと思います。
変更/追加したソースの前提知識を書く
そもそもこれは何をしているソースで、どこに影響があって・・・みたいなことを書いてくれると、レビューのスピードと精度がぐっと上がります。
そのロジックに精通している人とは認識合わせができますし、そのロジックにそこまで詳しくなくても解像度があがります。
変更内容どうしの関係性を書く
Copilotはソースコード単位での改変内容は提示してくれますが、まだ変更の羅列でしかない印象です。
なので、PRを読み解く上で起点となるソースはどこか、どのソースとどのソースが関連しているのかの構造や関係性を書いてくれると、PRを読み解くスピードと解像度があがります。
見た目が変わるものは変更前後のUIを添付する
PRの内容の結果、どういった見た目に変わるのかまではCopilotは提示してくれません。
デザインの変更前後の差異を、最低限画像、できればgifで添付すると、デザイン変更関連のレビューはぐっとしやすくなります。
おわりに:結局のところ、レビュイーがPRに書くべき内容は変わらない気がする
ここまで書いての所感は、「あれ、結局レビュー依頼するときに書かなきゃいけないことって今も昔も変わらなくない?」です。
PRの概要のみならず、ソースコードも生成AIが書いてくれる時代ですが、それを採用するのは人間です。なので、それを採用した理由やその背景を正しく伝えられるのも今のところ人間です。
生成AIたちに任せられる部分はお任せしつつ、人間にしか説明できない箇所に注力して、より快適なPRレビューを目指しましょう~!