昨日MIJSのコンソーシアム内での技術発表会があり、理事会の方から「参加ベンダーの技術者が集まるイベントなので、技術者に元気を与えられるような人に講演をお願いしたい」という話があったので、はてな伊藤さんに講演をお願いした。

伊藤さんにお願いしようと思ったのは、伊藤さんなら、エンタープライズの世界にウェブの世界の元気な風を吹き込んでくれるのではないかと思ったからだ。

以下、私なりに講演の内容をまとめてみた。

前半: はてなの話

■「建物の建て方」
つくる対象がどのようなものかで、作り方は当然変わってくる。これは建物もソフトウェアも同じ。1階建ての格好良い小さなロッジを建てるのと、60階建ての安全で高品質な巨大ビルを建てるのとは方法も道具も異なる。ロッジを建てる時にはノコギリを使うが、巨大ビルを建てるにはクレーンを使う。

よくブログの世界でソフトウェアの開発について、ぜんぜん違うことをやっている人が同じ土俵で議論しているので、議論があわないことがある。はてなのやり方を話すと、医療や金融の人から、そのやり方では品質に問題がありすぎるという指摘を受けることがある。ソフトウェアについても建物と同じで、開発対象となるソフトウェアの種類によって方法が変わってくる。少人数でつくるソフトウェアの開発には職人技が求められるし、大規模プロジェクトではプロジェクト管理の方法がより強く求められる。

■ ウェブベンチャーの方法
ウェブはミッションクリティカルではない。少ない人、モノ、カネでつくっていく。仕様は決まらず、試行錯誤の連続。

ソフトウェアの品質は、90%まで持っていくのと、そこから100%まで持っていくこととで1%品質を向上させることの意味がまったく違う。90%から先の品質は90%までの品質よりずっと時間と手間がかかる。ウェブのビジネスはすぐ儲かるわけではなく、どのサービスがビジネスにつながるか予測できないから、ウェブベンチャーでは、90%の状態で使ってもらって、試行錯誤を繰り返すことが大切。ビジネス化を考えるのは、その後でいい。

■ はてなの作り方
自社開発を大切にしている。会社を立ち上げたばかりの頃、商用サーバーは高価で手がでなかったから、自分たちで部品を調達してサーバーを自作していた。そういう習慣が良い方向に作用したと思う。予測不可能なレベルでトラフィックが伸びているときに、納期数週間の商用サーバーでは対応できないが、自作サーバーだからそこ対応できた。ソフトウェアについても、PerlのMVCフレームワークなど、さまざまなものを自社開発し、今でも使い続けている。

企業が継続していくとして、ノウハウや技術を蓄えて、ベテラン技術者をどれだけ確保できるかが鍵になる。自分たちでつくることに対するこだわりが、こうした技術の蓄積を促していると思う。

■ 開発者がつくる
はてなでは、開発者が自分で企画してつくるようにしている。一人でつくって、途中から二人くらいで手伝う。例えばオンラインでブックマークができたら楽しそうだというのを言葉で話しても、そんなサービスを使いたい人がいるのか、といったような批判的なコメントしか返ってこない。だからまず一人でつくってみて、ものを見せる。最初から三人くらいで考えると、変わったところのない普通のサービスになってしまう。アイデアを考えた人が、どれだけ妄想できるかにかかっている。新しいことの正しさは、あなたにしかわからない。だから、一人でつくることが大切。

■ 継続する
はてなでは今、10くらいのサービスがある。続かなかったサービスも同じくらいの数ある。今でも続いているサービスは、細かく細かく、毎日改善されている。続かなかったサービスは、この改善が止まってしまったサービス。最初はやらなかったサービスでも、毎日少しずつ良くしていると、いつの間にかユーザーが増えていたりする。だから1年とか2年くらいかけて、毎日改善して育てていく。

後半: オレの話

■ パソコンとの出会いと別れ
幼稚園の頃、パソピア7を父親が買ってきた。多分、買ってきたのではなくボーナスの現物支給だった。パソコンは買ってもらえたのに、ファミコンは買ってもらえなかった。プログラミングについてはベーマガのソースを打ち込んで実行しているだけだったが、紙から写せることを知っていたことは良かった。プログラムはコードでできているということがわかった。

