「文芸」プログラマ ── 山本泰宇

サイボウズに在籍する技術者を紹介するインタビューシリーズ。

山本泰宇(サイボウズ株式会社 リードプログラマ兼アーキテクト)の写真1 山本泰宇(Hirotaka Yamamoto)

2001年12月、サイボウズ株式会社に入社。
畑、秋元らと自社製品向けのWebアプリケーションフレームワーク「CyDE2」を開発。その後、「ガルーン2」の基盤システム設計などを経て、2008年に執行役員CTOに就任。2010年からは、後にcybozu.comとしてリリースされることになるクラウド開発プロジェクトを率い、インフラから自社開発することを決断。2011年秋の正式リリース後にCTOを退任し、cybozu.comのインフラ開発、運用チームのリーダーに就任。
「リードプログラマ兼アーキテクト」という肩書きを自ら選んだ、生粋のプログラマ。

プログラマは肩書きに無頓着である、という説がある。確かに、様々なところで公開されているIT系勉強会のスライドを見ていると、プログラマが作ったスライドのトップページに、肩書きが書かれている場合は少ないような気がする。マーケティング関係のプレゼンなどと比べると、確かに一理あると思わせる説である。

そもそも、プログラマが肩書きに頓着しないと言われるのは、プログラマという職種に肩書きが少ないということも関係があるだろう。日本では、プログラマ自身が表に出て話をすることが(これまでは)少なくて、肩書きの必要があまりなかったという事情もあるかもしれない。

あるいはプログラマという仕事には、「肩書きだか、肩車だか知らねぇが、とにかくお前が作ったものを見せてみろってんだ、べらんめい」というような、 どこか「職人気質」に通ずるものがあるのかもしれない。

山本の現在の肩書きは「リードプログラマ兼アーキテクト」である。しかし、ここに至るまでには、若干の紆余曲折があったようだ。

以前、山本は「執行役員 CTO」という肩書きだった。しかし、あるとき肩書きと自分の仕事とのギャップに気がつき、自ら「返上」を申し出たのだという。しかし、いざ肩書きをなくしてみると、社外で話をするときに「いろいろ困る」と言われ、やはり肩書きを付けましょう、ということになった。そこで自らが、自分の仕事内容を的確に表しているものとして付けたのが「リードプログラマ兼アーキテクト」というわけだ。

実際、プログラミングがかなりの量を占めていたので。実際にリードできているかどうかは分からないですが(笑)、数多いるサイボウズの優秀なプログラマの中でも、まぁまぁ頑張っているほうかなという自己評価の下、年の功ということで、リードプログラマと名乗らせてもらおうと。そして、cybozu.comのセキュリティを含む全体設計もやっているので、アーキテクトというのも付けました。アーキテクトだけだと、実際には手を動かしてないみたいな感じがするので、プログラマのほうは外せないですね。

■きれいなコード

プログラミングというのはかなり緻密な作業で、小さな煉瓦を1つ1つ積み上げて大きな家を造るかのような、実は細かくて面倒な作業がたくさんある。 それもあって世の中には、若いころはたくさんコードを書いていたが、年齢を経るにつれコードよりもマネジメントの仕事を増やしていった「元プログラマ」も少なくない。

これがね、歳をとると、より良いコードが書けるようになるんですよ。自分でも、年々いいものを作れている実感があります。20代のころよりも、今のほうがはるかに良いコードを書いていると。確かに面倒くさいです。でも、面倒くさいことは悪いことではなくて、経験を重ねていくことで、簡潔に最大の効果を上げられるようになってくるんです。力づくで、闇雲に大量のコードを書いてなんとかしよう、みたいな無駄な努力はしなくなる。必要十分なコードで、必要な目的を遂げられる。だから、今は楽しいですよ。自分が昔から憧れていたウィザードたちのように、思った通りの速い効率的なコードが書けるようになってきたので。

そんな山本が、プログラミングに関して大きな影響を受けた人がいるという。

