>& STDOUT

主にソフトウェアに関する日々の標準出力+標準エラー出力

技術の進歩は「螺旋」である。 @t_wada さん社内講演

先週、新卒技術研修の一環として @t_wadaさん にご講演を頂きました。
題して「この先生きのこるためには」*1

f:id:shinsuku:20140424150843j:plain:w400

第一線のエンジニアとして素晴らしい薫陶の数々を授けて下さいましたので、渋谷や六本木の会社さんもオファーしてみたほうがいいですよ。ホント。

エンジニアはアーティストとしての側面も持つので、ファーストクラスの方の考え方に早いうちから触れておくことは、数年先の彼らの在り方に少なからず良い影響を与えるはずだ、という考え*2に基づくおふたりめの社外講師です。おひとりめは当時非公開でしたが、時効になってましたら教えてください。

新卒研修とはいうものの、社食のカフェテリアを全開放した形で既存社員にも受講してもらいました。正直、私も含めた既存社員のほうがよっぽど直接の教育効果は高かったんじゃないかと思いましたが、それはそれとして。ご講演の中でのいくつかの気づきを共有します。

技術の進歩は「螺旋」である

f:id:shinsuku:20140426193259j:plain:w300

今回最も衝撃を受けて、かつ個人的なブレークスルーになったのがこちらのトピックでした。この業界、基本的に後発有利でして、純粋な実装の能力に関しては、技術が洗練されていく点、学ぶ環境が整備されていく点において若いほうが有利です。年代的にちょうど若者とおっさんの中間地点におりまして、職制はラインマネージャ、職種はQAでありながら純粋実装技術でもそうそう劣りたくないワガママな身としてかなり焦っていたのですが、ようやく戦うすべを得られました。

外から見ると「振り子

中央集権システムと分散システムの例が最もわかりやすいかと思います。1980年代に全盛を誇ったメインフレームシンクライアントの関係は、その後のパーソナルコンピューティングへの流れを経て、再度「クラウド」という言葉で揺り戻って来ています。ソフトウェアエンジニアの外からみれば「それ30年前にあったやん」と思えるかもしれませんが「ホストコンピュータ&シンクライアント」と「クラウドコンピューティング」の間には、wwwの台頭によるHTTPベースのプロトコルの整備やリッチクライアント(もはやこれも懐かしい)、ソーシャルストリームによる情報の即時共有といった大きな技術要素がいくつも積み重ねられています。

つまり「振り子」ではなく、一周して返ってくる間に少し登っている「螺旋」である。と。

これらの差分を加味した上で、なぜこちら側に戻ってきたのか?そして次はどの方向にいくのか?を考えぬくことで、この歴史を知らない人(若者に限らずボーっとしてたおっさん含む)に較べて遥かに有利に個人的な技術戦略を採ることが可能になるのです。なんということでしょう。わーい。

もちろん、エンジニアである以上、技術の大局的な方向性には以前から強い関心をもって眺めていたのですが、これからはこの”少し登っている”部分に注目してより深い洞察を心がけようと思いました。こういうとき「螺旋」のイメージを持っていることで (一見同じに見えて何か増えているはず) という前提を持てることは意外に大事な気がします。

正しい技術が生き残るわけではない

前述の「螺旋」とも繋がるのですが、技術は技術的に正しいものが生き残ってきたわけではなく、使う人だったり、環境であったり、さまざまな要因で決まる、と。

例として、Linuxについてのリーナスとタネンバウムの議論 や、Worse Is Better というエッセーを挙げた上で「大抵は汚くても*3 劣っていてもシンプルなものが生き残る」との見解を示されていました。

技術にもレイヤがあり、例えば初期のFacebookのコードはそれはそれは汚かったそうですが、それが後日世界を席巻したことなどが想起されました。「螺旋」の「差分」を洞察する上で「正しいから生き残った」というバイアスを外すことができるという点で非常に重要な気づきを頂いたと思います。また、+1で「当時技術的に正しかったもの」は何らかの技術のDNAとして一部、あるいはそのまま戻ってくる可能性があるのではないかなと考えるに、何らかの自分が信じた技術にその浮き沈みに関係なく投資をしておくと後日莫大なリターンを貰えそうな気もします。当時まじめにJavaScriptやってた人とか。

エンジニアと企業の関係性が否応なく変わる

ほぼt_wadaさんのお話のまんま、かつ、研修を設計しておいてなんですが、今後「社内だけ」で技術力を一線に保つことは、加速度的に難しくなっていくでしょう。おそらくこれは技術者以外もです。「社外」に対して何らかの看板を建てることでその人に玉石混交の情報が集まり、それをキュレーションして価値にして発信することでまた更に情報があつまる、というポジティブフィードバックの形成を、企業自体が支援していくことが、人材だけが資産であるソフトウェア企業にはMUSTとして求められます。

一方、エンジニアが社外において価値を認められれば認められるほど、企業を移ることが容易になります。経営者にとってはさぞかし辛い時代ではありますが、全力でエンジニアの社内外での成長を支援しつつ、人材自体の流動性を高いレベルで維持する、そのために、社内外に対しいかに自社が魅力的な環境であるかをアピールしつづける、ことが現時点での最善手ではないかと思います。引き続きがんばっていきましょう。

参考(手前味噌):

ご講演のあと。アウトプット重要。

受講していただいた新卒社員には「これ社外に向けてどこかに書いてね」とお願いしてあります。ここに挙げた以外にも数々の実践的、観念的両面からの素晴らしい教えを頂いたので、そのうちのいくつかは彼等の何らかの社外への出力でカバーされることでしょう。t_wadaさん、本当にありがとうございました!

*1:"せんせい きのこる" が正しい読み方です

*2:別にそれが当社に対するもので無くて良い

*3:誤認。ご指摘により訂正