「コードを憎んで、人を憎まず」、と言うけれども
この言葉を最近見かけたのが、この記事のきっかけです。コードレビューをする際の心構えとして良く言われるようになってきたと思います。書いたコードがひどくても、それを書いた人が人間的に悪いわけではない、コードとそれを書いた人を適度に切り離そうということです。基本的には、僕も賛成です。
現実問題として、仕事ではつっこみどころ満載のソースを相手にすることが多く、苛立ちや不満などの感情が出てくるのは避けられないです。それを、書いた人にそのままぶつけるのはナンセンスですが、どこに持っていけばよいのでしょうか。
コードへの憎しみを募らせすぎるとどうなるのか?
言葉どおり、コードにそれらの憎しみをぶつけていきましょう。そうすると、憎しみのもとになるコードを、レビューでふせぎつつ、リファクタリングをして憎めないコードにしていくことに精を出すことでしょう。
そのこと自体は建設的な行為です。しかし、サービス終了やコードのメンテナンスを放棄でもしない限りは、新しいコードや変更は加え続けられるものです。そのため、コードレビューもリファクタリングも、終わりがない作業ともいえます。つまり、コードへの憎しみに、終わりが見えなくなってきます。
憎しみの炎に焼かれる無間地獄へ
リファクタリングのスキルがあがってくると、かつて自分が直した部分も憎しみ出すようになってきて、憎みたくなるコードが増えてくるという、悪循環に突入し、より終わりが見えなくなります。
大抵は、ここまで行く前に気持ちがもたなくなるでしょうが、半端に耐性やガッツがあると、ここまでこじらせてしまうかもしれません...
もっとこじらせると、コードを生み出す人間の存在自体を否定するようになり、RPGのラスボスみたいな思想にとりつかれるかもしれません。
一体どうすればいいのか?
少なくとも、目の前の敵を憎しみに任せてただ倒すだけのようなことはしては、だめです。
コードでもそれを書いた人でもなく、問題を生み出している背後に目を向けるべきかもしれません。
それは、安直なコードを書いてしまう心の弱さなのか、そういったものを助長する環境なのか、やすきに流れてしまう人の弱さなのか...