March 10, 2013
昨日、WebSig24/7のイベントがあって、そこで結構興味深かったのはチームラボの佐伯さんのプレゼンにあった、社内サーバーは全部クラウド化して、開発サーバーやテストサーバも全てコストとして可視化できた方がよいのではないか?!というアイディア
先日、総裁が書いてた尾崎豊の叫びみたいな、面白い半分、心配半分の記事でもそうなんだけど、作り手の側に技術に対する解釈の幅があって、その結果としてエンジニアにとっては定期的に言語選択闘争みたいなものが起きるのは、正直言って「緩い、幸せな世界」だなぁ、と思う反面「若干の不幸」でもあるなと思う。
簡単に言うとPythonを使おうが、PHPやruby,Perlを使おうが成果物の完成度にはあまり影響がないので、技術そのものに特別な競争力はない。
文字通りクソみたいな開発言語ってのは他の業界には沢山あって、そういうところでは技術選択の余地もなく、それを使って成果物を完成させお金をいただくわけ。どんな問題があろうが「動くように合わせて書く」のが当たり前で、そういうところからするとオープンソースは切磋琢磨が進んでいて素晴らしい世界。しかし、それにどっぷり使ってると、「甘やかされた人」にも見える心配があるわけで、いずれにせよ、「如何ともし難い」という中でキャリアを積んできた人からすると、もう言語仕様にケチをつけるというのは飲み会のネタ以外には、処理系の人以外にはありえないこと、、と思ってる人もいるわけ。つまり「選ばなくても良い選択肢」があるんだったら無視すれば良いじゃん、としか思わないわけです。
しかし、サーバサイド言語について技術選択の基準は、すごく乱暴に言えば創業メンバーの「好き嫌い」であり、その言語を使わなくてはいけないという経済的、技術的な理由にはなってない。また、趣味的な技術選択は、むしろ将来のリスクにつながるんじゃないか?!というのが、総裁の意見のポイントだったと思う。
結果として、今の技術選択はリクルーティングのためのブランディングの範疇に落ちていて、人気投票のような文脈になってるから、サービスや企業のトレンドの変化にあわせて、言語の露出が変わってオワコンとか言われてしまう。
これだとセカンドライフと何も変わらないではないか。セカンドライフは、サービス的な質とビジネス的な評価の二つがあって、ぶっちゃけて世の中に注目されたのは後者。そしてビジネス的な関心がなくなった瞬間にオワコン扱い。でも、中にいる人達はビジネス的な世界とか無縁に、自分の道を突き進んでいる、らしい。(そもそも純粋な住民と、ビジネス利用がクロスしてなかった、というのを昔、WebSigでやったセカンドライフイベントでお聞きした。)
プログラムの話に戻すと、
もっと言ってしまうと、関数やクラスの中のコードが少々質が低くても、入力と出力がちゃんとしてれば、そこでの差異になる効率の差異は、処理速度やIOの速度向上の中で、「無視出来る範囲」に収まってしまうのであれば、単純にコードの質を高めるモチベーションは、個々の職人根性の範囲という評価になってしまう。
もしも「関数内のコードの良し悪し」で、会社の利益が変わるのであれば、高い効率のコードを書ける人は、そのまま実力に繋がって、お給料が高くなってしかるべき。
しかし、それが無視できる範囲であれば、その部分は率直に言って、「経営的には重要ではない」。利益が変わらないなら、早くできる方が重要。
そういう現状で、どう楽しく働くか、生きるか?!というパラダイムになってるのが、今のITの作り手の環境なのかもなーと思ったりしている。
しかし、そういう余裕のある世界だからこそ、ITは発展し、開発者人口は増えて、多くのメリットを享受しているのだから、これは前提条件として仕方ないことなのである。
今もモバイルアプリがそうだが、たった一つの、重要度が高くない変数のぬるぽでアプリそのものが落ちるなんてのは、はっきり言って今の時代には非常識だ。そんなことよりユーザー体験の維持の方が重要であって、そういうエラーは裏でこっそり教えてくれて、つまらないエラーはスルーしてくれた方が良い。
モバイルも遅かれ速かれそっちに行くだろう。これがHTML5アプリ時代への渇望とセットという意味である。結局、HTML5のパフォーマンスが出ないのは、保護機能の集約でもあるわけだから、ハードウエアの進化がユーザーの利便性向上とプログラマ保護に繋がっていく。
まぁそれはいいのだが、こういう状況の中で、プログラマの業務の質が丸められてしまっている現状は否めず、それが、もろもろの言語闘争の原点だったりするのではないか?!と読んでいるが、こういう状況を打開する一つの方法が、クラウド化、である。
サーバリソースは時間課金であり、帯域利用が転送量課金であるならば、最適化されたコードや設計は、会社の利益に直結する。
これは単純に技術力の向上に繋がるのではないだろうか?!
単純にコスト意識を高めて、経営的概念をプロジェクト単位に導入するのも、決断は必要だが考え方としては好きだ。
よく経営者でも、何故か自分のお財布からお金を出すのは痛いのだけど、「会社持ち」になった瞬間に何故か無尽蔵にお金を持ってるんじゃないかと勘違いし、コストに対する当事者意識が薄れていくケースがあったりして、これは、どうも人間の性のレベルであることなんじゃないかと思う。経営者でこうなんだから、社員はもっとそうだ。まして大企業の社員であれば、もっともっとそうなってしかるべきだろう。
そういう部分で、単純にお金を節約しなさいと号令を出すのは、ただの締め付けでしかない。そうじゃなくて、適切な業務のインセンティブに直結するのであれば、
・無駄をすれば損失を被ることが可視化されている。
・頑張れば儲かる。そして自分の評価にも跳ね返ってくる
というのを、日常のメインタスクにも導入できればこそ職人意識は経営課題に直結する。
これが世界のサービスの質に寄与できる、求められる世界なのであれば、自然とそうなっていくだろう。
そうじゃなくて、極論「誰でもできる」方向で安住するのであれば、「誰でもできる」前提でのリーダーシップやPMスキル、またネット上のコミュニティスキルなどが重視されるだろう。今はどちらかと言うとこっちのような気がする。
ぬるぽでサービスやアプリが落ちるのは問題外だと思っているが、コードの質や設計力、もしくはプロジェクト管理力がコスト競争力に繋がる世界になるのであれば、クラウドはすごくエンジニアキャリアへの寄与度が高くなる可能性があると思うのだがどうだろうか。
#この話は昨日のWebSigイベントの懇親会で話しいた内容の延長でもある。こんなことも、そうじゃない楽しい話も、土曜の午後に流れでよく話しているので、是非またご参加ください。次のイベントは3ヶ月後。企画はこれから仕込んでいきます。その前にWebSigではめずらしい、ただの飲み会=ネットワークイベントやるって言ってたかな。
#冒頭に書いた、WebSigイベントでのチームラボさんの資料公開については現状確認中です。天才集団を支える中の人たちの意見として、かなりぶっちゃけてて面白すぎたので、修正アリかもしれませんが、大事な所は残して貰いたいなと思っていますのでお待ちくださいね。