シリコンの谷は、いま。
雑誌の記事とはずいぶんちがうみたいです。

第25回
スタートアップはなぜ速く動けるのか?



最近仕事をしていて、なぜスタートアップ企業
第9回「ベンチャー企業って、
 今でもたくさん登場しているの?」)が
あのように素早く動くことができるのかという
理由がわかったような気がしました。

スタートアップは、典型的に数人のエンジニアが
集まって始まります。最初は会社ですらない状態で、
趣味の延長や大学の研究のような形で始まります。
お金もなく、投入できる労働力も限られていますし、
お客さんも最初はゼロですから、
作り出されるものの規模は
極めて小規模なものから始まります。

今ではインターネット企業の大手になっている会社でも、
最初はほんの数台のコンピューターを使って始まります。

生み出されたサービスが段々多くの人に使われ、
知名度が上がってくると、コンピューターが混雑し
始めたり、扱われる情報の量が大きくなってきます。
それに応じて、システムを改良していくことで、
段々システムが複雑化してきます。

最初は1台のコンピューターで扱えたデーターも、
1台には納まらなくなりますから、それを複数台の
コンピューターに分散して持たせる必要が出てきます。
また、少ない量のデーターを処理するのであれば、
コンピューターの計算性能を生かして
力技で処理することができるものも、
情報量が増えてくると、
短時間で処理できなくなってきますから、
あらかじめ時間のかかる計算を済ませておいて、
結果だけを利用したりする仕組みを追加したり、
計算方法を気の利いたものに
改良したりする努力が注がれます。

サービスが成長するにしたがって、
日々システムの改良を続けていきますから、
気が付いたときには利用者が百万人、一千万人を超えても
うまく動くシステムが出来上がっているのです。

しかし、すでに規模が大きい会社で
同じサービスを作ろうと思うと、
なかなか短期間に同じものを作ることができません。
それは、極めて小規模のシステムを
世の中に出すことができないからではないかと思います。

大きな会社の場合、その会社のブランドを
傷つけてはならないので、各製品はそれなりの品質を
保つことが要求されます。
ですから、例えば、作られたシステムは、
24時間止まらず動くようにしなければなりません。
大体このためには、同じようなものを2つ作り、
1つ目が壊れたら、自動的に予備のコンピューターに
切り替えるといったような方法を使うのですが、
最初の段階でこの仕組みを考えなければなりません。

さらに、会社の知名度が高い場合には、
サービス開始直後に急激に利用者が増えることが
考えられます。
ですから、最低でもその利用量に耐えられるだけの、
中規模のシステムを最初から作らなければなりません。

この2つだけでも、システムの複雑度は、
スタートアップ企業が作り出す最初のシステムに比べ
高くなってしまいます。

それ以上に問題なのは、この難しいシステムを
机の上で設計しなければならないことです。

実際このように設計した後にシステム作りをはじめると、
頭の中で考えた時には想定しなかった問題が
次々に出てきます。
ある程度の問題は開発を進める段階で
軌道修正していけばいいのですが、
時には大幅な設計変更をする以外に
問題解決の方法がない場合があります。
こうなると、設計から開発に至る多くの労力を捨て、
もう一度出直すことになります。
もちろん、時間も余計にかかります。

僕も同じようなものを何度か作る機会に恵まれたので、
その両方を経験することができましたが、
1つ目の開発の経験を元に2つ目を設計する場合にも、
すべての落とし穴を事前に察知することはできずに
苦労をしました。

スタートアップでのシステムの開発と、
大きな企業でのシステムの開発の難しさの違いは、
こう言い換えることができます。

スタートアップのように開発は、
目前に迫ってくる問題は、今よりも少し難しい問題で、
これを1つ1つ解決していくことです。
例えれば、階段を1段ずつ登っていくようなものです。

これに対し、いきなり大きなシステムを作ろうとすると、
10段目の高さまで、一気にジャンプしようとする
ようなもので、1つ1つ解決していくのに比べ、
一度にたくさんの問題を解決することは
一筋縄ではいきません。だから難しいのです。

そして、スタートアップ企業は、小さくても
サービスを運用し、収益をあげていくことができますが、
いきなり大きなシステムを開発する場合、
完全に出来上がるまではお客さんに使ってもらうことが
できません。
そして、ようやく出来上がった時には、
すでに他社はその先を行っているなんてことに
なりかねません。

僕の場合は今、いきなり大規模なシステムを
作る方の環境にいます。
そして、今回書いたような問題を
実際に毎日肌で感じています。

スタートアップの手法がそのまま通用するとは思いません。
しかし、スタートアップ企業のように、
とりあえず動くものを作って世の中に出し、
そして、それからその規模を大きくしていくという
アプローチを応用すれば、成長した企業でも効率的な
開発ができるのではないだろうかと、最近考えています。

上田ガク

2003-12-16-TUE


戻る