仕事を依頼することの本質について
はじめに
先日仕事をしているときに、数千行にわたる(おそらくはAI生成による)変更の含まれる Pull Request のレビュー依頼が、何の前触れもなしに突然飛んできた。 その Pull Request にはたった一行の Description が書かれていただけで、なぜこの変更が必要なのか、なぜ私にレビューを依頼したのか、なにを確認してほしいのかなどの情報は一切わからなかった。 後に Author に確認してみたところ、その変更をデプロイするため、単に形式上の Approve が欲しかっただけだったそうだ。
私個人としては、このレビュー依頼の仕方にとても違和感を感じた。 問題点としては次のような点が挙げられる。
- 数千行の変更をすべて確認しようとすれば非常に時間がかかる
- 変更の意図や背景、課題がわからない
- レビューに何を期待しているのかがわからない
総じて、レビュアーに対する配慮が欠けている依頼であると感じた。 (また、レビューに割ける時間もなかったので、この依頼についてはお断りした。)
この件をとおして、あらためて Pull Request のレビューとは何か、仕事における依頼とは何なのかについて考えてみた。
レビューを依頼すること
一般的にはレビューを依頼するとき、依頼者はレビュアーに対して何らかのフィードバックを期待し、最終的には Approval をもらうことを目指すことがほとんどだと思う。 書籍「Looks Good To Me」1でも紹介されているように、 Pull Request に Approve するということは、レビュアーもその変更に責任を持つということだ。 単に形式的な Approve が欲しかっただけだとしても、変更に責任を持つことには変わりはない。
その意味で、レビューを依頼するということは、「レビュアーにもこの変更に責任を持ってもらう」ための依頼であると捉えることができる。
また、日頃忘れがちなことだが、「レビューをするのにも時間や労力はかかる」という点だ。 レビューを依頼する側の立場からすると、レビュー依頼には無償で応えてもらえると思いがち2だが、レビュアーはその変更の背景や課題、意図や方針、そして実装について理解するために時間も労力も割かなければならない。ある意味ではレビュアーはコストをかけてまでその Pull Request に向き合っているのだ。
私自身、特にここ数年 Pull Request のレビューを多く担う立場となって、このことに気付かされた。
そのようなことを踏まえると、これも当たり前の話ではあるが、Pull Request の Author は、レビュアーがレビューしやすい状態をできる限り整えた上でレビューを依頼するべきだという話になる。
レビューするにあたって知っておくべき情報や、疑問が生じそうな箇所にあらかじめ答えるような Pull Request の Title / Description を用意しておく。
- 何がどう変更されているか (概要)
- なぜこの変更が必要なのか (背景・課題)
- どういう意図の変更なのか (方針)
- 何を確認してほしいのか (レビューに対する期待)
- etc...
項目を挙げるとこんなところだが、個人的にはAI生成のあの冗長でわかりづらい文章も避けたほうが無難だと思う。 こういった部分は要点を絞って簡潔に伝えるようにしたほうが、読み手にとっては理解に割く労力が軽く済む。 これについては Write for people - Normcore Tech でも似たような課題感が共有されている。人間が理解しやすい、シンプルな表現が求められている。
その他には、これは私個人の心がけの話になるが、「この人の Pull Request ならまたレビューしてもいいな」と思われるためにはどうしたら良いかを考えている。たとえば、レビュー依頼をするとき、レビューによるフィードバックや Approve をもらったときには、必ず感謝の意を伝えるようにしている。時間や労力を割いてレビューしてもらっているのだから。
仕事を依頼すること
私たち SWE は Pull Request に限らず、普段仕事をしている上でほとんど必ずといっていいくらい、毎日他の人に仕事を依頼している。 Pull Request、 JIRA のチケット、 GitHub の Issue などの形式にパッケージングされた依頼は、意識しなければ自然に、その仕事を依頼される相手に対する敬意を忘れさせてしまう。あたかも Queue に Job を積めば、その裏で Worker が自動的にそれを処理してくれるかのように捉えがちだが、私たちはそれを実際に処理する人のコストや心理的な負荷を想像する必要がある。
自分の時間と労力を割いて向き合ってくれるのは「人間」であって、 Worker ではない。 AI の普及にともなって仕事のスピードが爆発的に変わってきた今だこらこそ、仕事を依頼する相手への敬意とプロフェッショナルとしての配慮を忘れてはならない。
ここには「そもそも私が実装してやっているのだから、それに対してレビューするのは当然だろう」という心理が潜んでいるのかもしれない。