垢がたまりにたまったコードを2週間くらいかけて一気にリファクタリングするという機会があった。勢いよく作業してかなりの数のパッチをチェックインした。完全には終わらなかったけど、気になっていた部分がだいぶきれいになって気分爽快であった。
が、リファクタリングが異様に楽しいと感じるのは何かがおかしいと思い、理由を分析してみると不都合な事実が浮かび上がってきた。なぜリファクタリングが好きなのかといえば:
1) 自分はきれいなコードが好きであり、コードをきれいにするのが好きだ。技術的負債はよくない!
2) じゃあそれだけが理由かといえば、そんなことはないのでは?
3) 自分はさくさくと物事を進めるのも好きだ
4) リファクタリングをやっていると、さくさくと物事を進めることができる
一方、新しい問題に取り組むと、不確定な要素が多く、物事はそう簡単には進まない。物事が進まないとストレスがたまりがちだ。
というわけで、リファクタリングの方が簡単でさくさく先に進めるから、ついついそっちを先にやってしまうという面も結構あるんじゃないか、というのが今回の発見である。私がリファクタリングを好む傾向にあるのはこの辺に大きな理由がある気がする。
技術的な負債が新しい問題を解く障害になることはよくあるので、リファクタリングは必要ではあるのだけれども、その辺のバランスはうまくとっていかないといけない。今回発見した、現実逃避への誘惑という要因を考えると、私の場合は、リファクタリングを減らす、という方向を意識するくらいがちょうどいいのかもしれない。