エンジニアの働き方や成長について様々なブログのエントリーが寄せられた、KLab株式会社と株式会社はてな開催の「KLab×はてな エンジニア応援ブログコンテスト」。エントリーを審査した両社のCTO、KLab株式会社 取締役の仙石浩明さんと株式会社はてな 執行役員の伊藤直也に、エンジニアとして歩んできたこれまでの経緯や、コンテストでも募った“武勇伝”などについてお話を伺いました。これからエンジニアを目指す人へのメッセージも、熱く語られています。
■ エンジニアを目指したきっかけ、それぞれの進んできた道
――お二人がエンジニアを目指したきっかけについて、教えてください。
伊藤直也(以下、伊藤) 仙石さんとは年齢はいくつ違うんでしたっけ。
仙石浩明さん(以下、仙石) 11歳離れてますね。
伊藤 それぞれが触れたコンピュータの世界も違っていそうですね。一番最初に触ったコンピュータは何ですか?
仙石 PET 2001(コモドール)です。もちろん8ビットです。
伊藤 自分が初めて触ったのも、8ビットのパソピア7(東芝)です。父親が買ってきたものなんですが、当時使い道がなくて放っておかれていたのを、子供がいじくりまわしていました。運が良かったですね。
仙石 私は中学の時にマイコン部に入っていました。20人以上も部員がいるのに、当時マイコンと呼ばれていたPET 2001が3台しかなくて、触るのでさえも大変でした。2週間に一度、20分くらいしか使えなかった。紙にプログラムを書いて、2週間に一度の20分で打ち込んで、簡単なゲームを1年かけて作りました。
伊藤 マイコン部に入部しようとしたきっかけは何ですか?
仙石 人数を制限したかったからだと思いますが、1年生は入れなかったんですね。1年生の時に文化祭で見て「入りたい!」と思ったけど入れなくて、2年生になった瞬間に何が何でも入ろうと。
伊藤 コンピュータを見た瞬間から興味や好奇心が湧いたんですか?
仙石 文化祭でゲームが動いていたんですが、どうして動くのか全然わからなくて、何をどうプログラミングしたらこういう画面になるんだろう?とすごく不思議でした。今なら、たぶん小学生でもプログラムがどんなものか知っていると思うのですが。
伊藤 子供の頃はソースを打ち込まないと何もできず、今みたいにソフトをダウンロードできる訳でもなかったですよね。『マイコンBASICマガジン』(ベーマガ)を買ってきて、自分たちで必死にソースコードを打っていたので、ソースを見てfor文やif文を書くとこういうふうに動くというのは知っていました。その後しばらくはほとんどパソコンを触りませんでしたが、大学の授業で扱った時に周りの人がそもそもソースコードを打つということを知らないということを知って、「あっ、そういうものなのか」と思って。
仙石 私は小学生の時に全く想像がつきませんでした。ゲームが動いてる、それはわかる。それ以前にもインベーダーゲームなどはあったので、ゲームというものが存在するのはわかるけれど、想像がつかないので、何としても知りたかった。
伊藤 好奇心から入っていったんですね。僕は大学に入った時には得意意識を持っていたので、これを職業にしたらうまくいくんじゃないかと考えました。
仙石 私もそうです。中学のマイコン部のオリエンテーションで、BASIC言語を使っているということを聞いて、すぐに『BASICで広がる世界』という本を買いに行き、読みました。その時はプログラマという職業を全く知らなくて、どういう職業につけばそういうことができるのかも全くわからなかった。でも、プログラムを組むような仕事ができたらいいなと強く思いました。
伊藤 ちょうどこれからインターネットがコンシューマーの市場に広がり始めるという時に大学に入学して、久しぶりにパソコンを触ってみたら「インターネット」というものがあるらしいとわかったんですね。ちょっとソフトを作って売ったら100万円稼げちゃった、HTMLを打ってバイトしているという友達も何人かいて、「これってお金稼げるんだ」という感覚がそこで出てきて。その頃Googleも台頭してきてビジネスとして規模が大きくなっていたことや、サービスを考えるのが好きだったことから、もしかしたらインターネットの分野でいけるかもしれないと考えました。とはいっても、大学の時はネットゲームばかりやってたんですけど。
仙石 10年違うだけでずいぶん違いますね。
伊藤 仙石さんはそもそもインターネットの立ち上がりのところからですよね。
仙石 京都大学の4回生か大学院に進んだ頃に初めて「anonymous FTP」が出てきて、東京大学にアクセスしたらつながっちゃった、どうなってるんだろうと、とても不思議だったのを覚えています。それ以前は電話をかけてUUCPでつながっていたので、メールを書けば電話のリレーでつながるというのはイメージが湧くのですが。
伊藤 学生の時にはTCP/IPでの通信環境はありましたか?
仙石 日本でもごく一部、数校がTCP/IPでつながっている時にたまたま使えたという感じですね。あの頃は、たぶん関西だと京大くらいだったと思います。
伊藤 仕事でエンジニアリングをしようと強く思ったきっかけはありましたか?
仙石 最初は研究者になりたくて、博士課程に進むか一瞬迷いましたが、企業にも研究所があると考えて日立製作所に就職しました。論文の執筆をメインにしようと思っていたんですが、私がコンピュータいじりをとても好んでいたので、先輩の研究者が「SPARCstation 10」(サン・マイクロシステムズ)をくれたんです。そこから本業の「遺伝的アルゴリズムの研究」よりものめりこんで、いつのまにか「SPARCstation 10」をいじっている時間の方がはるかに長くなってしまいました。
その頃、会社内に外からダイヤルアップできる電話番号があって、そこにポーリングすれば自宅のマシンにメールが届くはずだったので、何とか実現したくて。今のように資料が豊富にあるわけでもなくて、あるのはサン・マイクロシステムズのマニュアルくらい。一生懸命自宅で環境を整えてそれができるようになったことがすごく嬉しかったですね。次は自宅をIPリーチャブルにしたいと考えて、常時接続の「OCNエコノミー」がサービスを開始した途端に申し込みました。当時月額38,000円でつなぎっぱなしだったんですよ。
伊藤 今みたいにサーバにできるマシンが簡単に手に入ったり、OSがインストールしたらすぐ動くという時代じゃなかったですしね。当時はマシンを与えられるというのはすごく特別なことで、サン・マイクロシステムズのワークステーションは宝物みたいでした。
僕も大学の研究室に入った時にサンのワークステーションを使っていいと言われてちょっといじったりしてました。ADSLとか光回線も本当に全然ない時代ですね。昔はすごく高い料金を払って常時接続の回線を引く“人柱”のような人がいて、その人がパソコン通信のホストやインターネット上のサーバを運営していました。なぜかチャットのサーバを使わせてくれる人がいて、ネットゲームの仲間同士でつないで、そこで会話したり。
当時はインターネットを使いたいと思っても、インフラ部分に足りないものがまだまだたくさんあって。そこにビジネスの香りがしたんですよね。だから思い描いていたビジネスは、インフラの色が強かったです。
仙石 私は全くといっていいほどビジネスのことを考えていませんでした。この高いIPリーチャブルの料金出せないな、どうしたらいいかなって考えてばかりで。ビジネスの視点は本当になかったですね。
伊藤 自分にとっての当時のインターネットのビジネスはインフラというイメージが強くて、2002年の新卒時はISP(インターネット接続業者)の会社を選びました。実際には当時は、すでにインフラよりも上の層、ネットサービスも競争になっていた。Googleが騒がれ始めた頃で、GoogleやAmazon、楽天などのネットサービスビジネス化のような波が来ていて、ああ、そちらの方が今後はチャンスがあるんだなと感じたのを覚えています。
■ エンジニア生活での“武勇伝”と“修羅場”
――お二人とも長くエンジニアをされていますが、そのエンジニア生活の中でこれぞ!と思うような「武勇伝」や、成長したと思えるエピソードはありますか?
仙石 エンジニアといっても、就職する前からいろいろなことをやっていて、シームレスで、今も昔も訳のわからないことをやっているという感じで……。普通の人はそこまでやらないだろうという“道を踏み外した”例ならあります。
中学3年生になって、マイコン部で2年の時と同じようにまたBASICを書くのは能がないと思いました。1つ何かやったら二度とそれはやらない、という傾向がその当時からありまして。次に何を考えたかというと「マシン語」です。
マシン語に関する入門書がなくて、仕方がないから本屋で入門書を買ってみたら大型機のアセンブリで、PET 2001のアセンブリじゃない。ああでもないこうでもないといろいろやっていたら、何かのはずみにPET 2001で使われている6502のインストラクションセットらしきものを見つけたんですよ。暗号解読のように1個1個読み進めて、すごく限られた情報の中で一応マシン語が書けるようになって、家で必死になってハンドアセンブルしながらコードを書いて、学校に行ってpoke文でどんどんメモリにつっこんで実行するというプログラムを動かして。当時中学生がやるにしてはちょっと難しかったんですね。しかも一発勝負。動いた時は嬉しかったですね。「よくあんなことやってたな」と思いますね、今でも。
伊藤 僕の場合、自分のブログにすごくアクセスが集まったことが一番大きかったですね。前職の頃、会社の仕事とは別にブログの技術に興味があって、様々なアイデアを思いつきました。それをちょこちょこと実装しては、ブログにずっと書き続けていたのですが、そういう情報は当時珍しかったんでしょうね。勉強がてら技術のことを書いてたら、様々な技術者の方がブログを読みに来るようになって、そのうち講演に呼ばれて人前で話したり、本を書くようになったり。
本を出版したことで、自分の名前をネット上で知ってもらえる機会が増えました。はてなに入社したのも、「Shibuya Perl Mongers」のカンファレンスで講演したことで代表の近藤淳也が僕のことを知って、「転職しようと思ってるんです」と言ったら「はてなに来ないか」という話になって。
――では、「修羅場」だったという出来事はありますか?
伊藤 新卒で入社したばかりで設計技術がそんなにない頃、あまり考えずに覚え立てのオブジェクト指向やデザインパターンを使いまくってシステムを設計したら、訳がわからないコードのシステムができあがってしまって。オープン後のメンテナンスが大変になり、でも自分は別のプロジェクトにアサインされている状態で、そのプロジェクトを引き継いだ人には「本当にごめんなさい」と思いました。本を読んで新しいことを覚えた直後はすごく試したくなるんですが、それが趣味の場ならともかく、業務に応用してしまって。周りに迷惑がかかるという簡単なこともわかっていませんでした。
仙石 私の場合は、「会社の立ち上げにはいろいろあるなぁ」ということですね。納期まで1週間しかないプロジェクトのほかにも、超短期の開発プロジェクト、エンジニアの採用や雑誌の連載など、いろいろ重なっていて、やるべきことをリストアップしたらすごい行数になってしまって。当初は人数が少なくて何から何までやっていたということもありますが、振り返るとよく時間があったなぁと思いますね。
伊藤 KLabさんとはてなのそもそものつながりになった話もありますね。「はてなダイアリー」や「はてなブックマーク」ではてなのユーザー数が伸びていた2005年頃、サービスの品質、特に安定性が悪かった。KLabさんのスタッフで当時はてなダイアリーを使ってくださっている人がいて、「オープンソースの技術を使ってインフラを運用している点では両社は似ているのに、なぜそんなに落ちるんだ」という話に。その時に一度ごはんでも食べに行きましょうと僕を呼んでいただいて、KLabさんのデータセンターの話を伺う機会がありました。「こういう技術をこんなふうに使えばできる」と教えていただいたことから糸口を見つけて、はてなのインフラを1回再構築しましょうということになりました。
仙石 それは社内でも話題になっていて、「昨日の今日で教えた話をもう実践している、しかも本番サービスに投入している」と驚きました。
伊藤 いい話を聞いたと思って試しにやってみたらうまくいったんですね。技術の話はいろいろなところで教えてもらえますが、本当の意味でちゃんと実践された結果を話す人があまり多くなかったのではないかと思います。KLabさんに教えていただいたノウハウはとても実践的だとわかって、他にもネット上に公開された情報がたくさんあったので、それらを見よう見まねでやり始めました。でも一人だけでは絶対できないとわかってきて、社内で「ちゃんと体制を作ろう、データセンターもしっかりしたところをちゃんと借りよう」という話になり、1年がかりでインフラの移設を始めました。
今でこそ流ちょうに語っていますが、当時は結構せっぱつまっていました。夜中の2時頃にサーバが落ちて、自転車で駆けつけて、何とか再起動して、ああよかったと思って朝の5時くらいに帰ったらまたサーバが落ちて、再起動して、次の日出社して結局徹夜ということが続いていて、精神的に厳しかった時期で。藁にもすがる思いでいろいろな人から話を聞いていて、KLabさんからヒントを教えていただき、そこから1年くらい続けてようやくはてなも人様にある程度胸を張れるシステムになった頃に、書籍『サーバ/インフラを支える技術』を一緒に書きました。あの時期が僕にとっての修羅場でしたね。
■ 成長するエンジニアとは
――お二人は共にCTOという立場でマネジメントをされていますが、部下のエンジニアで「これは成長する」というタイプはありますか?
仙石 例えばよくポテンシャル採用だと言われる新卒採用に関して言えば、その時点で既にブログコンテストの時にお話しした「考える力」について、天と地の差が開いていると思っています。実際に新卒でそういう人が社内にいるんですよ。プログラミングをほとんどしていない、知識もない人が面接に来て、心理学について延々と話しました。とことん話を聞いた結果、「ちゃんと考えている」と判断して採用に至ったんですね。そしたら入社後、誰よりも早く学んで、今ではトップクラスのエンジニアに育っています。社内表彰の常連で、しょっちゅう賞を獲っている。
また、頭がよくて技術が全然わかっていなかった一番極端な例は、開発部長です。4年前くらいに入社した当時はあまりスキルがありませんでした。でも、彼を知ってすごいと思い、「誰がなんと言おうとこいつだ」と、いきなり社内表彰で「ベストテクノロジー賞」を出しました。ベストテクノロジー賞は私の独断と偏見で決めていい賞なんです。
その時ちょうど、研究開発部を立て直そうと私が一時的に部長になったのですが、その際に彼を無理矢理部下にしました。最初に会った時からある程度頭がいいと思っていたのですが、話せば話すほど「なんて頭がいいんだ、こんな人がいたんだ」とわかったので、1年も経たないうちに部長にしちゃいました。今は執行役員ですが、ここで留まらないだろうと実は思っています。彼はどんどんいろいろなことを覚えてしまって、社内でもエンジニアとしてできる。でも、30歳近くになってから本格的な勉強を始めていて、技術者のトップというよりはマネージャー向きだと考えているので、そちらの方向でどんどん進めていますね。
伊藤 僕は仙石さんと違ってそこまで部下が成長する過程というものを見てきた訳ではないので、そんなにはっきりしたことは言えませんが……。自分を戒める意味でもありますが、何でも言われたらチャレンジする、すぐ手が動く人はやはり成長スピードが速いと思います。やれと言われるとすぐ実装してしまう若いエンジニアがいて、そういう人は1~2年経つと別人みたいになっていることが多いですね。成長したい場合にとりあえず手を動かすというのはいいかもしれません。
■ エンジニアを志す人へ、二人のCTOからのメッセージ
――最後に、これからエンジニアを志す方へのメッセージをお願いします。
伊藤 新卒の方や、プログラマを始めたばかりの人に知っておいていただいた方がいいと思ったのは、Webサービス、特にソフトウェア開発の手法は複雑化してきていて、昔に比べると個人で作ったものがヒットするというようなチャンスが減ってきているということです。もちろんスマートフォン向けアプリなど新しい領域もありますが、全体的なトレンドとしては技術が高度化してきていますね。これは昔のゲーム業界が歩んできた道とちょっと似ています。例えば任天堂の「ファミコン」が流行った当時は、ゲームは数人で作っていました。今は大きいシリーズであれば、開発費も人数もかなりかけて作っていますよね。Web業界ではまだそこまでは行っていないにしても、確実にそういう方向にシフトしてきています。Webが産業として発展していけばいくほど、組織でものを作る、複雑なことをする方向に進んでいくので、そのことを見据えて、この業界でいいかどうかということについて考えておくのがいいと思います。
仙石 エンジニアに限らないのですが、「考える」ことができる人は、どの分野でも活躍できると思います。まずは「考える」習慣を。
また、その一方で思うのは、新卒の段階でも大きな差が付いてしまうという現実に危機感を持ってほしいですね。どうしたら「考える」習慣が身につくかについて、危機感を持って真剣に考えてもらえれば、だいぶ人生が変わるんじゃないかいう気がします。今はまだ、そんなに考えることの重要性は問われていませんが、近い将来、今の新卒くらいの人が定年になる前までには、考えることが重要になる能力中心の世の中が、好むと好まざるとに関わらずやってきてしまうと思います。
これからは、会社選びの方法が変わってくると思うんですよ。若い人は考える力を伸ばせるような、自分が成長できるような会社に就職しないと、10~20年後の一番お金が必要になる時期に本当に困ってしまう。会社を利用して自分の能力を磨くという、そういう発想の転換をしてほしいです。私としては、成長する人を応援したいので、KLabをそういう人のためになる会社にしていきたいですね。
また、あまり職種や業界にも拘らないでほしい。プログラムを書くのが好きだからプログラマになりたいと言う人が多すぎます。本当にプログラミングに向いている人は、そんなに多くはいません。あまりこだわらないでほしい、いろいろチャレンジしてほしい、その一方で、向いていないと思ったら撤退する勇気を持って欲しいと思います。それこそ、35歳になってエンジニアに向いていないと思ったら、エンジニアをすぱっとあきらめてマネージャーになるのも一つの方法です。「エンジニアに35歳定年説はない」という論調が最近は多いのですが、それは危険な発想だと思います。プログラミングに本当に向いている人がそういうことを言う。エンジニアに向いていないという人が感化されて「一生プログラマでいたい」と思ってしまったら身の破滅です。
なんでもいいからやってみるべき、目の前にチャンスが来たらやってみるべきです。私はベンチャーの立ち上げという話を聞いた時に、ビジネスなんて全然わかっていなかったのですが、「やったことがないからやってみよう」と考えました。それまで部下を一人も持ったことがなく、マネジメントなんて全然わからないし、向いていないと当時は思っていました。なのに、いきなりCTOをやる羽目になり、失敗を積み重ねているうちに、マネジメントとは何かということがわかってきたような気がします。やってみたら10年間続いていて、もしかしたら意外と向いているかもしれないってようやく今頃になってわかってくるんですね。だから、向いてないと思ってもやるべきだと思います。自分が何に向いているかなんて、自分が一番わかっていないんです。
<「KLab×はてな エンジニア応援ブログコンテスト」入賞作品発表>
▽ KLab×はてな エンジニア応援ブログコンテスト 入賞作品発表! - はてなニュース