そのあたりから、WEB業界の勉強会に顔を出すようになったのですが、WEB系のエンジニアと、エンタープライズのエンジニアの歴然とした違いに驚いたんです。WEB系の人は、コーディングから企業の経営まで興味を持ち、技術の吸収にも貪欲です。一方エンタープライズの人たちは、上流工程なら上流工程だけ、プログラミングならプログラミングだけ…と仕事が細かく分割されていて、他人の領域にはあまり興味を示しません。
僕はそもそもエンタープライズ側の人間なので、そこに大きな危機感を覚えました。どうしたらエンタープライズ系のエンジニアがもっと自ら学び、WEB系との競争力を得ていくことができるのか。
エンタープライズ系とWeb系というくくりが漠然としているので、これを見て違和感を覚える人もけっこういるだろう。とはいえ、意味がぶれては困るので、本エントリでは上記の文章に会うような形でエンタープライズ系とWEB系という単語を再定義して利用する。従って、一般の定義と異なる点に留意して読んでいただきたい。例えば、有名なインターネット系企業がエンタープライズ系にみなされたりするだろう。
で、このへんの違和感をもうちょっと書き変えると楽しい釣り記事に化けるからあら不思議。よ。さん爆釣おめでとうございます。
驚くほど沢山の人がこれを単なるエンタープライズ系Disと見ていてびっくりするが、そもそもエンタープライズ系という言葉がたしかに侮蔑的な響きを若干含まないではなく、
などという爆笑もののコラムもあるぐらいである。しかし、上の記事の危機感と重ねあわせると、まあ納得はいかないでもない。ただし、よ。氏がこの文章をdisとして書いたわけではなく自分なりの思考実験として書いたのだろうな言うのはわかるし、ほぼ正解だと思う。え、どこがだって?
服装 | スーツ | Tシャツ |
ここ。要するにこの問題は、古典的な宗教戦争であるスーツvsギークにマッピング可能だ、という話でしょう。まあ単純にスーツvsギークで置き換えられる話では決して無いんですが、本質的にはここです。
だから、L.starとしては「エンタープライズ系」の人たちが「WEB系」みたいに勉強会に出て熱心に勉強するようになる方法とか、実はあんまりないと思っています。「WEB系」ってのはギーク、つまり伊達と酔狂で世界を良くするためにしがらみ無視してコード書くような輩なのです。仕事で書いてる人たちとはモチベーションの出処が違いすぎる。まあそんなこと言ってると「エンタープライズ系」の中でも特に心無い人たちから「酔狂でやってるんだったら給料とかいらないよね」とかありえない反論受けたりするわけですが、完全に違法ですのでそこのところよろしくと言い返したいし、そもそもじゃあお前が酔狂でただ働きしてから言えよ、という身も蓋もない罵詈雑言のあびせあいになりかねない。
やや脱線したが、ちなみにこのブログでは、このへんを騎兵vs歩兵という言い方で表現している。以下のエントリが一番詳しい説明だろう。
ブラック企業 vs ハイテクノマド:最後まで立っていたほうの勝ち
1つ目は、「多数が団結することでスケールメリットにより成果を出すのが最良である。故に個人が多少なりとも不便であっても、全体としての収支のために足並みをそろえて協力するのが一番」というやりかただ。スケールメリットは、どの時代においても常に強力な武器であるが、同時に大多数が協調動作するのは常に困難だ、という欠点がつきまとう。大企業などははっきりこのモデルなのだが、ここではいつもの比喩になぞらえ「歩兵型」と呼ぶ。
もう一つは、「少数が強みを生かすことによる精鋭型が最良である。故に協力関係とかは重視せず、個々人が最大限のパフォーマンスを出すことに集中すべき」というやりかたである。このやり方では、確かにスケーリングすることは難しい。しかし、個人の能力の技術によるブーストが大きくなれば、スケーリングのような阻害要因もなく強力な威力を発揮する。こちらは「騎兵型」と呼ぶ。
さっきの「どうやればWEB系の人のように最新技術を自主的に学ぶようになるか」にまじめに戻ろう。いや「みんながみんな個人の時間削ってまで勉強するほど意識高い人じゃない」というのも事実だと思っているが、それだけでは勉強熱心な人材がWEB系に偏っているように見えることが説明できない。むろんそんなのは「見ている人の範囲が狭いだけ」ということもできよう。しかし、そこには論理的な説明もある。
個々の個人が歩兵のように動くか騎兵のように動くか、というのは完全に属する組織に依存している。歩兵としての行動をすべきなら、騎兵のように個々のパフォーマンスに頼った行動をすべきではないし、全体に沿った動きになるために道を外すべきでもない。だから、個々の個人が騎兵のようになろうとすることはありえない。それゆえ、エンタープライズ系の人は、組織全体のスループットを最適化する最善の選択肢として、唯々諾々と指示に従って自主性を発揮しない。
じゃあなぜWEB系がそれを取り入れられているのかというと、歴史的経緯としか言いようがない。
エンタープライズ系の世界は、汎用機の時代から続く古い文化から枝分かれしている。最初のころには、プログラムを設計する人と入力する人が別で、デバッグは机上で行ってから入力を依頼して翌日パンチカードが完成、みたいな気の遠くなる作業が必要だった。勢い、プログラムの生産性を向上させるためには分業が欠かせない。設計、実装、入力、テスト、レポート、みたいな分業は当たり前になるし、それが多数のチームで分散することになる。そうしないと、プログラム投入にかかるレイテンシを削減することが難しくなる。そう考えると、歩兵型文化はむしろ当時の歴史的必然から発しているとも言える。
一方WEB系はもっと後発の技術が中心で、極端に高度化された例では一人がコードを書いたら自動でテストが走り、シェル一発でHerokuの新しいインスタンスが出来て自動で本番デプロイ完了、ぐらいの勢いのある世界にいる。このような世界では、一人が技術的に習熟してなんでもやってしまったほうがコンテキストスイッチやナレッジの転送が入らない分絶対に速いはずである。それにインターネットはフリーソフトウェアムーブメントなんかを源流にもつ全世界的に広がるオープンな非常に騎兵的な文化から発祥しているため、そもそも騎兵型と親和性が高いのである。とはいえ、WEB系といっても全ての企業がその恩恵に浴していないわけではない。そこはまだ過渡期だから、ということだろう。
じゃあエンタープライズ系がWEB系になればいいよね、というのがおそらく唯一の選択肢なのだが、簡単ではない。そもそも既存の大量の基盤がエンタープライズ系として存在しているのを、どうやって移行するかという問題がある。単にコードやツールの問題だけではなく、そこには規約にしろ政治にしろ体制にしろ、すでに記述されてしまった文化があるのだ。それは恐竜が’鳥類になれないぐらい決定的な差である。それを置き換えよう、というかWEB系の技術カルチャーでエンタープライズ系の要件を再実装しよう、という流れは例えばSalesforceみたいなのがあるとおり、色んな所で存在している。この10年ぐらいでひょっとして答えが出てくるかもしれない。