ラーメン代分の儲け

伝説的起業家でベンチャーキャピタリストのPaul Graham (Wikipedia)が”Ramen Profitable“というエッセイを書いていました(和訳)。

「バイオの買物.com」のビジネスをやる上で僕が気をつけていること、僕がどうして資金調達などをしないのかなどが良く説明されています。

バイオでインターネットを使ってビジネスをやろうという会社はいくつかあります。いずれもまだ本格的に立ち上がっていませんが、資金調達に奔走したり、もしくはウェブサイト開発外注などを主な収入源としているところも中にはあります。そういうところはこのエッセイを見て、ちょっと考えを巡らしてみることをお勧めします。このエッセイが必ずしも正しいとは言いませんが。

“Ramen Profitable”というのは、創業間もないベンチャー企業が、創業者の生活費をギリギリまかなうだけの収入を得ている状態を意味する言葉で、アメリカでは徐々に普及してきているようです。ちなみに”Ramen”はインスタントラーメンを指し、めちゃくちゃ食費が安いという状態を指しています。

“Ramen Profitable”になれば、1)すぐにお金が必要ではないので投資家から有利な条件が引き出せる、2)投資家にとっても会社が魅力的になる、3)士気が高まる、4)資金調達のことを考えなくてすむようになるということで、とっても重要だとPaulは述べています。

この中でも特に 
 4)資金調達のことを考えなくてすむようになる ー> 製品のことに集中できる 
が重要だと紹介しています。

The fourth advantage of ramen profitability is the least obvious but may be the most important. If you don’t need to raise money, you don’t have to interrupt working on the company to do it.

4番目に紹介する”Ramen Profitability”の利点は、最もわかりにくいのですが、一番重要かも知れません。どういうことかと言いますと、資金を調達する必要があると、会社の仕事を中断してまでもこれを実施しないといけません。必要がなければ会社の仕事は中断しなくていいのです。

Raising money is terribly distracting. You’re lucky if your productivity is a third of what it was before. And it can last for months.

資金調達というのはもの、本業にとってはすごく邪魔です。生産性が1/3程度まで減少する程度であればましな方です。しかもこの状態は何ヶ月も続きます。

I didn’t understand (or rather, remember) precisely why raising money was so distracting till earlier this year. I’d noticed that startups we funded would usually grind to a halt when they switched to raising money, but I didn’t remember exactly why till YC raised money itself. We had a comparatively easy time of it; the first people I asked said yes; but it took months to work out the details, and during that time I got hardly any real work done. Why? Because I thought about it all the time.

私自身も今年になって初めて、資金調達がどうしてこんなに邪魔かを理解しました(というか忘れていました)。私たちが投資したベンチャー企業は、資金調達を始めたとたんに本業が止まってしまうのは今までも見てきていましたが、YCombinator(Paul Grahamのベンチャーキャピタル会社)自身が資金調達をするまでその原因が思い出せませんでした。そんなに難しい方ではありませんでした。最初に訪ねた人たちは賛同してくれましたが、細かい部分を詰めるのに何ヶ月もかかってしまいました。その間は本業はほとんど進みませんでした。なぜかというと、ずっと資金調達のことを考えていたからです。

At any given time there tends to be one problem that’s the most urgent for a startup. This is what you think about as you fall asleep at night and when you take a shower in the morning. And when you start raising money, that becomes the problem you think about. You only take one shower in the morning, and if you’re thinking about investors during it, then you’re not thinking about the product.

ベンチャー企業にとって、一時に集中できる重要課題は一つだけです。寝る前に考え、朝シャワーを浴びるときにも考えている課題です。資金調達を始めると、資金調達がこの重要課題になってしまいます。朝に一回しかシャワーは浴びないわけですから、このときに投資家のことを考えているということは、製品について考える時間がなくなっているということです。

一方で、”Ramen Profitable”に執着するあまり、コンサルタント会社(アメリカでは外注も「コンサルタント」と呼びます)になってしまってはもはやベンチャー企業ではありませんよと警告しています。

Is there a downside to ramen profitability? Probably the biggest danger is that it might turn you into a consulting firm. Startups have to be product companies, in the sense of making a single thing that everyone uses. The defining quality of startups is that they grow fast, and consulting just can’t scale the way a product can. [3] But it’s pretty easy to make $3000 a month consulting; in fact, that would be a low rate for contract programming. So there could be a temptation to slide into consulting, and telling yourselves you’re a ramen profitable startup, when in fact you’re not a startup at all.

