「開発者として幸せな生き方とは何か? 」と聞かれて、即答できる人はなかなかいないのではないだろうか。自分が作った製品が世の中で広く使われること、成果が多くの人に評価されること、多くの報酬をもらえること、自分が興味を持った分野をひたすらに追求できること……。人によってさまざまな判断基準が存在し、そのどれもが正しい。
Google 東京エンジニアリングセンター ソフトウェアエンジニアの鵜飼文敏氏。現在は、Chromeの開発に携わっている。11月19日の開発者向け転職イベント「ITエンジニアセミナー 東京」で講演予定。 |
しかし、「自分にとっては何が幸せなことなのか」「その状態に近づくためには、どうすればいいのか」を考え、行動することは、その人が「正しい答え」に近づくために避けては通れない課題だ。人生の一部となる仕事の側面でも、そこから自らのキャリアをどのようにデザインし、実現していくかをプランニングすることになる。
マイナビは11月19日に開発者向けの転職イベント「ITエンジニアセミナー 東京」を開催する。その中で、Googleの東京エンジニアリングセンターに所属するソフトウェアエンジニアの鵜飼文敏氏が講演を行う。現在、開発者の「あこがれの職場」として評価が高いGoogleでエンジニアとして働く鵜飼氏は、Googleへの入社以前には、Debian JP ProjectやThe Free Software Initiative of Japanの立ち上げに関わるなど、オープンソースコミュニティへの貢献にも精力的に取り組んできた人物だ。
現在でも、ChromiumやWebKitのコミッタとして活動するほか、技術関連洋書の監訳を多数手がけており、2010年にはDebian Projectメンバーとの共訳で「情熱プログラマー:ソフトウェア開発者の幸せの生き方」(オーム社刊、原題「The Passionate Programmer: Creating a Remarkable Career in Software」、Chad Fowler著)の監訳にも携わった。
鵜飼氏はこれまで、どのようなキャリアを歩んできたのか。そして、鵜飼氏が考える「幸せな開発者となるための条件」は何なのだろうか。
オープンソースの世界へのコミット
鵜飼氏が、Unixに初めて触れたのは、学生時代に参加していたKMC(京大マイコンクラブ)だった。また、当時登場したPC Unixに対しては、それまでワークステーション級のハードウェアでしか動かなかったUnixが一般的なPCで動かせることに感銘を受けたという。しかし、当時の日本はまだNECのPC-9800シリーズが全盛の時代。いわゆるPC-AT互換機も一般的ではない状況だった。そこでKMCの先輩たちとともに、386BSDをPC-9800シリーズに移植し、配布するという活動に取り組んだ。Linuxの98移植も行ったが、こちらについては、「すぐに使える形式にはなっていなかった」ので配布等は行わず、動作することを確認したレベルだったという。
大学院卒業後は、ヒューレット・パッカード(HP)の日本研究所に就職する。大学院卒業と、HPが日本に研究所を作ったタイミングが近かったこともあり、まだ日本研究所自体の規模はそれほど大きくなかった時期である。その規模や新しさゆえの、フットワークの軽さ、自由さを期待しての決断だった。HPでは、ネットワーク技術であるATMや、HPがプリンタやデジタルカメラといったデバイスを直接接続する技術として推進していた「JetSend」に関する研究に取り組んでいたという。
鵜飼氏は、HPでの仕事に従事しつつ、オープンソースコミュニティへの参画やフリーソフトウェアの振興といった活動も精力的に行った。このころになると、LinuxにはRedhHatやSlackwareをはじめとする多くのディストリビューションが出そろいつつあったが、鵜飼氏は「優れたパッケージ管理システムを持っている」という観点から「Debian」に強くコミットするようになる。また、コミュニティに参画するにあたっては、開発者としてDebian本体へのコミットを行うことを強く意識したという。
「当時、オープンソースソフトウェアに関しては"~ユーザー会"という組織が多く出始めていたが、自分たちはDebianについて単なる"ユーザー"ではなく"開発者"として関わるほうが良いと考えた」と鵜飼氏は話す。
「自分で書く」ことの面白さを求めGoogleへ
鵜飼氏がHPからGoogleへ転職したのは、2006年6月のことだ。東京エンジニアリングセンターの募集を機に、Googleで開発者として仕事をすることを選ぶ。論文執筆やパテント取得が評価されがちな研究所での仕事と比較して「自分でコードを書き、実際に使われるものを作っていくことに魅力を感じた」上での決断でもあった。
鵜飼氏は現在、Chromeの開発チームに所属し、Chromeを作り上げるための開発環境の整備や、それに関連したGoogle Cloudにおける分散コンパイル環境の構築といったプロジェクトに主に携わっている。入社初期には、データセンターやGoogleのインフラ環境の使い勝手改善のためのプロジェクトなどにも参加した。
Googleでの仕事の進め方について、鵜飼氏は「自分のやりたいことやるほうがパフォーマンスが出る」という考え方が浸透している点が特徴的だという。これは、同氏が学生時代から携わってきたオープンソースコミュニティの精神に通じるものでもあるのだろう。
そうしたGoogleの社風の一端は、評価制度にも現れている。チームのマネージャーの評価だけでなく、日々一緒に作業を進めている「同僚」からの評価も、成績に反映されるという。「ピアレビュー」と呼ばれるこの評価制度では、マネージャーからの評価では見落とされがちな日々の細々とした仕事、例えば困っている同僚のサポートや、個人的に強く興味を持って研究を進めている分野での成果なども評価基準になり得る。「彼は、こんなすごいことや面白いことをやってくれた」という同僚の賞賛が会社としての評価にも反映される点に、鵜飼氏はフェアさを感じているという。
鵜飼氏がこれまで「意識してきたこと」
では、鵜飼氏がこれまでのキャリアの中で、特に強く意識してきたことは何なのだろうか。鵜飼氏が共監訳を行った「情熱プログラマー」から、見出しを挙げてもらったので、その中のいくつかをここで紹介する。
ひとつは「自分の人生を他人任せにするな」(第9項)である。特定のベンダーが提供するプロプライエタリな製品や技術に強く依存してキャリアを重ねることは、そのベンダーの一存によって、キャリアが翻弄されてしまうというリスクをはらむ。例えば、オープンソースコミュニティにコミットしている人々には、自らのキャリアがよって立つ技術の礎に対して、自身が関与可能な環境が保証されている必要性を求めている側面もあるはずだ。
次は「一に練習、二に練習」(第15項)。日々、移り変わりの激しいITの世界に身を置く技術者の基本的な心構えとしてよく言われることだが、普段から自分の理解の範囲や扱える技術の幅を広げつつ、今できることは、今以上に「すばやく」できるようになっておくことの重要性は今後さらに高まっていくだろう。
マーケティング的な側面では、「業界で名前を売ろう」(第39項)だ。自分の成果物を人に見てもらうことが、その仕事の評価につながる。開発者は、その技術力を自分の成果物という分かりやすい形で見せられる。自分が興味を持っていること、自分が実際にできることを広く知ってもらうことを意識した活動が「名前を売る」ことにつながるわけだ。
また、どういった分野に取り組むかを決めるにあたっては、自分の興味も当然のことながら、市場性の観点も重要だ。鵜飼氏は、「次に盛り上がりそうな技術に狙いを定めて、早めに手がけておくこと」とアドバイスする。ある分野で第一人者的な立場になるためには、一朝一夕では身につかない本当の競争力を持った技術を見きわめ、早い段階で手がけはじめることが必要になる。そのためには、普段から自分でさまざまな分野を試してみることが必須。さらに、オープンソースの世界であれば「自分が貢献することで、(その技術を)大きくしていくことができる。その活動が結果的に、その技術を良い方向に導いていれば、大きな流れになっていく」(鵜飼氏)という。
そして、転職を検討している人におすすめしたいのは「一番の下手くそでいよう」(第4項)である。例えばバンドでは、その中で一番下手なメンバーが、周りのメンバーのレベルに近づく、つまり「成長」を遂げられるという。これは会社やグループでのプロジェクトでも同様だろうと鵜飼氏は言う。鵜飼氏自身がGoogleへの転職を決めた際にも、この「自分が成長できる環境の中に自分を置く」ことは強く意識したそうだ。
11月19日の講演では、「幸せなソフトウェア開発者」を目指すにあたっての実践的な知識が、鵜飼氏自らの経験に即して語られる予定だ。キャリアアップを考えているエンジニアの皆さんには、きっと参考になるだろう。