あなたの目前にクソコードが広がっているとする。

実力のないプログラマであれば、それがクソなのかそうでないのか判断はできない。そこそこ実力があって、良識のあるプログラマであれば、クソコードを嘆くであろう。

で、問題はここから。

目の前にクソコードがある。しかしそのクソコードはそこそこ実績のあるサービスで、そこそこ収益をあげている、としよう。

そうすると、単純にクソだからといってサービスを捨てたり機能を減らしたりはできない。「リファクタリングしよう!」というのは簡単だけど、クソコードが相手だとテストも不十分だったりするから、それは必要ではあるけれど、やっぱり怖い。「そういう職場はマジやばいので、全力で逃げるべき」っていうのは場合によっては真ではあるけれど、IT も Web も、もうそれなりに歴史のあるものだから、まったくレガシーがない環境はたぶんありえないし、完全新規なベンチャーであれば、未来のレガシーをつくるのは多分そこから逃げたあなた、だ。

で、こういうとき、どうするべきか、僕も答えはないのだけれど、現状に対して、「こういう風に書きたい、直したい」っていう思いが大事なのかな、って思っている。現状がどれだけクソだったとしても、それをどうしたいか、どう直したいか、自分は今のプロダクトを本当はどういう風に書きたいか、ってのを示すことができなかったら、多分それは現状より悪い。

現状がクソであることに文句を言う人、どう悪いか、まで言語化できる人は数多くいるけれども、どう直したいか、どう書きたいか、ってところまで踏み込める人はあまりいないし、そこまで踏み込んでくれる人が増えてくれたら世界はもうちょっと良くなるのかもしれないなぁ、ってちょっと思ったりした。