- 「開発者はコードを批判されても自分を否定されたと傷つくな」
- 「レビュワーはコードを批判し人格を攻撃するな」
よく言われるコードレビューの心構えですが、果たしてこれだけで摩擦なくディスカッションできるものでしょうか。
だって純粋にコードだけ批判されたって、僕ならやはり傷つきますね。コード書くときには自分の全知見・全思考力を叩き込んでますから結局コードは自分の人格の一部みたいなもんです。
批評ではなく、議論を提起したい
擁護のしようも無いようなクソコードでさえ、何らかの意図を持って(すなわち何らかの利点のある手法だという意志のもとに)書かれています。意図と言うべきものもなくプログラムされたとしても、それはそれでつまり直感的な記述だという利点を含んでいると見なすことは可能です。
すべての記述方法は利点と欠点を多かれ少なかれ持っているのだという点は認めましょう。
するとレビュー意見はこういう形になります。
「この書き方に●●のような利点があることは認めるが、このケースにおいては●●という事情からこういう記述の方がより適していると思う」
良い悪いではなく選択肢の提示とそれらの利点欠点の検討、という視点に持っていけばコードを、すなわち書き手の人格を批判することなく議論へと向かうことが可能になります。