エンジニアリング界をリードする著名人が「いま話を聞きたい」開発者を直接指名し、日頃なかなか聞けない開発トピックについて語り尽くすオンライントークセッション「 DevLounge.jp 」。このイベントのオープニングを飾ったのは、Nature株式会社VPoEのSongmuこと松木雅幸氏と、ローンチャブル(Launchable)Co-CEOの川口耕介氏です。
Songmu氏は日本で、川口氏はアメリカ・カリフォルニアでそれぞれ活躍されています。セッションでは、お二人が感じるオープンソースソフトウェア(OSS)とSaaSの違いから、グローバル展開を目指す際の考えなどを語っていただきました。その一部をご紹介します。
Songmu(松木雅幸) Nature株式会社VPoE。大学で中国語と機械翻訳を学び、中国でIT分野での起業、語学学校でのシステム担当兼営業、印刷系SIerでの金融系Webシステムや物流システムの開発を経験。その他にソーシャルゲーム開発のリードエンジニア、エンジニア向けSaaSのプロダクトマネージャーなどの紆余曲折を経て現職。現在はNature株式会社で、IoTスマートリモコンや電力事業の開発にあたっている。
川口耕介 Launchable, Inc. Co-CEO。Sun MicrosystemsにてJavaEEの開発に携わった後、オープンソースのCI/CDサーバJenkins及びそのコミュニティを作る。2010年よりCloudBeesにてJenkinsを事業化、CTOとして400人規模の会社へと成長させる一翼をになう。2020年より現職。
スタートアップにはOSSは厳しい? 開発者から見たOSSとSaaSの違い Songmu:僕は川口さんが作ったJenkinsはかなり使っていたので、今回お話しできてすごく嬉しいです。では最初のトピック「作るならOSSかSaaSか」について。川口さんはOSSでJenkinsを作られて、いまはSaaSでテスト工程を機械学習で効率化する技術の開発に取り組まれています。OSS開発とSaaS開発の違いや、採用した理由を聞かせてください。
川口:僕はオープンソースが大好きなんです。カリフォルニアに来る機会が得られたのはそもそもOSSのおかげですし、オープンソースさまさまなんです。でもJenkinsをやっていてやっぱりOSSで勝負するのは大変だなと感じましたね。とくにスタートアップがOSSをやるのは難しい時代になった気がします。
Songmu:スタートアップにとってOSSが厳しいのはなぜですか?
川口:たとえば土台となるオープンソースプロジェクトがそこそこ成功しても、「お金を儲ける」と「オープンソースを盛り上げる」の両方をやらなければいけないとなると、エンジニアリソースの配分が難しい。一方SaaSでは最近、デベロッパーがSaaSにお金を払う文化ができつつあるように感じます。でもSaaSをやっていて、当たり前ですがOSSの作り方と全然違うので頭の回路の切り替えに苦労していますよ。
Songmu:僕もOSSとSaaSの両方をやりましたが、両者は影響を受け合っているなと感じています。僕はSaaS的なプロダクトでは「このやり方が一番いいので、これでやってください」と最適なデフォルトを示して、あまりオプションを作らないことが大事だと思っています。実はこの考え方は、OSS活動から影響を受けた部分なんです。OSSだと外部からの要望がたくさんきますが、しがらみがないので「これはサポートできません」とズバッと断れますからね。
川口:そこで「NO」と言えるのが素晴らしいですね。プロダクトマネージャーとしての経験がそうさせるのかもしれないですね。
Songmu:そうなんですかね。そもそもオプションを作ることは開発者の迷いの表れであり、その解法をユーザーに委ねるのはあまりよくないやり方だと思うんです。
川口:プラットフォームには他の人が夢をのせられます。OSSの良さは、まさにそのプラットフォームの作りやすさだと思うんです。Jenkinsも、そういったオープンソースコミュニティになったから成功したんだと思います。でもそれはSaaSの「オプションを作るとユーザーに解法を委ねることになる」のとは対局にある気がしますね。
自分からコミット権をもらいにいける? 相手に渡せる? 判断基準の難しさ Songmu:Jenkinsを作った際に失敗したところはありますか?
川口:たくさんありますよ。まず土台に使ったJavaEEがJenkinsのような用途を想定していなかったために、うまく動かない部分が多くてかなり作り直しました。全てをインプロセスで抱え込んだのも、いま思えば失敗ですね。
Songmu:なるほど。工夫した部分はどんなところですか?
川口:コミュニティの部分ですね。いろいろな人がそれぞれのものを作って、それに惹かれてユーザーが集まる。そういうネットワークエフェクトみたいなものを作りたくて、コミットアクセス権はみんなに自由に渡しました。すると、このプロジェクトを自分ごとのように感じてくれる人がたくさんでてきたんです。それが一番良かったですね。
Songmu:僕もSubversion(svn)で開発していたときは、信頼関係が築けると大きなツリーからコミット権がふってくることがありましたね。
川口:僕が関わったOSSは逆で、コミット権は神聖な権限なのでせっせとパッチを作ってほかのコミッターにノミネートしてもらって、やっとコミッターになれるかどうかでしたよ。松木さんはOSSのプロジェクトのメンテナンスもされていますよね。
Songmu:僕はメンテナンスに困ってそうだなと思ったら「メンテナンスさせて」と言ってしまうんです。そのほうが自分の思い通りにしやすくて、相手にも喜ばれますから。それに他の人が扱っているツールを知れるので、自分の糧にもなります。
川口:おぉ、そういうことなんですね。
Songmu:あと日本のPerl界では何度かプルリクエストを送っていると「じゃあ君がコミットしてよ」ってコミット権をもらえることがあるんです。だから僕もプルリクエストがきて「この人結構できそうだな」って思ったらコミット権を渡しています。
川口:僕もプロジェクトで面倒見きれないときは誰かに頼みたくなります。でも趣味のプロジェクトだと「こういう風に設計したい」という思いがあるので、誰かに任せると後で見て「なんでこんなことになってるんだ」って悲しい気持ちになるんです。だから「自分に任せて」って言える人も、「あなたに任せた」って言える人もカッコいいです。尊敬します。
Songmu:川口さんが「こういう設計にしたい」と思ったように、ソフトウェアはある思想のもとに作られていますよね。だからその設計思想と合うかどうかは、プルリクエストで見極めたり、設計思想を書いてわかるようにしたりするのが大事かなと思います。
川口:でも逆に思想や波長が合う人たちが集まると、みんな同じような考え方になりがちですよね。Jenkinsのときは特定のマインドセットを持った人たちが集まったことで、ブラインドスポットができてしまって。うまく他からの刺激を受けることができたんですが、どこかのタイミングでそういう刺激は必要だなと思いました。
Songmu:大きいプロダクトになると思想をまとめていくのは難しいですし、むしろまとめないほうがいいこともありますよね。僕が小さいものを組み合わせてソフトウェアを作ったときは、それぞれの個性が出て面白かったですよ。
あと自分の直感では良くなさそうだと思ったものが、実は良かったということもあるので、あんまり作り方にはこだわらないがいいと思います。
川口:そう思えるようになったきっかけはなんですか?
Songmu:いまの職場も前の職場も自分より優秀な人がたくさんいて、そういう人が自分の部下になると新しいものを持ち込んでくれるんです。この業界に入ってから、そういうことが嬉しいと感じるようになりましたね。
川口:僕はもともと人に仕事を回すのは苦手で、意図しないとできないんです。だからそういうのがサッとできるのはいいな。真似したいです。
グローバル展開ではブランド力が課題。海外と日本のコミュニティに橋をかけたい Songmu:グローバルな話に移りますが、僕はOSSでも普通のプロダクトでも、日本のコミュニティで作られたものを世界に広げていくことに難しさを感じています。川口さんはグローバル展開を狙ったプロダクトづくりをするなかで、どんなことを意識されていますか?
川口:とくにスタートアップシーンはそうで、ソフトウェア産業は人間関係の上に成り立っているところがあると思います。アメリカとヨーロッパ、場合によってはインドくらいまでは一つの経済圏を形成していて、ものづくりのやり方や売り方に共通認識があるんですよね。僕はそこをベースにする一方で、日本にもネットワークを持っていますが、欧米と日本のネットワークはつながっていないのでもったいないと感じます。
Songmu:僕もはてな時代に、マカレル(Mackerel)というモニタリングSaaSを作ったんです。最初からグローバルを狙う前提で作ったので、他言語対応して社内に翻訳者を置くなどしました。ただ、はてなは日本ではそれなりに信頼度がありますが、世界にどう打って出るかという部分ではかなり難しかったですね。
川口:「いいものを作ればなんとかなるだろう」と思いがちですが、そんなことないですよね。やはり信用やブランド力が非常に大きな影響力を持っているので、とくにお金をとるプロダクトだとその信用を得るのが大変です。人や金を集めるときには「知られていない」ことが予想以上に邪魔になります。
Songmu:OSSも知名度の高いものや有名人が作ったものはユーザーがついて、いろいろな使われ方をして良くなっていきます。それに有名な人からのプルリクエストは「この人のコードなら大丈夫だろう」と思ってレビューしてマージしますが、知らない人の場合は身構えてしまいます。
川口:「この人の紹介だからデフォルトで信じる」とか、信用は人から人へ流れていきます。たとえばRuby on Railsは技術的にいいものがあって、何かの拍子に海の反対側のコミュニティに信用が流れて両者に橋がかかりました。僕はローンチャブルでこちらと日本のネットワークに橋をかけていきたいと思っています。
Songmu:日本の、とくに東京は異常な密度の濃さとかそれに付随するエンジニアの優秀さはあるので、それをどう海外のコミュニティに接続してシナジーを生み出していくかが大きな課題です。PSGI(Perl Web Server Gateway Interface)のように日本発で世界でも使われるようになったものもあるので、その動きを2020年代でもっと促進していけたらいいですね。
川口:日本にはすごい力があるのに、こちらの人の視野には入っていないのが悔しい。ギャフンと言わせたいですね。
当日のアーカイブはYouTubeでも配信中。イベントレポートではお届けしきれなかった話が盛りだくさん。気になった方はチェックしてみてください。
次のセッションはこちら
イベント詳細はこちら