私がいた研究室にいたときの助手さんなのですが、実装能力がすごくて、ソースコードがまた非常にきれいで。こういうのが良いコードなんだと、まざまざと教えられました。私のコードは、潔癖症なぐらいきれいなコードですが、それは、このときに学んだコードの影響でしょう。よく思うのですが、プログラミングというのは、まともに文章を書ける能力に比例しているんですよ。私自身は、昔から理系的才能はあまりなく、数学なんかは苦手だったんですが、文章を書くことは得意でした。それが、きれいなコードを書くということに繋がっているのかなと。

Knuthの文芸的プログラミングとはちょっと違うが、プログラミングは文芸的であるという指摘は、なかなか興味深い。

■サイボウズに入ったきっかけ

情報処理を専攻して大学院まで進み、分散処理系の研究を続けていた山本が、研究に限界を感じて大学院を中退したのは27歳の時。

自分が研究していることについて、これはもう、たぶん絶対に実用にならないなと気がついてしまって、それをやり続けるのがすごく嫌だったんです。自分が作るものを誰かに使ってほしい。しかし、かといって、自分が作ったソフトウェアをフリーソフトウェアとして公開するような自信はまだなかったですし。
就職しようと思っていくつか問い合わせたら、ほとんどの会社が門前払いでした。27歳で大学院中退と言った瞬間にアウトという時代でした。実は、サイボウズという会社も全然知りませんでした(笑)。サイボウズに応募するとき、全然受かる気がしなかったので、1週間ぐらいで自作したSchemeのインタープリタを一緒に送りました。採用されたのが、そのせいかどうかは分かりませんが。

■「作る」ことへのこだわり

リードプログラマを名乗る山本が、いつかその肩書きを後輩に譲るときはくるのだろうか?

うーん。(しばらく沈黙) いや、子どものころから、こういう仕事をしたいと思ってきて、いま非常に楽しく仕事ができている時期なので、プログラマを辞めるというのは、なかなか想像はできないですね。直近でそういうことはないと思いますね。
みんなでリードプログラマを名乗ればいいんじゃないかな(笑)。別にリードが一人じゃなくても良いんじゃない? この肩書きにしたって会社が付けてくれたわけではなく、自分で考えて「こう名乗っていいですか?」と言ってるだけなので、みんな名乗りたければ名乗ればいいと思っています。

山本泰宇(サイボウズ株式会社 リードプログラマ兼アーキテクト)の写真2
切れ味鋭い言葉が次々と発せられるが、それでも柔和な表情は崩さない。

今は、ネットワークも分かるしシステムプログラミング全般も分かる、マルチスレッドのような個々の技術も分かる、そういう状態。こういうことを全部理解した上で、それぞれについて勉強会の資料を作ることもできる。私はもう30代後半ですが、本当にすごい人なら30歳ぐらいまでに、こういう域に到達するのかもしれないけど、20代では難しいかなと思いますね。

プログラマとして、まさに「円熟期」を迎えている山本に、あえて聞いてみた。Googleのような、すごいプログラマがたくさんいる環境に移りたいと思うことはないのか、と。

私は、誰と仕事するというよりは、何を作るかにこだわっているんですね。もちろん、どこへ行っても何か作れるとは思うけど、でも、作るというのは本当に大変なことなんです。サイボウズのソフトウェアはまさにそうなんですけど、積み重ねた歴史の成果物じゃないですか。決して私一人では作れない。しかも、そういうものに対して、私が貢献した部分も少なくないわけです。「これを私が作りました」と自信を持って言えるものになっています。でも、今ここで他の会社に移ったとしたら、すでにその会社にあるものにちょっと付け足したぐらいのことしかできないわけです。私がやりたいのは、自分が貢献して、最終的にどういうものを作ったかなんです。どこでとか、誰と働きたいというのではなく。貢献というのは、当然、長く続けたほうが大きくなっていくわけで。そういう意味では、ソフトウェアだけを見ているわけではありません。商品というか、ブランドを含めたものの大きさを、どう大きくできるかということを考えています。

【変更履歴】 2012年10月1日:冒頭写真のプロフィールに詳細を追記しました。