サイバーエージェントのグループ会社である株式会社マッチングエージェントが運営するカップリングサービス「タップル誕生」
20代前半の若い男女を中心に支持を受け、2016年10月時点で累計会員数170万人を突破しました。

 

今回は堅調な成長を続ける「タップル誕生」の裏側を支える、エンジニア2名にインタビュー。
サービスに対する思いやこれまでの開発秘話、今後のビジョンについて話を聞きました。

 

 

kawano

河野智則
 2011年サイバーエージェント中途入社。サーバーサイドエンジニアとして、コミュニティサービス「アメーバピグ」や「ピグライフ」の運用・開発を担当したのち、オンラインRPG「ピグブレイブ」、美少女バトルRPG「オルタナティブガールズ」といったゲームの立ち上げに従事。
 2016年7月に株式会社マッチングエージェントに出向後は、同社のリードエンジニアを担当。

 

sensui
 泉水翔吾
 2012年サイバーエージェント中途入社。Webフロントエンドエンジニアとして、数々のメディアやゲームの開発に従事。その後、サイバーエージェントのWebプロダクト品質を向上するため、横断組織「Web Initiative Center」の立ち上げに参画。新感覚SNS「755」のリニューアルやインターネットテレビ局「AbemaTV」のパフォーマンスチューニングなどを担当した後、2016年7月に株式会社マッチングエージェントに出向。
 現在、同社の開発体制の改善を担当しながら、引き続き横断的なWebプロダクト品質の向上にも努めている。

 

 

カップリングサービスだからこそ、より一層障害や不具合には気を付ける

 


お二人はほぼ同じタイミングで「タップル誕生」にジョインされたんですよね?

(河野) そうなんです、2016年7月のほぼ同じタイミングでした。「タップル誕生」は2014年5月にリリースしたので、私たちが開発チームにジョインした時はすでにリリースから2年経っていたんです。
この2年間の間にサービスの規模もどんどん大きくなり、それに伴いプロジェクトメンバーも増えていった結果、技術的負債が顕在化していることが分かりました。
そこで、まずはこの技術的負債に向き合わなければ、と。

 

(泉水) もちろん言うまでもなく技術的負債を返すこと自体が目的ではなくて、それを通じて「タップル誕生」というプロダクトをより良いものにしていくことが目的です。技術的負債を残したままだと、どうしても開発スピードが遅くなってしまう。だから、より良いプロダクトを作りだしていくには、技術的負債は返さなければならないと考えています。

 

(河野)「タップル誕生」はインターネットを通して恋をしたい男女向けのカップリングサービスなので、ユーザーの皆さんの人生に大きな影響を与える可能性があります。 だからこそ、他のWebサービス以上にサービス上の障害や不具合といったものにはより気を付けなければいけないと、メンバー一同強く感じているんです。

そういった思いもあり、このタイミングで技術的負債にしっかりと向き合うことに決めました。

 

 

具体的にはどういった対応を行ったのでしょうか?

(泉水)ジョインしてまず最初に対応したのは、Node.jsのアップデートです。
タップル誕生のサーバーは0.10系のNode.jsで動いていました。
私がジョインした2016年7月時点で、Node.jsの最新バージョンは6系だったので、これはドラスティックに変えていかなければと思い、真っ先に対応しました。

 

(河野)Node.jsのアップデートは、真っ先に取り組んで本当に良かったと思っています。6系がちょうどLTS対象となるタイミングだったため、長期サポートの恩恵が受けられるようになったことに加えて、ES6(ES2015)でサポートされている機能を多く利用できるようになることで、今まで使えなかったモダンなJSの書き方ができるようになりました。
メンバーが新しい技術への感度をあげる意味でも、今回のバージョンアップは非常に有意義なものでした。
一度このレベルで大幅なアップデート対応をしておくと、次回の細かなアップデートの際にもきちんとアップデートしていこうという意識づけができます。

 

(泉水)前バージョンとの差分が大きくなりすぎる前に、こまめにアップデート対応をしておくことは非常に重要です。
特にサイバーエージェントでは様々なサービスがあることから、技術者のプロジェクト間異動やスキルチェンジも他社よりも多いので、新たなメンバーがジョインした時のモチベーションアップにもつながると感じています。

 

 

Node.jsのアップデートを行った後は、何を改善されたのでしょうか?

(河野)パフォーマンス部分ですね。「タップル誕生」では同じ趣味を持つ異性を探し出すための検索機能がプロダクトとして重要なんですが、これまでは検索結果が返ってくるまでに、平均レスポンスタイムが1秒以上もかかってしまっていたんです。
こちらの対応は私たちがジョインするまでに、すでに開発が進んでいるものだったのですが、このパフォーマンスチューニングのためにElasticsearchを導入しました。

 

