megamouthの葬列

長い旅路の終わり

「すごいエンジニア」が目指すもの

crapp.hatenablog.com

を読んだ。id:Cedilleさんは、数少ない私の同好の士(一緒にされても困るだろうし、文章も怨念も私のレベルを遥かに凌駕していると思うが)だと感じている方で、
いつも楽しく読ませていただいている。
で、このエントリを読んだ感想としては、いい経験だと思うし、別にその中で生きていけばそのうち良い事あるよ、としか思わなかったんだけども、そもそも「すごいエンジニア」とはどういう存在なのか、ということを書いておきたくなったので、書く。

すごいエンジニアのイメージ

だいたい前述のエントリに書いてある通りなのだが、この業界で「すごいエンジニア」として見なされる人のイメージを要約すると、こんな感じだと思う。

  • 技術書を自分の給料で買いあさり、勤務時間外に読み漁ったりして、とにかくあらゆる事に詳しい。
  • アンテナを極バリして、githubでstarが100ぐらいしかついていないようなマイナープロダクツでも革新的な要素があれば即checkoutして研究している
  • コードを書くスピードが早い。ソースが綺麗。
  • 単体テストもきちんとして、バグを出さない。
  • 英語もスラスラ読めるし、Readme.mdを英語でスラスラ書く。なんとなく選んだ転職先がシリコンバレーだったりする。
  • わかりやすいドキュメントやコメントを残す。
  • 謙虚だし、勉強会にも顔を出してエンジニア同士の交流もしっかりしている。

こういう完璧超人のようなエンジニアが実際にいるかどうかは知らないが、大抵のエンジニアに「あなたは将来どうなりたいか?」と尋ねたならば、上記のようなイメージに近いものを思い描くと思う。

先に言っておくが、私は上述の条件にはかすりもしないクソ雑魚年収100万代フリーWebエンジニアなので、この先に書くことに、こうした「すごいエンジニア」にたいするやっかみや嫉妬が含まれていることは否定しない。むしろ、そういう文章だと思ってこの先を読んでいただければと思う。

すごいエンジニアとビジネス

いきなり急所をついておきたいので、ビジネスの視点ですごいエンジニアという存在を見てみよう。
儲かっているIT企業が実際に優れたエンジニアを多数抱えていることは事実だが、給与が高く、安定した会社に優れた人材が集まるのは当たり前のことなので、優れたエンジニアが収益をもたらす、と考えるのは早計である。

例えば、かつて半導体メーカーのメモリ部門には工学系の良い大学を出た地頭も能力も高いエンジニアが沢山そろっていたし、彼らがその技量をいかんなく発揮した「職人技」によって、歩留まりの高い製造プロセスを確立したのは歴史的事実である。だが、その後の日本のメモリビジネスの展開は皆さんが知っているとおりだ。(エルピーダメモリもなくなっちゃったよね)

つまり、ビジネスというのは為替やら競争やら資金繰りといった様々な要因が重なるものであって、優れたエンジニアの総力である技術力だけで成功するビジネスは稀有だと言えるだろう。

逆に言えば、優れたエンジニアのいる「ロードマップの先頭、エコシステムの中心」に、自社の技術陣を位置させるよりは、「ロードマップの真ん中、エコシステムの端」に位置させても、IT企業の戦略としては十分であって、後はタイミングや市場の見極めのほうがよほどビジネスに対するインパクトが大きいという考え方も可能である。

ただ、注意しておきたいのは、ITベンチャー特有の考え方として、優れたエンジニアを結集させることが投資家に対するアピールになる(というか投資された金の使い方として正しいと見なされる)という点がある。
なので特にベンチャーにおいて、優れたエンジニアが集まっている状況というのは、彼らが実際に収益を生むことを期待されているというよりは、ベンチャービジネスを腐れプログラマに汚染されない為の保険のような側面があるのかもしれない。

私の意見で言うと、どうせ3年後にはどこかへ行ってしまう優れたエンジニアを集めてレアル・マドリーのような銀河系軍団を作るより、メンターとして優秀な人物に権限を与えて、現場の人材育成を含めた開発現場の生産性改善サイクルを確立させるほうが、ビジネスとしてはよほど安定すると思うのだが、まあそういう時代ではない、ということなのかもしれない。

すごいエンジニアの夢

次に、すごいエンジニアはそのキャリアの中でどこに向かっているのか、ということを考えておきたい。(ちなみに私は10年前にキャリアを途切れさせたゾンビエンジニアなので、これらのことにあまり興味がない)

俗な話で言えば、彼らも高い給料を貰って、都内のタワーマンションに住みたいと思っているし、若い美人の女性と結婚して、子供を5人ぐらい作りたいとは思っている。だが、彼らにとってそれは「好き」なことを一生懸命やった結果として、そうなりゃいいな、という虫のいい考え方の一つであって、一般の人間が考えているほどは切実な目標ではない(なので彼らはいつまでたっても独身のままである)

そういったある種の無欲の結果として、彼らに与えられるのは比較的にそこそこの給与(と言ってもそれは、新人の素人同然のプログラマをせっせとCOBOLの現場に売りつける零細SIerの経営者のそれに遠く及ばない)と、同じエンジニアに尊敬されるようなポジションといった程度のものにすぎなくなってしまう。

にも関わらず、なぜ彼らが不断の努力を惜しまないのかと言えば、彼らの中に

思い描いたシステムを最高の方法で、最高の品質で好きなように作れるようになりたい。

という普遍的な価値観があるからだと私は考えている。

彼らの努力はつまるところ、そこに結集するのであり、非情なビジネスの世界で汗をかいている人間からすれば、そのオナニーじみた夢のために何でそんな苦労を、と思えるかもしれないが、エンジニア(特にプログラマ)という生き物は「好き」というところから出発して、そこから一生出てこない人間なのだと考えれば、彼らの「夢」がその程度のものであっても、それほど不思議なことではないのである。

世界を変えるすごいエンジニア

さらにすごいプログラマはもっと大きく「自分の力で世界を変えたい」と考えている場合もある。

総じて彼らはジョブスが大好きだし、Apple製品を愛用していたりもするのだが、では彼らにジョブスがガレージの外でやったこと、外部から優秀な経営者を招いたり、それにクーデーターを起こしてみたり、部下の努力を平然と踏みにじったりする覚悟があるのかというと、実はない。

これもまたエンジニアの虫のいい「夢」の一つであって、純粋に技術を突き詰めていけば世界は変えられるのだ、という無邪気な幻想がそこにある。

重要なことは技術だけで世界や人々を救うことは、ほとんど有り得ないということだ。
ジョブスのような狂人が引き起こしたレアケースを普遍的な事象として語るべきではないのである。

結論すると「好き」でやってることだけでは世界を変えられないのだとも言える。なので、彼らは一生経営者から食い物にされるし、その膨大な努力は、彼ら自身の純粋な「夢」の他には、せいぜいが彼らが一生「好き」なことで食っていくことに役立つ程度にしか使われることはない。




以上のように、「すごいエンジニア」もそうなりたいエンジニアも(劣等感を感じている私も)なんとも不毛な努力をしているように感じる。

同時に、毎日毎日、余計なことを考える必要もなく、「技術」というものだけを追求すれば良い、我々のようなエンジニアはひどく「純粋」な世界に生きているとも思えてくる。

私のように歳を食った人間ならわかると思うのだが、このくだらないまでに複雑な世の中で生きていく中で、この「純粋」で「シンプル」に生きることは、それはそれで何よりも貴重なことなのかもしれない。


エンジニアとして生きるということは「シンプル」に生きるということなのだ。そう考えてみると少しは救いがあるというものだ。