『ツイキャス』を運営するモイの代表取締役で、経験豊富なエンジニア赤松洋介氏が、週替わりで旬なスタートアップのエンジニアや起業家を招いて放談する「モイめし」。『ツイキャス』連動企画として、お昼に30分の生放送&その後のフリートークも含めて記事化したコンテンツをお届けします!
インフラにも開発組織にも通じるGunosyの「スケールするアーキテクチャー」とは【30分対談Liveモイめし:赤松洋介×松本勇気】
『ツイキャス』を運営するモイのエンジニアがホストを務め、週替わりで旬なスタートアップのエンジニアや起業家を招いて放談する「モイめし」。今回のゲストは、Gunosy開発本部執行役員の松本勇気氏だ。
アプリからインフラ周りまで『グノシー』の開発に幅広く携わってきた「フルスタック」な松本氏だが、現在は20代半ばという若さにして、すでにマネジメントに主軸を置く立場という。
インフラ構築、組織作りの両方でGunosyの骨格を作ってきた松本氏が、Gunosyが体現する「スケールするためのアーキテクチャー」について語った。
Gunosy 開発本部執行役員
松本勇気氏(@y_matsuwitter)
1989年鹿児島生まれ。東京大学工学部2013年卒。在学中より株式会社Labitなど複数のベンチャーにてiOS/サーバサイド開発などを担当し、2013年1月よりGunosyへ入社。iOSやAndroid、Web、API、インフラ開発を担当し、現在は開発本部執行役員として、アプリ、サービスの企画・開発、マネジメントを担当している。社内ではGo言語を始めとする新技術の導入も促進している
エンジニア歴はたった4年。コーディング経験ゼロでCTOに
赤松 いろいろホットな話題を振りまいているGunosyさんですが、松本さんはそもそもいつごろからエンジニアに?
松本 今から4年くらい前ですね。大学3年の時に友だちと起業しようという話になって。その時点では全くコードを書けなかったんですけど、いきなりCTOをやることに。
赤松 え? マジですか?
松本 AR系のサービスを作るってことになって、PythonとGoogle App EngineでそのベースになるSNSを作って、そこからiOSを書き始めてアプリを作って、という感じです。
赤松 それまで全然エンジニアじゃなかったんですか?
松本 それまでは、ただの“意識高い”学生でしたね。コンサルみたいなものでもなろうかな、と。起業しようってなってから道を踏み外して休学して、1年くらいARアプリを作ってたんですけど。
赤松 休学するの勇気いりませんでした?
松本 まぁ、休学しても死にはしないですし。「人生、死にはしない」ってキーワードで動いているので(笑)。ただ、その時は鳴かず飛ばずみたいな感じだったので、1年くらいやって前職のLabitに移りました。『すごい時間割』というアプリを作ってまして、それのiOSとサーバサイドをやっていました。
『すごい時間割』は伸びたんで楽しかったです。休学は途中で終わって、その後の9カ月くらいは大学と並行してやっていました。
赤松 大変じゃなかったですか? スタートアップってほぼ全部の時間を使うじゃないですか。
松本 大変でしたね。授業は最低限だけ出て、授業中も半分くらいはコーディングしてました。あまり良くないことではあるんですけど。卒論も、時間を掛けずにこなして卒業しました。
赤松 起業はどの辺に面白味を感じて?
松本 もともと小さいころからモノづくりが好きだったんですよ。電子と関係ない工作。木を切って棚を作るとか。起業してみて初めて動くものを出してみて、それがすごく面白かったので、そこからドハマりした感じですね。
まず着手したのは、「カオス」だったインフラの整備から
赤松 じゃあずっと開発側の立場ですね。けっこう自由に自分の好きなものを作れる感じでしたか?
松本 実はそこがちょっとだけ不満で移動したっていうのがあって。やっぱりメンバーでぶつかる部分はあって、俺はこうしたい、みんなはこうしたいと、いろんな意見が出る。
その方向が違うと、バンドが音楽性の違いで解散するみたいなことが起こりますよね。それで大学4年の12月にCEOの福島(良典氏)に誘われて、Gunosyに来たという感じです。
赤松 福島さんとはもともと仲が良かった?
松本 大学の先輩にはあたるんですが、前から仲が良かったというわけではありません。『グノシー』がメールマガジンとして出た時に、「すごいサービスが出たらしい」いうことで周囲で話題になっていて、お世話になっていた投資家の方を通じて飲み会で初めて会いました。その後も1回くらいしか会ってないんですけど、いきなり連絡が来て、二つ返事で「よし、行く」と。
赤松 すごいですね。やりたいことと一致したみたいなのがあったんですか?
松本 僕自身はたくさんの人に届くものができれば何でもいいというタイプなんですが、Gunosyはこれから絶対伸びるよなって思っていたので、そこに誘われるなら行くしかない、と。
赤松 これまでの2社とは何か違いがありました?
松本 そうですね。ユーザーの一般性というか。ニュースは誰でも見るじゃないですか。一方で、時間割は学生にしか届かないので。
どんな人でも朝、『めざましテレビ』を見たりとかニュースは見てる。でもスマートフォンでニュースを見るのに決定版はまだないと思っていて。だったらGunosyに入って、自分がそれを伸ばせたら最高だなということで入ることにしました。
赤松 入ってからどうでした? 開発面でいろいろ大変なことがありました?
松本 カオスでしたね(笑)。スタートアップってどうしても最初は作りきることが最優先なので、それに見合ったカオスさがあって。入社して最初にやったのが、ログとかインフラの整備でした。
赤松 でも、いわゆる大きなインフラでの開発経験というのは……。
松本 なかったですね。正直言うと、AWSでの開発経験もなかった。Labitにいる時はほとんど別の人に手伝っていただいていたので、僕はほとんどアプリケーションレイヤーしか書いてなかったんです。でも、やれば何とかなるだろう、と。
赤松 それはなかなかすごいですね。インフラの拡張はウチもけっこう大変で。サーバを増やせば拡張するシステムっていうのは、実はすごく良くできたアーキテクチャーで。ウチも最初はそうはなっていなかったから大変だったんですけど。そのあたりを未経験から駆け抜けるのはなかなか大変かな、と。
松本 ゼロから何とかやってみましたね。きつかったのは、当時はAPIが全部Railsで、Unicornを使っていたこと。Unicornは1プロセス1リクエストしかこなせないので、サービスの性質上、例えば朝のピーク帯にものすごく詰まってしまう。それでユーザーにレイテンシが出てしまうというのがあって。その時はまだあまり知識もなかったので、そこをどう解決するかで苦労したかな。
最初はSinatraに移して5倍くらいはさばけるようになって、その後もいろいろ試していたんですけど、テレビCMやるよっていうタイミングが出てきて、ああ、これは無理だとな、と。そこからまたいろんなアプリを検討して。
例えば一番速かったのが、Nginx Lua。他にもNode.jsをやってみたりとか……。その時にGoに出会って、「Go最高じゃん」ということで、全部Goに置き換えたという経緯です。
小さなアプリの集合構造にすることで、リプレースも容易に
赤松 既存のシステムがあって、日々改修とか不具合調整とかいろんなものが進行するじゃないですか。その中で新しいものに置き換えるっていうのはすごく大変な気がするんですけど?
松本 そうですね……ただ、システム自体は案外と小さいので。今もいろんなアプリケーションがあるんですけど、一つの大きなアーキテクチャーじゃなくて、内部は小さなアプリにたくさん分かれているんですよ。なので、リプレースとなると、その小さいアプリのリプレースになるので、わりと難しくなくて。
赤松 そこはじゃあAPIレベルの結合で?
松本 はい。そういうアーキテクチャーにしておくと、Railsからの置き換えの時も、このエンドポイントだけをGoに、という形で書き換えていって、だんだんその範囲を広げていくことができる。
赤松 初期のアーキテクチャーの整理が後々効いてくるということですかね。
松本 そうですね。ベンチャーで開発しているとどこもそうだと思うんですけど、ウチなんかは過去にすでに4回もメジャーアップデートしています。半年に1回くらい。そういう時って、どんどん要求が変わってくるんですね。一昨年の9月のアップデートなんかは、ニュースにコメントできるSNSのような機能を付けようみたいな話がちょっと出ていて。
そういう時、今までのように整理されていないアーキテクチャーだとゴソッと作り替える必要が出てきますが、今は必要な部分は別のドメインを切り出して、その中で別に開発して、それでくっ付けていく。そのバージョンを捨てることになった時にも、エンドポイントだけを捨てることができるんで、今のところメンテナンスで困ったりはしないですね。
赤松 でも、そういうところまで知識広げるのは、ベンチャーにいながらだと大変ですよね?
松本 いや、むしろベンチャーだからこそできる部分はあると思っています。ベンチャーはいろんな要求が降ってくるし、しかもお金がないからできるだけサーバを小さく抑えたいとか、制約も強い。そうなった時に、負債が小さいベンチャーの開発は技術だけは何でも使えるので、いろいろと勉強できるのかな、と。
ウチは月に1個くらいは大幅なリプレースが走っています。例えば2月にリリースしたAndroidの新バージョンは、見た目はほとんど変わってないんですけど、内部のアーキテクチャーをごそっと作り替えて別のコードになっています。ユーザーからパッとは分からないけど、将来的には開発が速くなるし、実はスワイプとかも高速で動くようになっていて、ユーザーの使い勝手も良くなっている。
赤松 フルスクラッチで書き直すのではなく?
松本 フルスクラッチです。
赤松 おお! ウチはそれでいろいろと苦労しているんですよ。半年とかいうレベルではなかなかできないですよね?
松本 だいたい3カ月とか、短いものだとは1カ月とかでやりますよ。
基本は数字。しかしCEOに必要なのはそれを超えるもの
赤松 Gunosyが必要なエンジニアってどんな人なんですか?
松本 ウチで一番ほしいタイプは議論できる人ですね。今、KPIは何で、そこにどう寄与できるのかというところを自分で意識して機能や開発の提案ができる、企画にも近いようなエンジニアがウチには多い。新しい企画は、フラットに全員から募集するようにしていて、僕らが開発工数と効果から優先順を付け、みんなに振り分ける。なので、その提案ができるのが一番重要ですね。
赤松 提案するのには何が必要ですか?
松本 会社の課題をその場で言えること、見ていること。今僕らって何に困っているんでしたっけ? というのを言えないとダメだと思うんです。それを解決すると何が起きるのかと、それがどこに数字として表れているんだっけ、ということ。課題と数字を自分で意識して、それに対して仮説を立てて、その仮説に見合った施策を提案できることが重要ですね。
赤松 グノシーっぽい感じですね。レコメンドができるという。
松本 そうですね。社内は全部数字で見ているので。社内にたくさんダッシュボードがあって、今配信されている記事のクリック数だとか、昨日のDAUだとか、リテンションレートもすごく細かくいろんな見方をしていて。それを全社員が見れるようになっています。
赤松 数字で追えないところって基本的にはないという考え方ですか?
松本 いや、やっぱりあるとは思います。例えばどっちの色がいいとかっていうのは、そんなには数字には出てこない。もしくは長期にしか効いてこないものっていうのもあって、そういうのは今は週に1回、ユーザーテストをやってます。だから定性と定量どっちも大事だと思います。
会社が拡大してくるとエンジニアとマーケとかセールスが対立しやすいってよく言われるんですけど、ウチの場合は数字が共通言語になっているんですよ。2つの施策をちゃんと数字で比較、評価できるので、どっちをやるべきかは明確に見えてくる。だからやり取りしやすくて、うまくいくのかな。
赤松 数字はいいところも難しいところもありますよね? 設定値の問題とか。
松本 難しいなと思うのは、数字は短期的な目標に効くものが多かったりするんですよね。みんな短期的な視点になって、その数字を追い求めちゃうことがけっこうあるので、それをどう打破するかが重要ですね。それがCEOなんですよね、多分。
いきなり突拍子もないことを言って企画を立ち上げて、それを開発陣に求めるっていう、これがすごく重要なのかな、と。3年先、5年先を見ていて、僕らにはロジックでは分からないけれど、やってみたら確かに良かったみたいなことを提案する。
赤松 将来的にはそういう立場になってみたい?
松本 多分、組織が大きくなってくると、やっぱり階層構造になっていくので、その中の一つとしてやっていくみたいなことには挑戦したいですね。最適化の解を出す上でローカルな議論に陥ったら、外乱を加えて外に行こう、という。
赤松 「良い外」に飛べるといいんですけど、そこが難しいんですよね。まあチャレンジしない方がリスクが高いのも、ベンチャーですからね。
松本 数字詰めるだけだと、他のプレイヤーもおそらく同じところに収束してしまうので、トリッキーな手も使いながら。
質を落とさずスケールできるスクラム・オブ・スクラムの体制
赤松 改めてすごい成長速度ですけど、どうですか? 振り返ってみて。
松本 本当にむちゃくちゃなスピードですけど、個人的には着実に成長できていると思っています。開発速度は人が増えたら落ちるって言いますけど、30人まで増えた今も全然そんなこともなくて。クオリティーも上げながら着実にチームも拡大できているのかな。チームを拡大する方法が見えてきたのかなっていう感覚がありますね。50人になってもちゃんとスケールする組織になっている。
ウチはスクラムを採用していて、2週間1スプリント、5人くらいのチームで回しているんですけど、それぞれのチームが自律的に企画を上げて、数値、リリース、QAまで全部見てくれる状態になっている。
で、スクラム・オブ・スクラムみたいな形で、スクラムマスターのスクラムマスターみたいなところを今僕がやっています。今のテンプレートに則れば、いろんな企画の拡大もできるのかな、という感触があります。組織構成も、インフラ構成とけっこう似た作りになっていますね。
赤松 テレビCMやったりとか新しいことやったりしてますが、社内の雰囲気とか反応はどんなもんですか? もうすぐ上場もするんですよね?けっこう速かったなという印象ですか?
松本 速いですね。僕もびっくりしています。
赤松 その辺はどういうふうにコミュニケ—ションしているんですか? 会社によっては「上場するのよそう」というところもあるじゃないですか。
松本 計画とかは数字でたんたんと進んでいるので、今も1カ月前と全然変わらない感じで開発が進んでいますね。
赤松 ちなみにニュース系は競合も多い分野ですが、その辺もウォッチしてますか?
松本 多分、互いにウォッチしあっているんじゃないですか?(笑) 競合だけじゃなく海外、ゲーム、新しいものといろんなアプリを見ているんで、そのうちの1個として競合のアプリというのもあるのかな。よそを見て学ぶこともありますよ。競合他社さんと飲みに行くこともあるので。
赤松 今後、海外展開も力を入れていくんですか?
松本 海外もいちおう出してはいますが、開発の主軸はあくまで国内。当然、ユーザーは日本に1億で海外に59億いるので、そこも取っていかないと、という考えはありますが。ただ、普通のニュースアプリとして出して勝てるのかというと、その辺は海外が先行していたりもするので、僕らなりのやり方というのを探していこうと思っています。それが見つかってからなのかな。
赤松 アメリカで働きたいというエンジニアもいらっしゃいますが、個人的にはそういう考えはありますか?
松本 個人としてはぜひやりたいと言っているんです。
赤松 向こうは何が違いますか?
松本 やっぱり、いる人たちが多様じゃないですか。中華系、黒人、いろいろな文化の方がいて、いろんなニュースを見る。そこにフィットさせたものを出すというのはどういうことなんだろうか。例えば地理情報でパーソナライズしてもダメだし、コンテンツで出すといっても、最初に当てるコンテンツをどうしよう、とか。それに対する回答は探さないといけないと思っています。
赤松 数字で出てきますかね?
松本 まずは数字よりもユーザーインタビューでしょうね。スタート段階ってデータがないので、まずインタビューしてニーズを見ていかないといけないと思っています。
赤松 Gunosyでは引き続きエンジニアを募集しているんですよね?
松本 絶賛募集中です。iOS、Android、インフラですね。すごく面白いインフラあるんですけど、今それを1人でマネジメントしているので。新しいツール使い放題なんで、使いたい人がいたらぜひ来ていただきたいです。
赤松 うちも先日1000万ユーザーを達成したところですが、同じように募集しています。何ならGunosyさんと併願していただいてもいいですよ(笑)。
取材・文/鈴木陸夫(編集部)
RELATED関連記事
RANKING人気記事ランキング
米国優位が揺らぐ?ひろゆき「CPUの進化でGPU神話って崩壊しません?」【AI研究者・今井翔太が回答】
NEW!
表面的なテクニックより「基礎基本の重要性」に気付かされた一冊【Node.js 日本ユーザーグループ代表・古川陽介】
AWS認定資格10種類を一覧で解説! 難易度や費用、おすすめの学習方法も
NEW!
正論モンスター化に要注意!ぎくしゃくしない「ミスの指摘」のコツ【澤円「コミュ力おばけ」への道】
社会で成功するゲーマーに、ひろゆきが聞く「現実世界を攻略できないゲーマーに足りないものって何すか?」
JOB BOARD編集部オススメ求人特集
タグ