(泉水)プロダクトにElasticsearchを導入するのは、比較的新しい取り組みと言って良いのではと思っています。

 

(河野)Elasticsearchを導入した結果、検索結果のAPIのレスポンスタイムが大幅に改善され、平均レスポンスタイムが約1秒から約0.2秒になりました。

 

※ Before
before

※ After

after

また、Elasticsearchを導入したことにより、複雑な条件でのユーザー絞込みや文言検索を行うことができるようになり、今後の施策の幅が広がったことも大きなメリットです。

2014年5月のサービスリリースに際して、当時はかなりリソースが限られていたこともあり、ソフトウェアが犠牲になってしまっていた部分もあったようですね。
ただ、まさに「バグを憎んで人を憎まず」で、立ち上げメンバーにはここまでサービスを大きくしてくれたことに、心から感謝しています。

 

(泉水)その他には、コードに統一性がなかったことが挙げられますね。これはサービスの立ち上げ時に開発スピードを重視した結果やむを得ないことかなと思うので、同じような課題を抱えている運用中のサービスも多くあるのではないかと思うのですが…
「タップル誕生」も立ち上げ時にはとにかく開発スピードを重視していたので、ルールのないまま各エンジニアが思い思いにコードを書く状態になっていました。

具体的な解決方法としては、ESLintなどの静的フォーマットを通したり、メンバー全員で話しあった上で開発ルールを決めて、ドキュメント化したりしました。

 

 

開発メンバー全員で話し合ったんですか?

(河野)現在「タップル誕生」には技術者が12名所属しているのですが、メンバー全員が納得するまで話し合いを重ねました。
その分時間はかなりかかりましたが、全員が納得した上で開発ルールを決めることができたおかげで、今ではコードレビューも効率的にできるようになったので良かったです。

tapple

 

技術的負債の返却にコミットできる開発体制

 

全体的な開発フローもブラッシュアップしていったのでしょうか?

(泉水)リリースフローなども改善していきました。
これまでは定期リリース日を設けておらず、スピード感を重視して機能ごとに出来上がったらすぐにリリースという形だったんですね。
これを週に1度の定期リリースに変えました。

定期リリース日を設定することで、1週間ごとの開発スケジュールも明確になり、テストスケジュールも余裕を持って決められるようになりました。また、開発メンバーが増え、施策も増えていくとバグを埋め込むリスクがどうしても高くなってしまいますが、定期リリース日を設けたことで、大幅にバグのリスクを減らすことができたのも良かったです。
(河野)基本的には、プロダクトのリリーススピードを最優先にすべきだと思っています。ただ、開発完了即時リリースという体制が、スケジュール意識と品質の低下に繋がっている状況をみて、スピードを犠牲にしてでもフローを整備したほうがよいと考え、改善を決断しました。

他にも、品質を担保するため、リリース前に全ての機能テストを行うリグレッションテストを実施するようにしました。技術的負債の返却にあたり、プロジェクトにある全てのファイルに変更を加えるような対応を何度か行ったのですが、リグレッションテストがあるおかげで安心して思い切った修正を行うことができました。

 

 

約5ヶ月で様々な技術的負債の返済に取り組まれてきたわけですが、当初に想定したゴールから逆算して、現時点での進捗具合はいかがですか?

(河野)技術的負債対応を行うことを決めたときに、パフォーマンスや開発スピード、品質に大きく影響を及ぼす負債を”優先度:高”と定義し、年内にこれをやりきることをゴールにしたのですが、現状これらの対応がほぼ終わっている状況です。
開発スピードを緩めてでも、専任のラインを確保できたのか大きかったですね。技術者12名のうち、私と泉水、もう一人のエンジニアの3名で技術的負債の返済にコミットすることができたので。

 

 

技術的負債の返却に取り組みたくてもスケジュールがとれない、と悩んでいる技術者もいるかと思います
ビジネスメンバーへの説明には苦労しましたか?

(河野)代表取締役の合田がエンジニアリングをやっていたことがあるので、その分理解が早いということはあったかもしれませんが、経営者が技術畑出身がどうかに関わらず、技術者にはしっかりとした説明責任を果たす必要があると強く感じています。

そのためには、プロジェクト内に同じような思いを持っている仲間を作ると良いと思います。「タップル誕生」の場合は、私だけでなく同じタイミングでジョインした泉水も危機感を持っていたので、共にビジネスメンバーに技術的負債を返すことの重要性を伝えられスムーズに進みました。

 

 

(泉水)技術的負債の返却で生み出せるビジネスメリットを、数字で示せると一番良いのではないかなと思います。

