Gunosyの開発現場に、Forkwell Jobsが潜⼊取材!
国内だけでユーザー数1,000万超となった情報キュレーションアプリ「グノシー」を運営し、2015年4月には東証マザーズ市場に上場も果たした株式会社Gunosy。サービス開始から3年半、創業から2年半というスピードで、プロダクト開発とビジネス構築のいずれも達成し、今も成長し続けるテクノロジー企業は、世界的に見てもまれといえる。
そんなGunosyのプロダクト開発の基礎となる開発ポリシーを、執行役員 開発本部 松本勇気氏に聞いた。松本氏はGunosyの創業3ヶ月後にジョインし、iOSアプリ、Androidアプリ、サーバーサイド、インフラなど開発全般を担当してきた。特にiOS版グノシーは2014年までデザイナーと松本氏のほぼ2人で開発。
そんな確かな実績があるからか、松本氏には会う人を圧倒するオーラがある。26歳とは思えない落ち着いた物腰、明瞭で論理的な話し方。彼はどうやってGunosyを作ってきたのか、そしてさらなる成長のために今何をやっているのか。(以下敬称略)
Gunosyの開発部門は3つのチームで構成されている。数値解析チーム、広告配信チーム、そして松本が統括するプロダクトチームだ。プロダクトチームでは、iOSアプリ、Androidアプリ、Webアプリ、APIの開発やインフラ運用までをカバーする。
大学時代から「すごい時間割」を開発するなど実績があった松本。創業メンバー3人に誘われてGunosyを選んだのは「情報を届けられるユーザー数が多いこと」だった。
Gunosyでは、創業当時からの組織文化として、全社員が数値を意識している。数値を共有し、その上ではじめて議論がはじまる。松本に言わせれば「仮説をひたすら数字で証明していくので楽」なのだそうだ。社員全員で数値を共有するための仕組み、つまり可視化も徹底している。
「売上やDAU、リテンションデータ、滞在時間などは、ダッシュボードで確認できるようになっていますし、チャットでも重要な数値が1日ごと、ものによっては1時間ごとに流れるようになっています」
創業者3人の専門がデータ解析、データマイニングだったことも大きいという。
「仮説と評価をくりかえす。そのための数値を可視化することを徹底しています。可視化しないと誰も見なくなりますからね」
実はこの仕組みにはRailsが活躍している。Gunosyでは数値共有のポイントとなる管理画面でRailsを採用。周辺ライブラリが充実しており、設計哲学(DRYやCoC)により開発効率が良いのがその理由だ。
数値そのものの分析をした上で、数値の背景にまで考えを巡らせることが必要だともいう。
「ある数値が増加傾向だとします。その数値は他の数値とどのように関連して動いているのか、別の数値の動きの結果なのか、比率にすると何が見えてくるか。表面的な数値だけでなく、その背景を読み解くことが大事です。Gunosyではそれを、すべてのメンバーが意識できていると思います」
Gunosyでは社員全員が施策の立案もする。プロダクトの改善につながるのであれば、チームを超えての提案も受け入れる。プロダクトの長期的な方向性にマッチするかどうかは重視するが、基本的には「やらないよりやってみる」。挑戦した結果ならば、失敗することで責任を問われることは無い。
施策の効果を見るうえで重要なのはA/Bテストの繰り返しだ。ネイティブアプリは頻繁にアップデートしづらいので、膨大な数のA/Bテストをあらかじめ仕込んでおき、サーバー側でA/Bテストを切り替えられる仕組みにしている。
数値だけでなく、ユーザーからのフィードバックも社員全員で共有する。プロダクトに関するお問い合わせはZendeskに集約され、クリティカルなものはカスタマーサポート担当者がプロダクト開発担当者に連絡する。必要な情報をHipChatに自動配信するボットが複数動いており、アプリレビューのコメントもHipChatに自動的に配信され、バグなどの不具合にもすぐ気づくことができる。サーバー監視、ユーザー動向でも異常値をアラートする仕組みにしている。
急成長を続けるゆえのつまずきもあった。
「早い時期に処理性能の壁にぶつかりました。iOSアプリをリリースした時、当時のユーザー数に見合わない急激な負荷がかかってAPIの応答がかなり遅くなったんです。プッシュ通知を配信した直後に一斉にアプリが起動されることで、短時間リクエストがサーバーに殺到し、さばききれなくなっていたことが原因でした。その時のAPIはRailsとUnicornを使っていましたが、Unicornは1プロセス1リクエストしかこなせないので、ピーク帯に想定以上のレイテンシを出してしまいました。
当初、フレームワークをRailsからSinatraに移行することで性能をある程度改善したのですが、テレビCMによるユーザー増を考えると性能が不足しており、あらためて対応することになりました。nginx-luaやNode.js、Haskellなどいろいろな技術を試した結果、最終的にGoで落ち着きました。当時、Goを実運用で使っている事例が少なかったのですが、導入段階で小さなサーバーで試して安定して十分な性能を担保できることも確認でき、本格運用を始めました」
また、この頃から、小さい単位で作り、リバースプロキシでビジネスドメインごとに順次切り替えていくという、マイクロサービス指向の開発を採用するようになった。小さく作ることで捨てやすくなるというメリットもある。使わなくなったAPIはメンテナンスせずにスッパリと捨ててしまい、エンドポイントへのアクセスは404を返すなどの対応を行っている。
「サーバークラスタを小さなものは2台程度から大きなものだと数十台ほどで構成し、ビジネスドメインごとに分離しています。もし新しい技術を導入して一部サーバーの反応が遅くなったとしても、メインのAPIの動作が担保できていればクライアントサイドは動作し続ける作りにしています」
「主張するだけの人よりも、作ってきた人がえらいという文化があるので、可視化のためのダッシュボードやチャットボットなどは誰かがすぐに作ります。実行してダメだったら外せばいいだけですし、失敗しても実行したことは評価します。まずは実行です」
必要なものはすぐ作る。こんな文化が実現できるのは、Gunosyでのメリハリのきいた働き方にも関係がある。
「長時間働くよりも、長期間働ける環境を作るというのを会社のポリシーにしています。残業せず18時半の定時には帰るようにしており、ふだんは20時には、ほとんどだれも残っていません」
一方で、朝は全員が定時に揃う。遅刻しない習慣は働き方全般にメリハリを生み、生産性が高まるので、より多くのことに挑戦し、失敗もできるのだ。
また、残業しない生活は、社員の成長と、より積極的な開発姿勢につながっている。自由になった就業後の時間で、自分の作りたいものを作れるし、勉強もできる。昼の時間にランチハックというイベントもある。「自分が作りたいものを宣言して作るだけですが、自由に作りたいものを作るという文化が浸透しています」という。
現在GunosyではWebサービスと管理画面はRuby on Rails、同時アクセスが多いAPIではGoを採用。Railsはチーム開発がしやすく、効率よく画面を作りやすい。一方でGoは軽くてマイクロサービス指向の開発に向いている。それぞれの言語やフレームワークの特性によって使い分けている。
また、フロントエンドのリアルタイムチャット機能にはReactを採用。コンポーネントの使い回しがしやすいと、デザイナーからの提案で採用に至った。「AngularJSはフロントエンドには大きすぎる。Reactは自分も使ってみてよいフレームワークだと思いましたし、実績もあるので導入しました」と松本は経緯を語る。
スピード感ある開発ができる理由の一つには、課題に対してどう解決していくか、手段や方法の選定がエンジニアに任されていることもある。会社として致命的なエラーを防ぐ体制をつくり、社員が提案する新しい技術は積極的に導入する。
「使いたい人が提案して開発する。サーバー要素なら僕やインフラ担当、各チームリーダーなどがレビューし、問題があったときにすぐに切り戻しができることがわかれば即導入です。最近だとErlangを使ったRuby風の言語Elixirが社内で盛り上がっています。複数サーバーでの分散並列処理が得意なのでどこかで使いたいと話しています」
新しい技術は情報がそろっていないことが多いが、ソースコードを読み自分で学ぶ。Goを導入したときも標準パッケージのコードリーディングで仕様を理解した。
Gunosyでは現在エンジニアを募集中だ。1つの領域にとどまらずに複数の技術をキャッチアップできる、様々なバックグラウンドの人材を求めている。さらに、次の成長ステージに向かうGunosyのエンジニアに求められるのは、技術力だけでなく、なによりも「コミュニケーション力」。
「プロダクトを改善するためのアイデアを自分の言葉で説明でき、言語や技術、施策など、新しいことにどんどん挑戦したいと望んでいる優秀なエンジニアに、ぜひGunosyの仲間になってもらいたいと思っています」
「Gunosy 5,000万人都市構想」として、スマホ時代の情報プラットフォームをめざし、さらなる成長に向かおうとしているGunosy。新しい技術に貪欲で優秀なエンジニアには楽しい環境だ。
株式会社Gunosyへの転職が気になったら、さっそく求人票を見てみよう!
株式会社Gunosy
5,000万人が集まるプラットフォームを目指す Gunosy が、Web版を開発する Railsエンジニアを募集!
ruby ruby-on-rails javascript mysql amazon-web-services fluentd
株式会社Gunosy
5,000万人が集まるプラットフォームを目指す Gunosy の API を Go言語で開発するエンジニアを募集!
go goji coffeescript react mysql amazon-web-services
株式会社Gunosy
1000万人が使うニュースアプリ「Gunosy」のデータ解析、表示最適化を行うエンジニアを募集!
python mysql mongodb amazon-redshift fluentd ruby
株式会社Gunosy
1000万DLのニュースアプリ「Gunosy」の収益を支える広告システムを Go で開発するエンジニアを募集!
go goji javascript mysql python amazon-web-services
株式会社Gunosy
1000万DLニュースアプリ「Gunosy」の iOS版を開発するエンジニアを募集!
ios objective-c
株式会社Gunosy
1000万DLニュースアプリ「Gunosy」の Android版を開発するエンジニアを募集!
android java
Forkwell Jobs は、技術が好きなエンジニアの転職・求人サイトだから、エンジニアが成長できる企業、エンジニアを大切にする文化の企業の求人が多くあります。
Forkwell Jobs の
転職エージェントに
申し込む(無料)
転職の内定率は「20社に応募して1社」と言われます。応募書類の書きかた、会社ごとの採用傾向、面接のポイント、併願など、転職の初心者には、わからないことがたくさんです。
転職業界には「エージェント」という、プロの転職コンサルタントがいます。 Forkwell Jobs のエージェントは、ITエンジニアに特化したノウハウで、あなたの転職をサボートします。
さらに、履歴書、会社ごとの採用傾向、面接対策など、ITエンジニアに特化したノウハウで、内定率が高まるようにアドバイス。エージェントを使わないときに比べ、内定率は最大で 4〜5 倍に高まります。
転職業界では、もはや当たり前の非公開求人。Forkwell Jobs は、技術の好きなエンジニアの転職サイトならではの、エンジニアにぴったりの非公開求人がたくさんあります。
さらに、Web系企業やベンチャーのなかには、他の転職サイトには出さず、Forkwell Jobs だけに求人を出す「独占求人」もあります。
エンジニアが成長できる企業、エンジニアを大切にする文化の企業で働きたいなら、迷わず Forkwell Jobs の転職エージェントに手伝ってもらいましょう! 転職がぐっと現実的になります。(無料)
ゲーム業界からの転身 -「IT×教育」に掛けたCTOの決意
ユーザー数110万人を超え、App Storeの代表作(Essentials)アプリにも選ばれ、2015年5月には1.85億円の資金調達を行ったスタディプラス株式会社。その代表取締役である廣瀬高志氏とCTOの齊藤秀治氏に、参画の背景からStudyplusのビジョン、求めるエンジニア像について話を聞いた。(すべて読む)
2015-06-18 公開
取材・執筆:深谷 歩 [株式会社 深谷歩事務所]
爆速でリリースし続けるGunosy流「マイクロサービス指向の開発」はどのように生まれたのか
国内だけでユーザー数900万超となった情報キュレーションアプリ「グノシー」を運営し、2015年4月には東証マザーズ市場に上場も果たした株式会社Gunosy。プロダクト開発の基礎となる開発ポリシーを、執行役員 開発本部 松本勇気氏に聞いた。...(すべて読む)
2015-06-08 公開
取材・執筆:深谷 歩 [株式会社 深谷歩事務所]
ココナラ中核のエンジニアが語る「エンジニアがサービスを作る会社」で働く面白みとは?
個人が持っているスキルや経験を売り買いできる「ココナラ」。今回は、CTOの恵比澤 賢氏とエンジニアの島田 喜裕氏に同社の開発スタイルやポリシーについて話をうかがった。...(すべて読む)
2015-06-01 公開
取材・執筆:深谷 歩 [株式会社 深谷歩事務所]