解せぬ日記

雑な話をする

その実装は後退している

開発をずっとしていると「あ、この実装進研ゼミでやったぞ!」ってことがある。 以前、関わったプロダクトで似たような機能を実装したことあるから、それを流用すれば早いなーって感じだ。 当然、やったことがあるからすぐに実装できるし、さっさと実装を済ませたほうがプロジェクトは進むし、評価される。 非常にいいことだし、それが経験というものだ。

だが気をつけないと、大きな落とし穴にハマる。 人間は自分ができることをやりがちな生き物で、できることをずっとやっていると慣れてきて段々何も考えなくなるからだ。

A:「この実装はなんでこうしたの?」
B:「あー、以前のプロダクトで同じ実装を見たことがあったので、流用しました」
A:「へー、最近こういう実装も見るけど、どうしてこっちにしたの?」
B:「あ、そういう実装もあるんですね」

こんな経験をしたことがある。 別にどうってことない日常会話だけど、不思議に思うことがある。

開発の世界は変化のスピードが早いという前提にたったときに、本質的な部分はそんなに変わらないにせよ、実装やアーキテクチャなど色々な考えが出てくるというのは明らかだし、自分だって半年も経てば変わっている。 半年前のコードを見て、書き直したいと思うことは、バイアスがかかっているけど、Twitterのタイムラインでもよく見る光景だ。

よく考えて欲しい。 会社の許容範囲として半年から一年サービスを続けるとしたら、その実装は半年以上前のものだったりするんじゃないだろうか。 だとすると、そのコードを書いた人はすでに書きなおしたいと思っているかもしれない。

何も考えず以前の実装を使うということは、何も変わらないということで、停滞していると言えるし、停滞はこの世界では後退だ。 前に進まなければ置いて行かれる。 その実装は後退してる。

実装前によりいい実装を考えたり、別の考え方の実装を調べたりすることで、自分が前進できる。ほんの少しの改善でもいいでもいいはずだ。

APIを実装する前に、GitHubAPIがどうなっているのかとか、HerokuのAPIがどうなっているのかとか、少しでも見るだけで違う。 もっといい方法が存在するかもしれない。

考えたり、調べたりした結果、そのままでもいいとなるかもしれないが、一度立ち止まって考えるのと考えないのとでは全然違うと思う。

僕はいたって普通だけど、少しでもよい実装ができるようになりたい。 そんなことを同僚と話した結果、ほとんどの人には当たり前じゃん、そんなことって感じのエモいエントリーになった。

12/1 追記

なんか怒ることでもあったんすか?って言われたんだけど、別に怒りとか何もなくて、僕はこう思ったっスっていうことを伝えたいだけだった。