久々の更新になりますね。せっかくなのではてなブログに移りました。
昨日弊社代表の
「コードが汚くてもいい」っていう社長のインタビュー記事に対して
「コードが汚いのは悪だろ」って脊髄反射してるブクマコメントとかツイートが
たくさんあるのでCTOとしての自分なりの意見を書いてみようと思う。
実際の現場
最初に記事を目にしたプログラマー達はまぁ「コードは汚くてもいい」にしか目にいかないだろう。そんな会社で働きたくないって思うかもしれない。この会社には汚いコードが溢れてるんだろうなと。
脊髄反射的にブコメしたり、ツイートされているものは全て拝見させていただいた。
では実際の現場はどうなのか。
盛大に勘違いされてそうだが、そもそもの大前提としてうちのコードは別に汚くない。
綺麗、汚いとかの定義は人それぞれだが、仮にその評価軸をリーダブルコード(可読性、保守性、効率性、拡張性 etc)とするならば綺麗だ、というだけの話しである。
少なくとも今うちにいるエンジニア達はどこに出しても恥ずかしくないコードをきちんと書くし普段からいわゆる"綺麗"なコードを書いてくれている。
意識だけじゃなくて開発スタイルの中にも仕組みとして綺麗になるように
基本的にgithub/pull requestベースで、自分以外の誰かに見てもらわない限り
本番にデプロイすることはできない。
大前提として、綺麗なコードでないとこの少人数でやっていくのには無理があるし
ベンチャーのスピード感は出せない。仕様変更なんてざらにある環境の中で、
最大限の開発スピードを出すには綺麗であることは最低限の条件である。
人生の半分以上コードを書いて、大なり小なりそれなりのトラフィックを受ける何百ものサービスを作ってきた自分にとってはコードの綺麗さの大事さは十分わかってるし、汚いコードが後に及ぼす影響も十分知っている。
もちろん大企業で経験を詰んできた今の仲間たちも十分理解している。
コードの綺麗さの先にあるもの
エンジニアである以上もっとコードを書くのが"うまくなりたい"というのは誰もが思うことで、僕自身も常に思っているし、心がけているつもりである。
でもうまくなることは必要条件であるがそれ自体目的にはならない。
よりよい実装をすることによって開発の効率化を進め、開発サイクルを早めて
より素早くプロダクトをリリースし、最終的にユーザーに満足してもらうことが目的である。
綺麗に書くのなんて当たり前、そしてその先で実現できるモノづくりに全力を尽くす。
そして新しい価値を生み出してユーザーから反応をもらうことにやりがいを感じているのがうちのエンジニア達である。
それを自然に出来る人こそがプロフェッショナルであり、今僕たちが必要としているエンジニアだと思う。
まぁ、確かに汚いコードでも良い、って言われたらムッてすると思うけど
コードが汚くていいっていうのは"極端な話"ってかいてあるように
ここで言いたかったのは手段の先にある目的の方が大事ということであり、
それを意識して仕事ができるかどうかっていう意味だと思う。
その真意まで汲み取ろうとせずに汚いコードでもいいという単語だけで騒ぎ立てるのはどうかなと思う。
そういう非難ツイートのほうがよっぽど汚い。
おわりに
少なくともヤフー時代を含めて僕は7年間近く一緒に働いてるけども
汚いコードでもいいから仕上げろとか言われたことはないし、
自分たちが思うべき最適な開発スタイルというのを常に全面的に支持してもらっている。
エンジニアをモノのように扱うなんてのはもってのほかで、
そんなことがあった際にはまず僕が許さない。
金山さんのキャラクターや記事の伝え方、言葉選びの問題もあるとは思うけども
過剰に反応されすぎなのが気になったのでこの記事を書いてみました。
少なくとも僕がこの会社のCTOであるかぎり、
エンジニアのモチベーションコントロールやスキルアップ、
働きやすい労働環境など、諸々含めてすべての責任は自分にあり、
エンジニアとしてみんなが幸せに仕事ができるように努力していくつもりです。