あとは、負債は解消したらそれで終わり、ということではなく、メンバーに日頃から意識してもらうことが特に重要です。
私は兼務で、横断的にサイバーエージェントのWebプロダクト品質を向上させる「Web Initiative Center」にも所属しているため様々なプロジェクトを見てきましたが、どんなにスケジュールに余裕があって、恵まれた開発環境であったとしても、技術的負債は蓄積してしまうもの。日常の開発でいかにそれらを解決できるか、考え続けることが大切だと思います。

 

技術的負債の返却を通して若手の意識も変わってきた

 

先日、1泊2日で開発合宿に行ってきたそうですね

(泉水)はい、チーム一丸となって技術的負債への意識を強めよう、というテーマのもと、開発チーム全員で温泉旅館に行きました。
温泉旅館というと聞こえは良いですが、実際は飲み食い以外パイプイスに座り続けてひたすら開発し続ける、というかなりストイックなものでしたけど(笑)

 

gasshuku

 

夜中まで皆で開発して、打ちきりの合図を出しても皆手を止めなかったですね。
翌日も朝7時に起床して開発、というストイックさ(笑)
そんな中、東京にいるメンバーが差し入れを送ってくれたりして、和みました。

 

(河野)開発チーム一丸となって、技術的負債に取り組もうという意識をより強く持つためのきっかけになった、良い合宿でした。
後日参加者にアンケートを書いてもらったのですが、メンバーも満足してくれていたようで嬉しかったです。

 

※アンケート結果の一部

gasshuku_oppinion

oppinion

 

(河野)メンバーにはいつも「技術を誇れるマッチングエージェントでいよう」というのを伝えていて、負債の返却はあくまでプロダクトに還元するための土台作りの部分なのですが、この約5か月の取り組みでメンバーの意識が大きく変わってきたところがありました。

というのも、泉水はいつも「細かくても良いから、とにかくプルリクを出して」と言っているんです。たとえば1000のファイルを修正しなければいけないとしても、1ファイルのプルリクを出すだけでも良い、と。この粒度でもプルリク出して良いんだ、というのは特に若手メンバーにとっては心強かったと思います。

 

(泉水)たとえ完璧な修正でも大きすぎるとレビュアのコストになりますし、小さな修正のほうがレビューや動作確認のコストは小さく済みます。それに、そもそも修正の多寡はそれほど問題ではありません。たとえ1ファイルの修正だけだったとしても、それを日々積み重ねていくことが大切です。

 

 

自分の技術が社会貢献に直結している、という実感

 

カップリングサービスという特性上、他のWebサービス以上に障害や不具合に気を付ける必要があるとおっしゃっていましたが、プロダクト自体への思いや今後の展望について聞かせてください
(河野)こういったサービスは、いわゆる「出会い系」と称されて、後ろめたいイメージを持たれてしまうことがありますが、私たち運営メンバーはこういったイメージを払拭したいと思っています。

メンバー全員での朝会が毎日行われているのですが、ユーザーの中で「タップル誕生」がきっかけで結婚や出産された方がいるとフロアにある”幸せのタップルベル”を鳴らすという習慣があります。
ユーザーの皆さんが運営に結婚報告をしてくださることがあるんですよね。

そのたびに、自分たちのプロダクトがきっかけで、幸せなカップルが生まれているんだという実感がわいてきて、非常に嬉しくなりますね。

 

※幸せのタップルベル
happy-bell

 

私は結婚していて子供もいるんですが、子供が産まれてからより一層、自分の仕事を通して社会に貢献できたら、という思いが強くなりました。

現在、少子高齢化が進み人口減が叫ばれていますが、「タップル誕生」をより多くの方々に使って頂き、インターネット上での男女の出会いが当たり前の世の中になることで、日本社会により一層活力を与えることができればと思っています。

自分の技術が社会貢献に直結する、という機会にはなかなか巡り会えないとおもうので、日々非常にやりがいを感じています。

 

(泉水)河野も言っているように、ユーザーの皆さんの人生に大きな影響を与えるサービスなので、私自身も大きなやりがいを感じています。

「タップル誕生」がサービスとしてより成長することで、カップリングサービス市場が大きくなれば、インターネットを通した男女の出会いはよりスタンダードになってくると思います。
たとえば、10年前はスマートフォンがここまで世の中のスタンダードになるとは想像しなかったけれど、いくつかの企業が先陣を切って新たな技術に挑戦してきたおかげで現在の市場がある。

 

これからカップリングサービスが世の中のスタンダードになり、結婚式会場で「私たちはカップリングサービスがきっかけで出会いました」という台詞が聞こえてくることが当たり前の社会になるように、今後もチーム一丸となって積極的に開発を続けていきたいと思っています。