「汚いコードでいいよ」は夢の環境であると同時に悪魔の囁き

2012/11/29-2

「コードがもうメチャメチャでも、動いて金が回れば正解なんですよ」という発言を含むインタビューが話題です。

一部界隈で大きな話題になっているのは、主に以下の部分です。

極端な話、コードがもうメチャメチャでも、動いて金が回れば正解なんですよ。「アイツの書くコードは汚いけど、アイツが入ったプロジェクトは絶対勝つよね」ってエンジニアは、絶対に呼ばれます。もう間違いない。少なくとも、僕は欲しいですし。

私のまわりでは、「汚いコードをその後運用させられるエンジニアもいるんだからね」という意見が非常に多い印象です。 個人的には、こういうことを表明している会社でエンジニアとして働きたいとは思わなかったです。

「汚くてもいいよ」はエンジニアとしては楽な面もあるよね

今は文章を書くことが私の主な仕事ですが、前職はプログラマでした。 学生時代に関わっていた多くの案件が、開発時間が短かったり制約がある中で無理矢理勢いで書くことが多かったこともあり、どちらかというと私は「気合いと根性」みたいなノリが多い駄目プログラマでした。 昔、会社の先輩に「君は右脳系のプログラマだよね」と言われたりもしました。 ヤンジャンで連載しているキングダム風に言うとすれば、恐らく、私は知略型の相手にあっさりとはめられてやられてしまう、本能型なのだろうと思います。

ということで、個人的には実は、「汚くてもいいから速度重視で好き勝手書いていいよ」という環境は、私にとっては夢の環境とも思えます。 というか、「汚くてもいいよ」は、ある意味、「楽をしてもいいよ」という意味も含んでおり、自分の心の中の悪魔の囁きにも近い印象があります。 「へへへっ、そこは手を抜いて楽しちゃいなよぉー」みたいな感じです。

これは一種の甘えのようなもので、後先考えないで脊髄反射でコードを書き続けて脳内物質が分泌されて勝手に気持ち良くなるという感じかも知れません。 最初の一回ぐらいはいいのでしょうが、何度も「汚くてもいいや」をくり返していると、目に見えて品質が下がって行くような気がしています。

汚いコードのメンテナンス

多くの方々が既に指摘されているように、アドホックで汚いコードって、好き勝手にやりたい放題やったエンジニアの尻拭いをする他の方々が存在する前提じゃないと難しかったりもします。

モックを作るとか、何らかのイベントで利用するために一回使ったら二度と使わないコードを書くような現場では「汚くてもいい」は理解できなくもないのです。 しかし、何らかの継続的なサービス等を作成するのであればコード開発以前の設計段階で十分な検討をした方が最終的には良いものが完成しますし、テスト等を含めて考えないと不具合の続発やコードの脆弱性に起因する障害発生に繋がります。

ネット上での反応を見る限り、そのような尻拭いを実際に現時点の業務としてされている方々は多そうです。

元記事の論点って「コードの汚さ」なの?

とはいえ、元記事での言いたいこともわからなくはないです。 ただ、表現が変なだけかなぁという部分もありそうです。

そもそも、論点は、コードが汚いかどうかじゃないと思うんですよね。

速度と設計のトレードオフが発生するような状況で、その場に応じて最適な手法を即座に採用することができるかどうかが恐らく求められているのであって、コードが汚いかどうかを前提にするのが本質じゃないのではないでしょうか。 もちろん、開発期間に応じてコードの奇麗さを犠牲にするような状況も多いとは思いますが、「コードが汚くてもいい」と表現せずに、「その場の状況に応じてコードの美しさを犠牲にする柔軟さを備えている」と表現すれば、ここまで反感は買わなかったのかなぁという気もします。

求めてる人材って、きっと「汚いコードしか書けない人」ではなくて、「美しいコードも書けるけど、臨機応変に対応出来る人」なんですよね? 非常に好意的にとらえるならば、「コードの美しさにこだわり過ぎて融通が聞かないエンジニアはベンチャーだと困る」というだけかも知れないとも思います。

ということで、ちょっと言い方を変えれば別に問題がない記事である気もしますが、特に問題がない記事であったら恐らく注目されることもないでしょうし、情報発信って難しいなぁと思う今日この頃です。

なお、この記事は本能の赴くままに30分ぐらいで書いています。

プロフェッショナルIPv6解説動画シリーズ再生リスト

動画で学ぶ「プロフェッショナルIPv6」を作っています。 もしよろしければご覧ください。お楽しみいただければ幸いです!