あなたのレビュー、 LGTMスタンプを押すだけの作業になっていませんか?
あるいは、インデントやtypoをいくつか指摘して、「今日も良い仕事をした」と満足してはいないでしょうか。
一見、仕事をしたように見えます。
しかし、もしそのコードが「なぜ」そのように書かれたのかを説明できないなら、それはレビューとは呼べません。
ただ "眺めた" だけです。
この記事が提案するのは、あなたのレビューを「眺める」から「理解する」へと変える、たった一つのシンプルな問いです。
その問いとは、 「他人のプルリクエストを、まるで自分が実装したかのように説明できるか?」 です。
なぜ、この観点が重要なのでしょうか?
なぜなら、この問いを自分に課すことは、コードの品質に対する 「当事者意識」 を持つことに他ならないからです。
もし説明できないのであれば、それはコードを理解していない証拠。
理解していないコードを承認するのは、品質に対する 「共同責任者」 としてあまりに無責任です。
「自分が説明しなければならない」という状況になれば、もう曖昧な点を放置できなくなります。
「なぜこの設計なのですか?」「このテストケースは考慮しましたか?」といった、本質的な質問が自然と生まれてくるはずです。
相手より知識がある必要はありません。
あなたが理解できない点を素直に確認することが、レビューにおける最も重要な仕事の一つです。
タイポやコーディング規約のチェックは、LinterやFormatterといったツールに任せましょう。
私たち人間は、ツールにはできない設計の妥当性や、仕様の考慮漏れにこそ、時間を使うべきなのです。
「自分ごととして、このコードを説明できるか?」
この観点を持つだけで、あなたのレビューは単なる "チェック作業" から、プロダクトの品質を共に創り上げる "共同作業" へと進化します。
明日からのLGTMが、これまでとは全く違う重みを持つことになるはずです👍