メインページに戻る
Japan Blog

Google エンジニア インタビューシリーズ 第 1 弾: 鵜飼文敏



メガネを掛けた方が話している様子を示す画像。

現在、Google には世界中で数千人のエンジニアが、検索をはじめとする、さまざまなサービスの改善、新機能の追加に取り組んでいます。今回から不定期ですが、社内のエンジニアにインタビューを行い、どのようなエンジニアが、どんな仕事をしているのかということについて、紹介していきます。

エンジニアインタビューシリーズの第 1 弾として、Google 東京 R&D センターにいる鵜飼文敏にインタビューしました。

鵜飼は、Google 入社以前からDebian JP Project や The Free Software Initiative of Japan の立ち上げなどに関わった、オープンソースコミュニティとの縁も深いエンジニアです。今回は、そのあたりを中心に話を聞いてみたいと思います。

I > まず最初に、Google での現在の仕事について、簡単に紹介をお願いします。

ukai > Google の大規模なコンピュータ環境を効率よく使うことができるようにすることとか、ビルド環境まわりとかを主にやっています

I > 最初にコンピュータに触れたのは、いつ頃でした?

ukai> 最初は中学生の頃に友達の家でMZ-731 で、買ってもらったのが MZ-2200クリーンコンピュータ

I > 学生時代は、どんな学生でした?

ukai> 最初の 1 年ちょっとくらいは実家から 1 時間半 〜 2 時間くらいかけて通学してました。2 回生の中頃に下宿しはじめたんですが、家賃 2 万もしない本当に寝るだけのところで、飯はだいたい西部食堂もしくは北部食堂、風呂は KMC (京大マイコンクラブ) 部室近くの銭湯みたいな貧乏学生をしてましたねえ。一応ちゃんと講義とかにも出て,1 回生で教養で必要な単位はだいたい取っていたのに、必須の保健 1 単位を落としたりしてました。専門に配属されてからも、3 回生で専門で必要な単位はだいたい取っていたはず。
数理は「工学部の経済」とか呼ばれていて実験とかで時間をとられることがなかったので結構楽でした。

忙しくなかったぶん KMC の部室で遊んでいることが多くて、X68k でプログラムつくったり移植したりしてました。PC98 の NIT Emacs とか、Elk Scheme とか。あとは当時は普通の人がなかなか触れなかった Unix が部室にあったので、それで遊んでいることも多かったです。当時は UniOS-ΣUniOS-BSunOS 4NeXT があって、SystemV 系 ΣOS より BSD 系のほうが使いやすいなあとか思ってました。X68k ユーザだったこともあって PC98 はよく知らなかったんですが、386BSD 0.0 とか Linux とかのことを NetNews の噂で知って、同じ i386 なら移植するのもそんなに難しくないだろうということでやりはじめたのが M1 の頃でした。当時手元に IBM - PC はなかったので、まずクロス開発環境つくるところからだったんですが、Linux はそのあたりの整備状況は当時はよくなかったのでとりあえず 386BSD のほうからやったわけです。基本的に gcc をはじめとする GNU ツールだったので SunOS でクロス開発環境をつくること自体はそれほど難しくはなかったのですが、当時は今ほどちゃんと作られていなかったので ld あたりにエンディアン問題などがあったり一筋縄ではいかなかったです。Perl で boot diskimageの kernel をいれかえるツールとか書いたりもしましたね。
夏休みはこれに没頭していたわけですが、はじめて boot message がでて login までいった時は感動しました。

I > エンジニアになろうと思った時期、きっかけは?

ukai> KMC にはいってプログラミングの世界にはまってそのままなんとなくかなぁ。

I > オープンソースに関わるようになったきっかけは?

ukai> 大学時代に研究室でフリーソフトウェアのパッチを NetNews に流しておいたおかげで、サーバークラッシュしてもそのパッチを NetNews から拾ってこられた時に、ソースを公開して Internet にバックアップしておくのは大事だと思ったこと。
386BSD や Linux の PC98 への移植でフリーの PC Unix に関わるようになって、その後 Debian JP Project を立ち上げたあたりがオープンソースに深く関わるようになったきっかけですね。

I > Google に入って一番びっくりしたことはなんですか?

全てのソースコードにアクセスできること。実際には量が多すぎて全部見ることはできそうにないですが、なにか困った時に申請とかしなくてもアクセスできるのがよいですね。
バグをみつけた時も、自分で直して責任者にレビューしてもらい、commit することもできます。レビューをお願いすると 「 Thanks! でももう直しちゃったよ 」 とか 「 Thanks! ついでにここも直しておいてくれない?」 とか言われることもあったりします。

I > Google とオープンソースの関係について教えてください。

ukai> 開発用のデスクトップでは Goobuntu という、ほぼ Ubuntu な Linux ディストリビューションを使っていたりしますし、大規模なクラスターは Linux をカーネルに使ってたり、オープンソースなソフトウェアは結構社内で使われています。
Google Summer of Code などオープンソース開発への支援を行っていますし、Google Code Project Hosting で プロジェクトのホスティングもしています。
また、Google で開発したコードもいくつか Google Code Open Source Projects でオープンソースで配布しています。
オープンソースの世界で頑張っている開発者が社内にごろごろいますね。

I > 最後に、オープンソースコミュニティに参加してみたいと思っているけれど、きっかけがなかなかないという人に一言。

ukai> 自分で使ってみて、使いにくいなあ、問題だなあ と思うあたりを直すところから始めるのが一番でしょう。
オープンソースの世界では、誰かに作業をしてもらうということはまずありません。いくら待っていても 「 あなたのやることはこれです 」 と言ってくれる人はいません。
自分でやるべきことをみつけていく必要があります。「 なにかやることありますか? 」 と聞いて助言が得られる場合もあるかもしれませんが、基本的にあなたのやりたいことはどんなことで、どういうことができるのかが相手にわかってないと、いい助言が得られることは少ないでしょう。
大きなプロジェクトになれば bug / issue 管理システムなんかがあるので、そこで問題になっていることを直すことから始めるとかが歓迎されやすいと思います。

東京にいる他のエンジニアに鵜飼の印象を聞いたところ、

* なんでも知っていて,困ったことがあって相談に行くとたいてい解決する。
* いろいろな人を知っている。
* こつこつと目標に向かって進み続ける人。
* 料理好き ( ? )

と、兄貴肌のエンジニアとして頼りにされているようです。

ちなみに、鵜飼の Google Developers Day 2007 での 「 Software Engineer in Google 」 という講演は、YouTube で公開されています。この講演では、Google のエンジニアが、日常、どう働いているか、また、世界中にいるエンジニアと効率よく働くための Tips などがたくさん登場します。興味のあるかたは、是非一度御覧ください。
( Google Developers Day 2007 の他の全てのセッションも YouTubeで公開 されています。こちらもあわせて御覧ください。)

今後の Google エンジニア インタビュー シリーズで、こんなことが知りたい、こんな人にこんなことを聞いて欲しい、などの御要望がございましたら、是非、こちら まで御連絡ください。よろしくお願いします。