[ゲスト] 石黒邦宏 Kunihiro Ishiguro
4月26日(月)〜4月28日(水)までの間、梅田望夫さんの代わりに石黒邦宏さんがゲストブロガーとして登板します。梅田さんの更新は5月6日(木)からになります。
石黒さんのプロフィール:1993年銀行向け大規模開発プロジェクトのシステム管理者としてキャリアをスタート。1995年にISPへ転職、国内外のインターネットバックボーン構築に携わる。1996年ウェブシステム作成会社へ転職。同年フリーな経路制御ソフトウェアGNU Zebraの開発を開始。1997年、日本ネットワークオペレーターズグループJANOGの設立に関わり初代会長に就任。1999年シリコンバレーにIP Infusionを吉川欣也氏と共同設立、CTOとして技術面のマネージメントにあたっている。 |
今日から3日間、ゲストブロガーとしてここに書かせていただく石黒です。普段は読者として楽しませていただいている場所に、よもや自分が書くことになるとは夢にも思いませんでしたが、せっかくの機会ですから、私がいる場所から見たシリコンバレーの風景をお伝えできればと思います。
先週、梅田さんから身に余る紹介をいただきましたが、私は「IP Infusion」という会社のCTOをしています。CTOを日本語に直すと「最高技術責任者」というすさまじい役職名になりますが、日々やっていることは淡々としたもので、会社のこれからの技術開発の方向性を決めること、エンジニアのマネジメント、そして実際にプログラムを書くことが主な仕事になります。IP Infusion はネットワーク関係のソフトウェア開発がメインのビジネスですので、私は毎日シリコンバレーのプログラマーと一緒にソフトウェア開発をしています。
シリコンバレーのプログラマーは本当に凄いのか?
さて、いきなり本題に入りたいと思いますが、シリコンバレーのプログラマーは本当に凄いのでしょうか?野球で言えば大リーグに例えられたり、サッカーで言えばセリエAに例えられたりするシリコンバレーですが、本当のところはどうなのでしょうか。野茂や中田クラスのエンジニアがごろごろしているのでしょうか。社内にいるエンジニアに突撃インタビューをしてみました。
「さて、どう思いますか?」
「いやぁそんなに凄くないんじゃないかな。だってうちのエンジニアのSさんとか」
「まぁ確かに。。。。」
「前にいたRさんも結構ひどかったし」
「痛いところを突きますね。まぁそういうのは忘れるとして、凄い人もいるんじゃないですか?」
「まぁ優秀な人は優秀だけど、他の会社の人を見てもそんなにずば抜けて優秀というわけじゃないと思いますよ」
私も同感です。とんでもなく才能がある人たちが世界中から集まって来て、さらにその中でお互い切磋琢磨しあっていて、普通のエンジニアなんかとてもじゃないけど、相手にしてもらえないと思っているあなた、だまされています。
シリコンバレーの本当の恐ろしさは、そこそこ優秀ではあるけれど、どこにでもいるようなありふれたスキルのエンジニアを使って、あるいは場合によっては、インドのアウトソースサービスを使って、世界中どこにもないようなソフトウェアや、サービスを短期間のうちに作り上げる仕組みのほうにあるのだと思います。
スピードとスケーラビリティ
梅田さんが以前、吉岡弘隆さんの「未来のいつか/hyoshiokの日記」を引用されていますが、非常に的確な文章なので、ここでもう一度引用したいと思います。
「少なくとも大規模商用ソフトウェア開発の現場に身を投じるにはシリコンバレーに行かざるを得ないと感じていたのである。西海岸に行ってみて、ソフトウェアの作り方の非常に大雑把な点とか問題もいろいろ見えたことは見えたのだが、それ以上に、ソフトウェア開発のダイナミズムに圧倒された。一言でいうと、スピードとスケーラビリティである。」
まさに、シリコンバレーの特徴は、「スピードとスケーラビリティ」に尽きると言っていいでしょう。これは開発スタイルだけではなく、シリコンバレーのスタートアップ企業そのものの特徴とも言えると思います。
なにしろ、どんどん新しい会社ができますし、プランが固まればすぐに開発がスタートします。「さぁ、作れ」「できたら売るぞ!」というノリです。会社も製品も、まったく何もないところから作るわけですから、全てがスクラッチ・ビルディング(scratch-building)に特化したものになっています。
100万行のソフトの作り方
では、具体的にはどういう開発スタイルが「スピードとスケーラビリティ」を可能にするのでしょうか。
たとえば、今私が会社で作っているソフトウェアのソースコードはだいたい100万行くらいあります。1999年に会社を設立した時点では20万行前後でしたらから、これまでの4年半で約80万行増えた計算になります。最初の1年間は、ビジネスプランの検討で忙しかったり、バブル期でエンジニアを採用しようと思ってもなかなかうまくいかず、実質私1人が開発者という状況が続いたため、この80万行は、主にこの3年半あまりの間に増えたことになります。
テストエンジニアも含めて開発人員が20人から30人の規模で、年間20万行以上のペースで増えているわけですが、これはちょっと常識はずれな勢いと言っていいと思います。
これを可能にするシリコンバレーの開発スタイルを簡単にまとめてみると、こうなります。
- 極めてシンプルな組織
- 完全にトップダウンの命令体系
- レビュー、ソースコード管理、デイリービルドを毎日行なう早い開発サイクル
- ダイナミックなリソース割り当て
1つ1つはどれも特別なことではありませんが、どれも「スピードとスケーラビリティ」だけを念頭において実にうまく練りあげたものになっています。
明日は、このシリコンバレー流100万行のソフトの作り方を詳しく見てみることにしましょう。