小学校時代にはMSX2+でMSXマガジン、MSX FANのコードを写して実行していた。基本的にはひたすらゲームをやっていた。

中学から高校の間は、PCの話をしていると隅っこに追いやられるような気がした。PCの話をしていると女の子にも持てないような気がした。PCの話よりは、サッカーの話をしたりする方が受け入れられた。こうして、思春期に一度PCから離れた。

■ ネトゲ廃人の3年間
大学に入学すると、周囲の「これからはインターネットでしょ」という雰囲気に乗ってPC/AT互換機を購入した。そしてネトゲ三昧の日々が始まった。学生生活の大半をネトゲに注ぎ込み、何も生み出さない3年間だった。

ある意味インターネットの醍醐味を感じていた。昔から、ドラクエで街の人がNPCではなく人間だったら面白いのにと思っていた。Ultima Onlineではまさにそれが実現していた。PCの前に座っているだけで人と人とのインタラクションが実現してしまう。言わばひきこもりエンタテイメントだった。

■ UNIXとの出会い
研究室に入る頃になって、ようやく社会復帰した。研究室の教官からは「伊藤パソコン得意そうだし」と言われたが、実際には得意なのはゲームだけだった。

この頃に、小さい頃からやってきたことがつながり始めた。幼少時代のプログラミング。ネトゲの裏側の世界への好奇心。

UNIXは単純に楽しかった。

■ プログラミングとの再開
大学を卒業すると、ISPに入社した。当時はインターネット = ISPくらいの感覚で入社した。

プログラミングくらいできないとと思い、勉強を始めたが、C言語はポインタとかわからない、Rubyはオブジェクト指向でわけがわからない、Lispはまるでわからない、Perlは唯一わかった言語で、これで掲示板をつくろうと思った。最初にプログラミングを始めるまでに3回くらいは挫折している。

当時のレベルは掲示板をCGIで書けるレベルで、役に立たない新人だったが、でもプログラミングを面白いとは思っていた。

■ 「プログラマはいらない」
コードを書かせてもらえず、会議が多すぎる状況に、愚痴ばかり言う社員になっていた。
上司との面談では、「プログラマはいらない」と言われた。

ある日、ベンチャーに勤めている同い年のスーパーハッカーに、「一ヶ月くらいでできそうですね」と話したところ、「いや、3日でできる」と言われ、衝撃を受けた。

自分はコードを書かせてもらえないのではなく、書けるだけの実力がなかった。コンプレックスを会社のせいにしてしまっていた。

人生ハイリスクハイリターンでないと面白いことはやってこない。当時はリスクを取っていなかった。敢えてリスクを取ってみようと思った。

■ ベンチャーでの日々
背後に誰もいない言い訳できない環境だった。取締役なので、「会社が…」という言葉はそのまま「お前が」という言葉に置き換わった。誰も書くなとは言わないので、「コードが書けない」という不満もいえなかった。サーバーダウンへの対応など、苦しく、大変なときもあったが、その中に楽しさがあった。

ISPの時には自分でつくっていないというコンプレックスがあったが、はてなブックマークの開発で、ようやく自分がつくったと胸を張ることができた。

はてなブックマークでは、たくさんのコードを書いた。酷いコードも量産したけれど、それでも「自分がつくったサービスです」。

■ コードでなければ、世界は変えられない
自分が幼少期の頃と今のインターネットの時代とで、世界は変わった。でも、手段は変わっていない。昔はPCの前に座ってできることは一人でゲームをすることだけだった。今ではPCの前で他の人と遊ぶことができるようになった。それでも手段は「Bit and Bytes」。

コードでなければ世界は変えられない。一生プログラマでいたいと思っている。



Perlプログラミング救命病棟
ピーター・J・スコット トップスタジオ 伊藤 直也
翔泳社 (2005/09/06)
売り上げランキング: 189840
おすすめ度の平均: 5.0
5 目的のある本だが、楽しめる要素も多い