小飼弾のアルファギークに逢いたい♥

#14ミラクル・リナックス よしおかひろたか

今回のゲストは、ミラクル・リナックス⁠株⁠で創業以来、取締役CTOを務めてこられ、この6月に退任、ブログ「生涯一プログラマ宣言」をされたよしおか ひろたか(吉岡 弘隆)さんです。

左:よしおかひろたか氏、右:小飼弾氏(撮影:武田康宏)
左:よしおかひろたか氏、右:小飼弾氏(撮影:武田康宏)

CTO退任

弾:今回は取締役退任おめでとうございます。

よしおか(よ⁠⁠:ありがとうございます。

弾:いやあ、あれは激務ですからね。では、ざくっと自己紹介をお願いします。

よ:2000年にミラクル・リナックスというLinuxのディストリビューションの会社を立ち上げて、以来、今年の6月末まで8年間、取締役CTOに就いていました。今回、ミラクル・リナックスの「第2の創業」として、社長と新役員を1人選任するというタイミングで、退任させていただきました。

DECからオラクルへ

よ:大学を卒業して最初の会社は、日本DEC研究開発センターという今はなきDEC[1]の日本法人で、1984年なので、今から20数年前。

弾:Macが生まれた年ですね。

よ:そこに10年くらいいて、その後、1994年に日本オラクルに転職しました。95年に米国本社に行くことになって、当時はOracle 7.3が基幹システムというか、主要なソフトウェアだったんだけど、ちょうどOracle 8の開発の時期でした。それで、シリコンバレーで3年半くらい、Oracleのデータベースエンジンを開発してました。

Linux版Oracle

よ:それでその頃、⁠Linuxカーネルっておもしろいっすよね」みたいな話をランチの時間に教えてくれるハッカーがいたんです。これはなんかおもしろそうだなと思ったんだけど、自分はLinuxにはまだ全然コミットはしてない。だけど、その当時、Mozillaのオープンソースの話があって、Linuxも徐々に盛り上がってきて、1998年の7月か8月にオラクルがLinux版Oracleを発表するんですよ。それで、技術評論社のSoftware DesignにLinux版Oracleのインストール方法みたいな記事を書いたんです[2]⁠。

よ:別にLinux版Oracleが専門だったわけでもなかったんだけど、それが最初の日本語の記事だったから、いろんなところから引き合いが来て。私は98年末に日本に戻って、99年から日本オラクルに復帰してて、仕事としてはLinuxは全然関係ない、普通のサポートエンジニアでした。で、日本オラクルのマーケティングの連中が、日本でLinuxビジネスをやりたいと言い出して、宮原さんとか池田さんとかっていう日本オラクルのやんちゃ坊主たち[3]が、⁠吉岡さん」って声かけてきて。

弾:そのとき、オープンソースのデータベースには進まれなかったんですよね? 当時MySQLもまだ萌芽程度にはあったし、PostgreSQLはあったし。

よ:PostgreSQLのメーリングリストはずっと購読してたんですけど、私の目から見るとまだ本格的なエンタープライズにはちょっと程遠いなあと。機能はいい。かなりリッチなものは持ってたんだけど、スケーラビリティ(拡張性)もなければロバストネス(頑健性)もない。ただ、自分のプロフェッショナル(本職)としてRDBMSの作り方とはどういうものかっていうのには非常に興味があったし、日本語化に関する実装に関しても一言二言あったんで、メーリングリストで自分の考えと違うことを言われてると、⁠そうなの?」みたいな感じでしれっとコメントしたりしてました。

Oracleのバグフィックス体制

弾:なるほど。知ってるだけにかえって入りずらかったのかな。

よ:いや、仕事としてPostgresSQLとかに関わるつもりは毛頭なかったですね。あとはサポートエンジニアとして日本に戻ってきたんで、当時、40歳を超えてたんだけど、技術者として40代を日本オラクルでやってくっていう腹はくくってました。自分よりずっと年下の20代の人とか、ベンダさんから常駐で来てる方と一緒にOracle RDBMS の登録されたバグを1 個1 個直していくという作業をしてました。なので、外資系だとバグがあっても全然直してくれないという都市伝説はあったんだけど、オラクルに関していうと日本に、バグを直す、いわゆるパッチを作るエンジニアが、そんなに多くはなかったんだけどいることはいた。で、我々のエンジニアリングチームは日本オラクルにはいるんだけど、実は米国のエンジニアリングにも直結してるデュアルなレポーティング体制を持ってたんで、ローテーションで何ヵ月に1回かは研修で米国の開発チームの机でバグフィックスをすると。私はSQL のランゲージプロセッサのところを担当してたんで、世界中のSQL のバグをバグデータベースから拾ってフィックスして、パッチを作るって感じです。日本だとそんなにバグは出ないんだけど、世界で見るとそこそこいいペースでバグが登録されてるんで、それを直していくみたいな。

ピアレビューのプロセスとOSS

弾:そのときに、オープンソースでどうやってものを直していくかっていうメソドロジーを確保されてたっていうふうに見てもいいんでしょうかね?

よ:バグを直すという意味では一緒でしょうね。コミュニケーションの面でも一緒で、バグをどういうふうに直すかっていうところで、大聖堂、多くの人は伽藍(がらん)って言うんだけど、大聖堂とバザールのベストプラクティスは180度違うって世間では見られてるんだけど、実は根っこの部分は非常に似てて、パッチの作り方でも、良いパッチの作り方と悪いパッチの作り方って間違いなくあるじゃないすか。

弾:あります。

よ:自分はこういうふうにやりますっていうときに、いろんなピアレビュー[4]のプロセスがあって、私がたとえばSQL でこうしますってメーリングリストで投げると、その道の専門家が、それよりこうじゃないとかああじゃないとか、そこにはこういう問題があるよっていうピアレビューのプロセスが回るわけです。もちろんそれが正しい場合もあるし、レビュアの意見が納得できる場合もあればできない場合もあって、いや、私はここはこうだから、こういう実装したんだっていうコミュニケーションが始まって、結果として、なんとなく、みんなが納得できる収まりどころに収まるという。そこはプロプライエタリだろうがオープンソースだろうが一緒で、みんな良いものを作りたいと思ってるのは確かですよ。だけどピアレビューの数で言うと、現状の非常に活発な、オープンソースでかつバザールモデルがうまくいってるところのほうが多いんですね。オラクルでも数百人、カーネルのエンジニアがいるから、かなり十分な量でピアレビューのプロセスが動くけど、たとえばUnicodeの具体的で固有のことに関して、SQLの文法のこういうところに関わっていてという話になると、数人程度になっちゃうんですよ。

弾:両方知ってる人なんていないでしょうね。僕も前者に関してはたぶん日本でも詳しいほうに入ると思うんですけど、SQLとどういうふうになるのかっていうとちょっと。

よ:ですよね。そういう部分はあるんだけど、パッチを作って、リグレッションテストを通してOKであればコミットして、次のバージョンに入れてくというところのベストプラクティスは、オープンソースのバザールモデルでかなり適用可能な部分がある[5]⁠。もう一つ言えるのは、そういう大規模でいろんな人とコラボレーションした経験は、みんなでシェアしたほうが得なわけじゃないですか。プロプライエタリな世界にいるとその会社でしかぐるぐる回さないけど、オープンソースだとそういう経験を、たとえば弾さんやPostgreSQLの石井さん[6]と話しができたり、そっちのほうが心地良いというのを私は感じたんです、10年くらい前に。でもその当時、データベースの実装について語ろうとしたら、オラクルの本社に行くしかなかったんですよ。あるいはマイクロソフトのSQL Serverの部隊に行くしかなかった。だけど、そんなのなかなかチャンスはないわけじゃない?

弾:ないです。

よ:それがオープンソース時代になって、別にそんなところに就職しなくても、やりたきゃやれるわけですよ。

弾:そうですね。

よ:それは私にとってもすごいブルースカイなんだな。すごい景色が見えたわけですよ。こりゃあ、すげぇやと。日本語や英語で、自分の好きな技術に関してとことん、朝まで議論できる。それは心の底から揺さぶられるものがありました。

OSSで飯を食うこと

弾:そこまでは同感なんですけど、ここからちょっと質問が少し厳しめになります。確かに診療報酬はばかでかいですよね、オープンソースは。ただしこれで飯を食うとなると、いまだにこれでいけるんだっていうモデルが確保されてないですね。

よ:それはたぶん私に対する叱責の部分も含めてなんだと思うけど、オープンソースで飯を食うということに関しては、10年くらい前、日本に戻ってきてからの、自分に対する宿題であり、ミラクル・リナックスを作ったっていうことでもあり、それに関する答えは出てないというのはおっしゃるとおりだと思う。とはいえ、10年前はその道筋、あるいはオープンソースで飯を食うという発想すら…。

弾:ありませんでした。私もあくまでも道楽と(捉えてました⁠⁠。

画像

よ:だけどそれが、飯を食うということを大きな声で議論してもいいという社会になったことはまず1点、違いとしてある。で、ミラクル・リナックスがぼろもうけできてるかっていうと、それはできてはないけど、50人の社員は食うには困ってない、食えてる。そこは誇ってもいいかなと。さらに言うと、最初の1、2年…3期くらいは利益は出てなかったんですけど、そのあとは、ここは胸張っていいと思うんだけど、利益は出ています。決算に関しては公表してないので、この場では言えないんですけど。日本で何社か株式公開してる会社があるので、たぶん同業他社をベンチマークとして見ていただければいいと思うんだけど、それらと比べて弊社が点数として劣っているかというと私はそんなことは全然ないなぁと思っています。とは言うものの、マーケットシェアで1位をとらなきゃいけないとか、あるいは同業他社でレッドハットさんが相当強いとか、そういうところで言えば、経営者として落第点というのは間違いない。

弾:とりあえず、サポートでは飯は食えるだろうというのはわかってきました。まさにレッドハット、IBMがやってることですよね。ソースは無償だけど、サービスは無償じゃありませんよというビジネスモデルですよね。

ハッカーを育てる

よ:そういう意味でいうと、大手ベンダさんに対するバックエンドサポートを提供してて、我々のカーネルハッカーが提供できる価値っていうのがあって、それをお金にするということではいくつか大手ベンダさんにはそういうサービスを提供させていただいています。サポートサービスのおもしろいところは、いわゆる単なるQ&Aだと誰でもできるんだけど、カーネルのディープなところに関しては、なかなか簡単には真似できない部分があるわけですよ。それこそ深い知識とか経験がないと、商売として提供するのは難しいので、そうなってくると、そのサービスに対するある種のコピーを誰か同業他社がすぐ提供できるかって言ったらすぐはできないから競争力があって、単価も高くできるじゃないですか。真似できないサービスを提供するというのは商売の王道で、そこは我々のカーネルチームが付加価値として大手ベンダさんに提供してるところです。だけど、組織としてはさらにバックエンドのチームとして、たとえばジュニアな小飼弾を雇用して2年後に小飼′(ダッシュ)くらいにしなきゃいけないわけです。それは経営の仕事なので。そこがLinuxとかオープンソースで我々の会社がどうにかこうにか目指しているところなんですよ、まさに。それができればそれはすごいコピーしにくいサービス、商品だから、そこは世界に冠たる小飼さんの会社だとか、そういう形になってくる。それはPerlだけじゃなくて、Apache、JBoss、なんでもいいんですよ。定番のオープンソースに対するサポートインフラとそういうタレントをちゃんと持っている芸能プロダクションみたいな。

弾:たぶんそれで一番うまくやってるのがIBMでしょうね。

よ:Linuxテクノロジー・センターなんてハッカーの巣窟ですからね。

経営者と技術者の立場

弾:CTOというのは当然役員なわけですけども、技術者としての立場と役員としての立場がコンフリクトを起こしたことはどれくらいあります?

よ:コンフリクトは起こさないんだけど、役員という機能と、技術者としての機能はまるっきり別なんですよ。脳の考え方も全然違って、それを同時にパラにやることは相当難しいですよ。

弾:相当疲れます。

よ:で、結果的にいうと、私は役員の器ではないということを自覚しました。自分があるパフォーマンスを達成するときにやりたいこと、やりたくないこと、できること、できないことがいっぱいあるわけです。その中で役員が求められてる機能を、興味を持って、実行できるかっていうと、私が出した結論は、私はそういう器ではない。

弾:(CTOは)ものすごく疲れる仕事です。両者とも取締役CTO経験者なので、これははっきり言いますけど、私は2年弱しか持ちませんでした.という言い方は変ですけど、少なくともその間は10年分は仕事したと自負しております。無理はたたります。一緒にやるべきではないと思います。その意味でわりとCが付く職というのを取締役会のメンバにしなくていいというのは新しい会社のやり方ですね。

よ:まあ、執行役員…。

弾:英語ではboard member(取締役会)とofficer(役員)とそれからemployee(従業員)っていうのは全部別エンティティですね。働いてはいるんだけど、究極的に誰のために働いてるかっていうのはそれぞれ違うわけです。これは押さえておいてください。だから降格とかっていうのではなく、実際に本来であれば、役員よりも稼いでいる従業員はいくらいてもいいし、実際いるんです。ただし日本の場合、昇進の末たどり着くところっていうふうになっちゃって、その歴史をまだ引きずっている部分ていうのはあるんです。

よ:そういう意味で言うと、取締役、いわゆるプロフェッショナル経営者とプロフェッショナル技術者っていうのは、するどく双方の専門性を磨いてるべきなんだけど、なんとなく日本の場合、ところてん式に年が上がってくると、取締役とか経営者にいくっていうようなパスしかないっていうのはがおかしいと思う。やっぱり技術者としてどんどんそれなりの見識とそれなりの結果と、そういうものを持つというのと、経営というのは全然違う機能だから、プロの経営者がいれば良いっていう、デュアルな道筋が本来の姿ですよね。だけど、そういうふうな形には現状、残念ながら、ほとんどなってないんですよね。良い悪いじゃなくて。私は、その取締役という役から言うと、全然力不足で、パフォームしない人間なんで、できれば技術者としてどうにかしたい。で、技術というのは甘いもんじゃなくて、8年間なんかよくわかんないことやってたやつがぽっと出て、プログラマとして通用するのかっていうことに関してはそのとおりだと思う。だから私は今は、1年生で新人で、プログラマある種勉強し直して、一から出直しますと。そういう意味での今回のブログの宣言なんです。

優れたエンジニアとは

弾:優れたエンジニアとして重要なことというのはどんなことでしょう?

よ:好奇心だと思います。いろんなところにアンテナ張るのもあるし、フレキシビリティっていうキーワードもたぶんあるだろうし、だけど、ずっと優れたエンジニアでいるっていうのは自分のやり方に疑問を持って、それを変えることに躊躇しないような人だと思うんですよ。もちろんスタイルはあるんだけど、常に勉強してるようなイメージがありますね。

弾:じゃあ、そんなエンジニアになりたがっている読者に向けてなにか一言ありますか?

よ:やっぱりずっと勉強しててほしいな。もうそれだけですね。

弾:一生勉強と。

優れたマネージャーとは

弾:敗軍の将と言っちゃうと語弊があるのかもしれないですけど、優れたマネージャーとして重要なことは?

よ:それは柔軟性とやっぱし勉強ですよ。

弾:こっちも勉強。

よ:結局、優れたマネージャーと優れたエンジニアと何か違いがあるかっていうと、ない。やっぱり優れている人は柔軟性もあるし、好奇心もすごい旺盛だし、自ら勉強する人なんですよ。実は一緒で、ただ分野や専門性が違うだけだと私は思います。よくギークとスーツとか言って対立軸を持っておもしろおかしく言う人がいるじゃないですか。それは大間違いで、ギークもスーツも一緒なんですよ。単にAさんとBさんで共通のコミュニケーションのボールを持っていないだけで、どっちも優れたギークで、優れたマネージャーであれば、そこにどうにかコミュニケーションの共通するものを発見しようとするわけですよ。どっちも理解不能であるとすれば、どっちもコミュニケーションができないという悲しい現実を言ってるだけで、私はギークもスーツも対立するものでなくて、一緒に違う仕事ができるパートナーだと思っています。

経営者とエンジニアの違い

画像

弾:その点は同感ですが、それでも、それを同時に兼ねるというのは難しいというのも言いましたよね。じゃあ、どこが決定的に異なるんでしょう?

よ:たとえば経営、経営者ということを考えると、そのトッププライオリティは利益を極大化、最大化するということじゃないですか。それに対して、利益を極大化することに対する専門性を持っている人。利益を最大化するゲームに対して一寝てもさめても楽しくてしようがない人と、嫌々やってる人だったらどっちがパフォーマンスが上がるかっていう。

弾:なるほど。要はやってるゲームの種類が違う。エンジニアにしても、性能命の人もいれば、拡張性命の人もいれば、要はエンジニアリングのうちのどこに主題を置くかということですね。

よ:そう。私はたとえば、経営というゲームに関して、利益を最大化することに心のそこから躍ってこれが楽しくてしようがない、24時間365日これだけやってれば幸せだっていうタイプではない。もちろん取締役としての責任があるから、毎週の売上のスプレッドシートを見ますよ。それを見て心の底からわくわくするかっていうとそうでもない。一方で、たとえばOProle注7でカーネルのキャッシュミスを計ってみたらすげえおもしろいなあみたいなことだったら朝から晩までやることに全然なんの躊躇もなくて、私はそっちのほうが好きだと。あともう一つは能力という観点でいって、ある一定時間でどういうアウトプットを出せますかと。経営に対するアウトプットと、エンジニアリングに対するアウトプットと。で、そこの相対的なところで言えば、経営に対するアウトプットよりも私は自分の能力という意味で言うと技術に対して単位時間のアウトプットのほうが高いんじゃないかと思ってる。それを、いろんな掲示板かなんかで、そんなオヤジができるわけないだろうというほうにぼこぼこに書かれてるわけですよ。

弾:それはコード見てから言ってほしい。そういう人ってどれだけコード見てるんでしょうねー。

よ:でもそういうふうに普通は思うわけ。8年間おもしろおかしくやってたオヤジが50にもなって現場に来て、軽やかにやられたらみんな立場ないじゃない?

弾:(笑)

よ:バッターボックス入って3球三振でアウトとなるか、ちゃんとどうにかこうにか3回に1回くらいヒットを打って、2割とか3割ぐらいなれるかもしれない。

弾:リプケンになれるかもしれない。

よ:今そういうところなのね。だから、バッターボックスに立つ前からオヤジだからだめとか言われると血圧上がるわけだよ。

弾:(笑)

よ:三振してから言ってくれよと。三振して、やっぱりだめだなっていうなら、私はそれ受け入れるから。たたくのは全然構わない。だけど、結果見てもいないくせに年齢だけで、決め打ちするなと。年齢だけで、あるいは取締役退任したというだけで、そんなの降格じゃないかとか言うなよと。結果から言われるんだったら、もうしようがない。自分が受け入れるんだからね。そういう社会のほうが気持ちいいですよ。

私はずっとハッカーになりたいなんてことをオヤジのたわごとで言ってるわけです。ハッカーっていう意味はどういうことかっていうと、自分の代表作を持つ人なんだけど、私にはないわけですよ、ソフトウェアとして。僕はこれ作りましたっていう、自分の代表作が何か欲しいと思ってます。

弾:楽しみにしてます。それ確かに大きいです。実際に履歴書で一番ものを言うのはそこですからね。

画像

おすすめ記事

記事・ニュース一覧