Ramen Profitabilityの欠点はあるでしょうか。最大の落とし穴はコンサルタント会社になってしまうことでしょう。ベンチャー企業は製品を中心とした会社でなければなりません。すべての人が使う一つのものを作るという意味で。ベンチャー企業の最大の特徴は急速に成長することですが、コンサルティング会社は製品中心の会社のように規模拡大はできません。その一方でコンサルティング(2人ぐらいで)で$3000を稼ぐのは簡単です。むしろプログラミング外注としては安い方です。ですからコンサルティングをやろうという誘惑は強いものですし、それでRamen Profitabilityを達成した気になることは多々あります。しかし、そうなったらもはやベンチャー企業ではないのです。

生物とオブジェクト指向プログラミング: 細胞とグローバル変数

細胞はグローバル変数問題で悩んでいた

オブジェクト指向プログラミングと生物の共通性については別に書いていますが(ブログ内検索)、最近、生物は一つの細胞内ではグローバル変数を使いまくっていることに気づきました。

プログラミングでは何かと悪者にされることが多いグローバル変数ですが、単細胞生物は基本的に1つの容器の中で様々な化学反応を起こしているので、信号伝達に関係する分子もあっちこっちに分散してしまいます。その意味で、その分子の濃度などは細胞の中でグローバル変数になってしまいます。グローバル変数になるしか無いのです。

その上、使用できるグローバル変数の名前は限られています。なぜならば、生物における変数というのは化学物質の濃度に相当するわけですが、化学物質のバラエティーはどうしても限られてしまいます。単に文字列を並べればいいというものではないので、いろいろな化学物質を作るのも大変ですし、それ以上に数多くの化学物質を特異的に識別することは大変です。

ですから、細胞はグローバル変数を使わざるをえない上に、使用できるグローバル変数の数が厳しく制限されています。グローバル変数が非常にぶつかってしまいやすい状況にあるわけです。プログラミングでは御法度となっているグローバル変数の乱用を、細胞はやるしかありません。しかもソフトウェア開発以上に、グローバル変数がぶつかるという問題にぶつかりやすいのです。

生物はこの問題を解決するために、部分的にローカル変数を作ってみたり、あるいは名前空間みたいなことをやってみたりしています。

例えば信号伝達分子を膜局在にしているのは、ローカル変数的なアプローチの一つです。そして特に細菌に多いと言われている巨大な融合タンパク質は、名前空間的なアプローチと言えると思います。しかし細胞内局在によるローカル変数のアプローチは、細胞内オルガネラの数だけしかできないという制限があります。それでも細胞骨格とシグナリング分子の相互作用などもだんだんと解明されています。またイメージング技術の発達により、今まで考えられていた以上に細胞内局在が重要だという知見が得られてきています。制限はあるものの非常によく使われている、有効な方法です。

融合タンパク質による名前空間の創出については、タンパク質が巨大化してしまい、本来の機能が犠牲になってしまいますので、広く使うことができないアプローチです。

上記のアプローチは単細胞の場合のものです。多細胞生物化すると、今度はオブジェクト指向プログラミング的なアプローチが可能になり、グローバル変数の問題が一気に解決されます。オブジェクト指向プログラミングでは各オブジェクト内部の変数は隠蔽されますので、オブジェクト間で変数名がぶつかる心配はありません。細胞も同様に、細胞Aと細胞Bのグローバル変数は全く別ですので、ぶつかることはありません。

多細胞生物は様々に分化した細胞の集団です。ですから同じ名前のグローバル変数であっても、細胞ごとに全く別の機能を持たせることができます。こうやって生物は、限定された数のグローバル変数しか持たなくても、多様な機能を持つようになったのです。

ちなみにプログラミングをやっていて、変数名がやたら増え始めたり、変数名がどんどん長くなってしまう時があります。また関数呼び出しの際に、複雑なパラメータを渡さなければいけなくなってしまうこともあります。こういう症状は、グローバル変数そのものではないにしても、何か変数の問題にぶつかっていることの証拠です。このようなときは、単細胞から多細胞に進化し、クラスをいくつか作ってみるのがベストです。