![見出し画像](https://assets.st-note.com/production/uploads/images/41412546/rectangle_large_type_2_d65d4d45aa4800eda38a46a6018ed8ce.jpeg?width=1200)
hidekのエンジニアと長話 第3-2回【全文書き起こし】
stand.fmで配信中の「hidekのエンジニアと長話」3人目のゲストは庄司嘉織さんです。
---
「hidekのエンジニアと長話」は、メルペイVPoEのhidekさんこと木村秀夫さんをメインパーソナリティにお招きし、毎回登場する様々なゲストエンジニアとともに作っていくスペシャルトーク番組です。
第3-2回の今回は、第3-1回に引き続き、ドワンゴやCookpadを経て、現在はLaunchableにて新たな挑戦をされている庄司嘉織さんをお招きして、転職理由やLanchable、創業者の川口さんについて語りました。
※本記事は、2020年12月18日にstand.fmで配信を開始した番組を書き起こしたものです。
——-
Profile
<ゲスト>
庄司嘉織 氏
Launchable Japan プリンシパルソフトウェアエンジニア
<「hidekのエンジニアと長話」メインパーソナリティ>
hidek(木村秀夫)氏
株式会社メルペイ VPoE(Vice President of Engineering)
——-
テストを近代化するLaunchable
hidekさん(以下、敬称略):そんないろんな経験を。で、最近ちまたで話題のLaunchableへ転職と。
庄司さん(以下、敬称略):話題なの? 話題になってるといいな。
hidek:結構、最近、これぶっちゃけ、露出意識してるでしょ?
庄司:露出意識してる? うん、意識してなくはない。だから、来た話は断らないで全部受けようと思ってる。インタビューとかも全部。
hidek:うん。で、いろんなところ、それこそインタビューとかですでに答えて、いろんなところで僕も読ませてもらってるというか。Twitterやはてブとかでも普通に上がってきたりして読んでるんですけど、改めてLaunchableへ行こうと思ったところを……。
庄司:うん、そうね。まず、Launchableってどういう会社か、っていうのを説明すると、Jenkinsの作者の川口さんともうひとり、元Sun Microsystemsのエンジニアからずっと偉くなっててマネジメントをやっていたHarpreetっていうふたりで立ち上げた会社なんだけども。要は、「テストをもっと近代化したい」というのを目標に掲げている会社です。で、ちゃんと伝わるように話すと、「エンジニアって思ったよりデータドリブンで動いてないよね」っていうのが川口さんの想いであったらしいのよ。
hidek:うん。
庄司:で、何かっていうと、例えばエンジニアに「工数出してください」みたいなことを言うとさ、みんな勘で言うだけじゃん。
hidek:まあ、そうね。うん。
庄司:なんか、今までの勘で、「これはたぶん一週間くらいでできると思います」みたいな。それに数字的根拠って何もないじゃん。
hidek:まあ、そうですね。それがいわゆる、不確実性というやつですね。
庄司:そうそう。「エンジニアなのに、多くねえ? そういうの」っていうのが川口さんの中であったらしいんだよね。それこそ今、特にグローバル企業とか営業行くと、めちゃくちゃデータドリブンで動いているのに、エンジニアだけ「職人の勘です」みたいなのは、ちょっとよくないな、と川口さんは思っていたらしく。で、川口さんはずっとJenkins作ってて、Jenkins周りの仕事をしていたので、そこにデータが大量にあるのは知ってたのよ。テスト結果がJenkinsで大量に溜まってる。で、多少は使われているけど、有効活用されているかというと、そこまで有効活用されてないよね。で、ここはもったいない。ここのデータとかをもっともっと使えば、開発とかもっともっとよくなるはずだ、っていうのが川口さんの中であって、それを使って何かできないかな、ということで今やってるのが、そのデータを使って、テストの失敗する確率を上げる。失敗する確率を上げるじゃないや。例えば、「Aというファイルを編集したら、どのテストが失敗しやすいのか」というのを計算するみたいなのを作ってる。で、そうすると、例えば100個テストあったら99個目で失敗するよりも1個目で失敗してくれた方がすぐ次のステップに行けるじゃん。ということができるようになるよね、っていうのを今やっている会社です。
hidek:いわゆる、テストの失敗する確率というのを弾き出して、そのテストの優先順位を変えて、で、なるべく早くバグの発見につなげて、改善のループを早くする、っていうところを流すような仕組み?
庄司:そうです。
hidek:たしかにそう。ちなみにJenkinsに溜まっているそのデータっていうのは、テストの失敗か成功かっていうところと、時間だよね? どのくらいかかりました、みたいな。
庄司:そうそう。時間もあるし、うん。
hidek:そうだよね。なるほどなるほど。そういうことをやっている会社に。
庄司:そうです。立ち上げたばっかりなのよ。去年。2019年の年末くらい。10月くらいだった気がする。この前、やっと一周年って言ってて、一周年パーティやってたので。で、たぶん、本当のベンチャーを経験したことある人ってあんまりいないと思うんだけど、いわゆるシードラウンドというところにまだいるのね。要は、投資家の人から「ああ、なんか面白そうだね、そのサービス。じゃあちょっとお金出してあげるよ」と言われて、商品を作っている段階。だから、まだ売るものは何も完成してないです、っていう段階です、今。で、今、必死にそれを作ってる。で、もうちょっと内部的なことを言うと、さっき言ってた、テストを失敗確率の高い順にオーダリングをするっていう機械学習のモデルはもうできてる。
hidek:なるほどね。
庄司:だいぶ精度の高いものができるようになっている。とはいえ、それを開発のビルドパイプラインに組み込むためには、API化しなきゃいけないとか、どうやってそのデータを集めるのかとか、どう通信するかとか作っていけなければいけないので、今、そこをガリガリ作ってるっていう感じ。
hidek:へー。基本的にそのお客さんはtoBになるんだよね?
庄司:うーん、そうね。今のところ、最初はtoBだろうなと思ってる。それこそ、CircleCIみたいに、一般のユーザーも使えると便利だったら、どんどん出せてもいいかなとは思うけど、やっぱり最初はお金稼がなきゃいけないのでBかな、という気はしてる。
hidek:うんうん。ちなみにそのモデルっていうのは、いろんなプロジェクトだとか、場合によっては事業・プロダクトに横展開できるようなものなの?
庄司:うん。それは今のところで言うと、モデルをそれぞれ個別で作ってるのよ。
hidek:あ、そうなんだ。
庄司:例えば、メルペイがうちを使います、ってなったら、メルペイの、メルペイだって今までテストしてなかったわけじゃないでしょ? っていうね。
hidek:なるほどね。
庄司:「過去のJenkinsのデータを一旦ください」でもいいし、今から導入するんだったら、「今からこのプラグイン入れてくれたら、どんどん溜まっていってどんどん精度上がりますよ」っていう風になっていく感じ。
hidek:あ、じゃあ結局そのモデルも各プロジェクト・プロダクトの個別最適をしていくっていうような。
庄司:していく。で、今はやんないといけないかな、と思ってる。けど、将来的にはもしかしたらジェネリックなモデルができるかもな、みたいな話をデータサイエンティストがしてたような気もするんだけど。でもさ、どのファイルを変更したらどのテストがこける、みたいなのって、あんま準備できないから、個別には基本なっちゃうんじゃないかな、という気はしている。
hidek:そう。だからtoCって結構そこは難しいのかな、って。toBの方が収益上もいいと思うし、モデルもどんどん特化できるから、どんどん価値も上がっていくからいいとは思うんだけど。たぶん、すごく難しい。ただ、面白いなあ、とはすごく思いますね、聞いてて。で、そんなLaunchableに、なぜtoC向けのCookpadから、いきなりLaunchableに。転職した理由というか。
なぜCoockpadからLaunchableへ?
庄司:これはもうすごい単純で、「会社を立ち上げましたよ」っていうのを川口さんがブログに書いてたんだよね。で、「これから開発頑張っていくぞ」みたいなことが書いてあって、「興味あったら連絡してください」みたいなよくあるブログ記事だよね、言ってしまえば、なんだけど。すごい興味出てさ。Perl界隈だけちょっと特殊かもしれないけど、テストに関して言うと。Jenkinsって、それこそCI/CDを民主化したと思ってるのよ、俺は。
hidek:うん。
庄司:昔、CIとかって、それこそデカい企業、GoogleとかAmazonはやってるって噂は聞くけれど、一般企業はやらない、みたいなのだったのが、Jenkinsの前のHudsonが出てきて、みんな自分たちでそれを立ててできるようになっていって、っていう。で、CI/CDするのが当たり前になった、っていう。トップ企業しかやってなかった仕組みを、完全に民主化してエンジニアがみんなCI/CDをやるようになったのって、川口さんがHudson・Jenkinsを作ったからだと思ってるの。と言っても過言ではないかな、と思ってて。
hidek:川口さんとは面識あったの?
庄司:たぶん、お互いに名前は認識してたぐらい。
hidek:なるほどね。ありがちだね(笑)。
庄司:そうそう。ありがちなやつ。で、Perl界隈だけちょっと違うんだよね。Perlって昔からCPANはCPANでテストするしさ、インストールする時もテスト通らないとインストールできないとかさ。クソが、みたいなさ(笑)。
hidek:(笑)
庄司:Perlって昔からテストに厳格だったというか。
hidek:そうですね。ベストフレームワークでしたね。
庄司:そういう意味で言うと、CI/CDを民主化したのは川口さんだと思っていて。その人が新しい会社を立ち上げて、新しいことにチャレンジする、って言っているのがまず楽しそうだな、と。
hidek:なるほど。
庄司:で、楽しそうな第二として、言ってしまえば、スローテスト問題をどうにかしようとしているんだよね。スローテスト問題って、どこの世界でもみんな抱えている問題だけど、そこに真っ向から戦おうとしている人ってあまりいないじゃん。面倒臭そうだしさ。
hidek:うん。そうね。
庄司:それを真っ向からやろうとしているというのはチャレンジングだな、と。またもう一個、もしかしたら世界を変えられるんじゃないかな、っていう。3時間テストかかっているものが10分になりました、って言ったら、下手したら開発の速度が変わるわけじゃん。
hidek:まあ、イノベーティブですよね、すごく。
庄司:そう。そうすると未来が来るのが早くなったりもするんじゃないかな、というのも含めて面白そうだなと思って、コンタクトして、「ちょっと話聞かせてください」みたいな。「面白そうっすね」って言って。それこそコロナが来てたからZoomで話をしたのよ。
hidek:それが初対面?
庄司:初対面。認識して話すのは初対面。
hidek:なるほどね。
庄司:で、話してて、その時は全然転職する気なんてなくて。Cookpad大好きだったし。で、話してて、しかも俺、全然英語できなくて。で、まあ話してたら盛り上がってきて、「興味あるの?」って言われたから、「興味はめちゃめちゃあるけど、俺、英語、本当に全然ダメなんすよ」って話をして。でも、「英語全然ダメなのは厳しいかもね。でも、一応もうひとりの創業者のHarpreetと会って話してみて。俺、通訳するから」みたいな感じで言ってくれて。で、話たら結構盛り上がって。まあ通訳越しだから俺が勝手に盛り上がってると思っただけかもしれないけど(笑)。
hidek:(笑)
庄司:で、「一緒にできたら、働けると楽しいね」みたいなことを最後に言ってくれて、別れ際に。「え?」ってなって、で、川口さんからメールで「もしよかったら本気で考えてくれないか」みたいなのが来て、速攻「辞めます」って言ったよね(笑)。
hidek:へー。
庄司:っていう感じです。
hidek:めっちゃフッ軽だね、そこは。
庄司:うん。
Jenkins生みの親・川口さんってどんな人?
hidek:ちなみに、川口さんって、僕もブログを読んだりだとか、もちろんJenkinsってプロダクトもお世話になったし、全然知ってるんだけど、パーソナリティとしては川口さんってどんな人なんですか?
庄司:どんな人? これね、たぶん、すごいエンジニア全員に共通すると思うんだけど、いい人だよね。
hidek:あー。
庄司:マイナスなイメージじゃなくて、厳しいことはちゃんと言えるし、でも、基本的にはみんなのこと考えてるし。
hidek:うーん。
庄司:っていうのはある。人柄としてすごく尊敬できるなあ、と思うし。
hidek:やっぱりビジネスを立ち上げていかないといけないじゃないですか。もちろん、エンジニアとしてはすごく優秀で尊敬できる人だし、今の話だと、人としても、ってことだよね。いわゆるビジネスパーソンとしてはどうなんですか?
庄司:そうね。ビジネスパーソンとしてもいいし、マネジャーとしてもすごく優れているなと思ってて。なんか、言うても俺もそれなりにマネジャーをやってきたつもりではいるのよ。
hidek:うんうん。
庄司:それこそ、オライリーの『エラスティックリーダーシップ』に寄稿するぐらいには、やってきたつもりではいるけど。今、川口さんの下でやってて、やっぱマネジャーとしても、すごくやりやすいな、と思う。思ったことちゃんと話してくれるし、「会社がこういうフェーズだ」っていうことも話してくれるし、「投資家とこういう話をしているよ、だから今、僕らのところにボールがあるからこういうことしないといけないよ」という話もしてくれるし。
hidek:へー。
庄司:だから、めちゃめちゃやりやすいし楽しいね。
hidek:なるほどね。今、チームとしては、サイズ感は何人くらい? まあ、たぶんグローバルでリモートでの組織だとは思うんだけど。どれくらいの組織規模なの?
庄司:会社で言うと、たぶん11人くらいだったかな、今。で、エンジニアで言うと、データサイエンティストがひとりアメリカにいて、で、川口さんがアメリカにいて、で、あと日本にエンジニアが3人+ひとり。ひとりは社員ではないんだけど、手伝ってくれている人がいる。っていうのが会社の全体かな。
日本のエンジニアが世界に羽ばたく
hidek:あ、じゃあ日本の方がもうエンジニアの組織としては大きいんだ?
庄司:エンジニアは日本が多い、というか、川口さんが、そもそも「日本でエンジニアリング組織を立ち上げたい」って言ってたんだよね。
hidek:あ、そうなんだ。
庄司:そう。目的として、「日本のエンジニアリング、エンジニアの人たちって優秀なはずなのに、世界になかなか羽ばたいていないのがもったいなくて。で、そこの架け橋に俺はなることができるはずなのにやっていないから、そこもやりたい」ということで、今回の会社を立ち上げる時にもうひとつのチャレンジとしては、日本で開発拠点を立ち上げたい、っていう話だったのよ。
hidek:なるほど。
庄司:で、それを立ち上げる時に、リーダーもできる人間を探していて、俺が、っていう感じで入った。
hidek:なるほどね。今はまさにそのチームビルディングというか組織を作っているところ?
庄司:まあでも、チームビルディングなんてほぼないよね、ぶっちゃけ。だって3〜4人しかいないんだもん。
hidek:でも、ここから採用していくんでしょ?
庄司:ここから採用は、まだそんなにしない。せいぜい入ってもひとりとか、そんなもん。まだ、シードラウンドでお金全然ないし、資金食いつぶしながら開発している段階なので、チームビルディングというよりは開発の方がメインかな、っていう感じはしてる。ただ、チームとしてうまく動くように、というのはそれなりにはお互い考えてるけど、って感じかな。逆に川口さんとかからは、「僕はこういうことやろうと思ってるんだけど、大丈夫? 嘉織はチームビルディングとかリーダーシップ的にやりにくくない?」ということも聞いてくれて、やってる感じ。
hidek:めっちゃ経営者としてやりやすいじゃないですか。
庄司:うん、そう。
hidek:今、ビジネス的なところ、聞いていいのかわからないけど、お客さんって日本の会社の、日本の企業もお客さんとして、もう、ついてたりするの?
庄司:うん。今、お客さんという言い方があれで……。
hidek:あ、そっか。まだ、PoCの段階?
庄司:そう。なので、プロダクトアドバイザーと今言ってるんだけど、一緒に自分たちのベータを作っていくのを手伝ってもらえませんか、データもらえませんか、あなた方のパイプラインに組み込ませてください、みたいなのはやってるのがあって。結構、世界的に有名な誰でも知っている企業もあるし、日本の企業もあるし、みたいな感じで何個かある。
hidek:じゃあここから製品化も進めて、増えていく感じか。
庄司:そうね。
hidek:いいね。やっぱり、スタートアップっていう、その辺のワクワク感もあるし。
庄司:そう。ワクワク感もある。でもね、焦りもするよね、やっぱり。
hidek:そうだよね。
庄司:急いで商品出してお金稼がないとさ、お金なくなるからさ。
hidek:とはいえ、コアテクノロジーがあるから、そこはすごい安心できるというか。
庄司:まあ、そうね。安心はできるけれどもね。やっぱお金がなくなる怖さはあるよね。たぶん、シードラインが終わったら少し気軽になれると思うのよ。
hidek:うんうん。
庄司:売れる商品さえできれば、ちょっとは気が楽になるじゃん。まだ赤字ではあっても、どんどん売れていけばなんとかなるんだな、みたいな。今、まだ、入ってくるものが本当に何もない状態だから、若干焦るね、というのはある。
hidek:うん、なるほどね。でも、そういうチャレンジもできるのでいいじゃないですか。
庄司:うん。
Launchableのアーキテクチャ
hidek:ちなみに、Launchable自体はシステム的にはどういうアーキテクチャというか構成になってるの? センターのバックエンドみたいなのがあって、それで回収して、で、マシンラーニングかけて、みたいなイメージ?
庄司:そうね。例えば、「今、サーバサイド何で書いてる?」って言われれば、普通にJavaで書いてる。で、Spring Boot使って書いてるし。まあ、裏の機械学習とかはSpark使ってガンガンゴリゴリ回してるみたいな感じでやってるし。で、AWS使ってEMR使ってみたいなのもやってる。で、EKS使ってKubernetesで立ててて、みたいな。今時な普通な、そんな「コアテクノロジーでクソすごいことやってる」みたいなのはない。普通にバックエンドのデータベースはAurora使ってるし。
hidek:うんうんうん。でも、システム規模としては、まだ、それこそCookpadのころってすごく大きなシステムを扱ってたと思うんだけど、そこと比べると、システム規模でいうと、まだこれから?
庄司:まだ、全然全然。うん。
hidek:なるほどなるほど。
この記事が気に入ったらサポートをしてみませんか?