及川卓也・前島真一も顧問!人工知能・マイクロサービス・BFFにふれつつ健康になれるFiNCの開発環境

2017-04-06 13:25

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/f78baec5-c0d6-4045-9338-664b6b8465ad.png

2017年3月に一般ユーザーへの公開を開始したパーソナルコーチAIアプリ「FiNC」。ユーザーデータをもとに、一人ひとりの体質やライフスタイルに応じた健康ソリューションを提供する機能が大きな話題を呼んでいる。週刊東洋経済による「2017年、注目のベンチャー10」にも選出された同社の開発の舞台裏に迫る。

技術開発本部
Web Application Development Manager
篠塚 史弥(しのづか・ふみや)
1988年生まれ。東京大学大学院修士課程修了。在学中に株式会社MEDICAとCDSystem株式会社を創業し、薬価検索サイトや電子お薬帳といったBtoCの医療用Webサービスから、予約システム、売上管理システム、クラウド型タイムカードといった業務システムの設計及び開発を手がける。その手腕を買われ、2012年2月、FiNCに入社。

技術開発本部
Web Application Development Manager
亀田 大輔(かめだ・だいすけ)
1978年生まれ。東京理科大学卒。SIerを経て、2011年、ピクスタに入社。AWS と Ruby on Rails を用いたシステムへのリニューアルのメイン開発者とインフラ面の責任者を務める。その後、リードエンジニアとして活躍した後、フリーランスを経て、2016年5月、FiNCに入社。

使うほどに賢くなる! パーソナルコーチAIアプリFiNCの秘密

――この春ローンチを開始した「キレイになれる」新アプリFiNCが話題になってますね。具体的にはどんなアプリですか?

篠塚: コンセプトは、「簡単に継続できて健康かつキレイになれる」です。ユーザーの身長、体重といったパーソナルデータから、日々の歩数、食生活、睡眠時間などのライフログまで、様々なユーザーデータを取得・分析した上で、管理栄養士らによる健康レシピ、トレーナーのフィットネスの動画コンテンツ等の中から、その人に合ったメニューを提供します。また、著名なモデル、アスリートの美容・健康法も見られます。

――私も使わせていただきましたが、ものすごい数のコンテンツですね。現時点でどれくらいあるんですか?

亀田: ざっと約1000くらいですが、今後も随時追加されていく予定です。どんなコンテンツが提供されるかはユーザーによって千差万別。日々のアクションによってどんどん変わっていきます。そのパターン数は、ユーザーの数だけあると言っても過言ではありません。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/d981409a-23a2-4284-b054-7bcdbda9f31c.png

――使っていくほど、自分にフィットしたコンテンツがセレクトされるというわけですね。

篠塚: 加えて、パーソナルコンシェルジュというチャット機能があって、コンシェルジュがユーザーの行動に合わせてフィットネスや食事に関する多彩な提案をしてくれます。たとえばよく歩いた日は、「疲れたと思うから、こんなマッサージをしてみてはどう?」とか。

――あ、私もオススメの運動法を提案してもらいました。で、「もっと楽なのはない?」って返したら、「楽ばかり考えちゃダメだよ~」って叱られちゃいました(笑)。

篠塚: そういうコミュニケーションも長く続けてもらうための秘訣の一つですね(笑)。
今、ヘルスケア分野では、ネットを中心に信用性に欠ける情報が氾濫しています。この現状を改善するためには、エビデンスに基づいた正確な情報を、一人ひとりに合わせて発信していくことが急務。そのために誕生したのが、このFiNCなんです。

開発する上で私たちが重視した点は2点。まずは健康になりたいと思っているけれど何をしたらいいかわからない人たちの声に応えること。そして、もうひとつは継続できる仕組みであることです。

そのために他ユーザーと競争できる要素を取り入れたり、自分の健康に対する改善度合いをビジュアリゼーションできる機能を採用したり、一人ひとりにパーソナライズした情報を提供できるように設計しました。普段からコンビニ食ですませている人に、いきなり難易度の高いレシピを発信したってハードルが高すぎますよね。FiNCならユーザーの生活習慣を把握した上で、実行可能性の高そうなものを提案してくれる。だから、どんな人でも気軽に続けていけるんです。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/e3e7e015-2fab-493a-a819-6ebb6b94b188.png

マイクロサービス、BFF。注目の技術を次々採用するフレキシブルな開発体制

――FiNCの開発において、エンジニアがグッと来る技術的特色はありますか?

篠塚: 開発手法としてマイクロサービスを採用しているところですね。と言うのも、ヘルスケアというドメイン自体が様々な構成要素から成り立つもの。開発体制も各ドメインに応じたエキスパートを中心にチームが編成されています。こうした当社の現状を考えると、個別に開発された小規模なサービスを組み合わせて、一つのアプリケーションを開発するマイクロサービスという手法はまさにうってつけ。

FiNCにしても、先ほどからご紹介している健康ソリューションを提供する「TRY」という機能の他に、様々な機能があって。それらの機能開発に関しては、それぞれ独立したチームが行っています。この開発スピードを落とすことなく、かつ事業をスケールさせていくには、マイクロサービスという手法は非常に有用なんです。

亀田: ユーザーが増えれば、使用する技術の見直しもフレキシブルに行っていかなければいけませんしね。たとえば、FiNCではレコメンド部分に関しては、当初、RDBを採用していたんです。けれど、徐々にデータ容量が多くなってきたため、一定のタイミングでグラフDBに切り替えました。このように各機能別に新しい技術を柔軟に採用していけるのも、マイクロサービスが開発のベースになっているからなんです。

――基本的にそうした技術選定はエンジニアが行うんですか?

篠塚: そうですね。みんなでディスカッションした上で理にかなっていると判断されれば、すぐに採用するというのが、FiNCの風土。亀田さんの紹介したグラフDBはまさにその好例だと思います。こうした明快さは、エンジニアにとっても非常に気持ちいいですね。

――開発の経緯の中で、特に印象的だった出来事などあればぜひ。

篠塚: マイクロサービスを採用すると、それだけたくさんのサービスやAPIが必要になります。ただ、各クライアントからそれぞれリクエストを送ると、どうしても通信回数が多くなってしまう。この問題を解決するために、あるエンジニアが提案したのが、BFF(Backends for Frontends)の導入です。BFFの導入は有名なところで言えばNetflixさんがありますが、先例はまだまだ多くありません。

亀田: 去年くらいからBFFに関する海外の事例はよく目にするようになりましたから、国内でもチャレンジされている企業は増えていると思います。ただ、世に発表されている事例というのは、まだわずか。その先進的な事例のひとつに携われたという意味でも、非常に価値ある経験になったと思います。

――今後、想定される課題と、その中で期待できるチャレンジがあればぜひ教えてください。

篠塚: 大きいのは、パフォーマンス改善です。ユーザー数やコンテンツ数が増えれば、その都度、技術スタックの変更を検討しなければいけません。先ほどお話したグラフDBへの変更は、その一例。今後は場所によっては、カラム型データベースのようなNoSQLを使わなければいけないとか、あるいは現在はRuby on Railsのアプリケーションが多いのですが、状況に応じてそれ以外のフレームワークや言語の選択を考える必要が出てきています。

亀田: 単純に現状に即時対応するような動きではなく、先々を見越した上での開発や技術が求められる。エンジニアにとっては非常に刺激的な体験ができる環境ですね。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/063166d1-79b0-4737-9bd0-c4f52a9c276a.png

食事指導にフィットネスも。社員の健康を考えたFiNCのウェルネス経営

――では、FiNCの中の人たちのことも聞かせてください。噂によると、さすがHealthTechの会社だけあって、肥満の社員がいないという話も聞いたのですが…。

篠塚: (笑)。さすがに全員が全員、ということはないですが。

亀田: 入社した後に痩せたという人は結構いるかもしれません(笑)。

篠塚: と言うのも、社内に管理栄養士がいるので食事の質問を気軽に出来たり、自社サービス理解のため実際にユーザーの皆さまに提供している食事指導が受けられるんです。

――それはすごい。

篠塚: 僕が実践しているのは、1・2・3食事法というもの。これは、食事の種類を炭水化物、タンパク質、野菜の3種類に分け、食べるときは野菜→タンパク質→炭水化物の順番で、摂取する量を、炭水化物1に対し、タンパク質は2、野菜は3の割合で食べると健康的でバランスの良い食事がとれますよ、という内容です。こうした食事指導は、弊社がサービスとして実際に提供しているもの。自分たちがユーザーとしてサービスを利用することで、より事業の価値を理解する上でも役立っています。

亀田: その他食事面で特徴的なものは、FiNCオリジナルのジャーサラダです。これも社内の管理栄養士が栄養バランスを考えた上でつくっていて、社内でいつでも購入可能。ランチのときに買ったり、あとはちょっと小腹が空いたときにお菓子代わりに食べている人もいますね。

篠塚: フィットネス関連だと、「ウェルネスタイム」がFiNCらしい制度のひとつですね。デスクワークが中心のエンジニアにとって、肩や腰の凝りは職業病のようなもの。こうした全身の凝りを和らげ、気持ちをリフレッシュさせるためにも、月、水、金の週3回、社内のプロトレーナーの指導を受け、15分間の体操を行っています。

また、社内にトレーニングジムが併設されていて、空いている時間は社員も予約ができます。パーソナルコーチがついて、体幹トレーニングなど本格的な指導が受けられるので、利用している社員は結構います。僕も定期的に利用していますよ。

――エンジニアのためのgeekroomもあるとか?

篠塚: ありますね。僕らも基本的にそこで作業をしています。室内は黒が基調になっていて、照明も暗いので、集中するには最適な環境。椅子や机も作業効率と快適性を考慮して選んでいて、机に関しては長時間肘を置いて作業しても負荷がかからないよう天板の角度も調整されています。

――その他エンジニア目線で嬉しいところってありますか?

篠塚: 非常に著名で優秀な方が技術顧問として参画しているところですかね。一例としては、元Googleの及川卓也さん、サーバアーキテクチャーに関してはmixiやLINEで活躍された田中洋一郎さん、『パーフェクトRuby on Rails』の著者としても知られるwillnetこと前島真一さんがジョインされています。

亀田: ありがたいのが非常に近い距離で設計や開発に対してアドバイスをもらえるところ。どういったアーキテクチャや技術を選べば良いのか、こちらの提案を聞いた上で、課題や改善案などをいただいています。

篠塚: 前島さんとは、週1回、Railsコミッターを目指してOSSをみんなでさわる時間を業務中に設けています。これはスキルアップの面でも非常に有益。おかげでチームメンバーはもとより、僕自身かなりスキルはガン上がりした手応えがあります(笑)。

https://jdraft.s3-ap-northeast-1.amazonaws.com/blog/6f86b166-a4d6-4e99-9ff4-7f409e450624.png

いかにサービスをスケールさせるか。先を見据えた目線がエンジニアのMUST条件

――そんなFiNCでは、今、どんなエンジニアを求めているのでしょう。

篠塚: 今、求めているのはサーバーサイドエンジニアですね。基本的なスペックとしては、webアプリケーションがつくれる、といったサーバーサイドのベーシックな知識があればOK。コードが書けて、DBがわかって、最低限のインフラ周りの知識がある方でしたら選考の俎上に乗ると思います。

欲を言えば、NoSQLのような大規模システムの運用経験のある方であればなお嬉しいといったところでしょうか。Ruby on Railsの経験は問いません。実際、これまで別の言語を使っていたという人でも十分活躍できているので、その点について気にされる方がいらっしゃるなら心配は無用です。

――マインド面で重視するところは?

篠塚: 大事なのは、その場しのぎではなく、先々のことも踏まえた最適な開発をしていくこと。だから単に早く動ければそれでいいという目線ではなく、アプリケーションをスケールさせていく上で最適な設計やアーキテクチャは何かといったことを考えられる人に来てもらえると嬉しいですね。

亀田: 技術選定の部分までエンジニアが主体となって考え、実際に手を動かしていくのがFiNCのスタイル。技術が好きなエンジニアがたくさんいるし、みんな積極的にアンテナを張って世の中のトレンドや動向をおさえている。だから、単に言われたことをやるのが得意というタイプのエンジニアは残念ながら当社には向かないのかもしれません。日々勉強を重ね、「こういうことがやりたい」「こういう技術を使いたい」と自ら発信していける方なら、きっと楽しく仕事をすることができると思います。

――技術が好きで自分から動ける人にはぴったりの環境ですね。本日はありがとうございました!

ENTRY
pickup
interview

タグ一覧

年収診断 登録不要!30分で結果がわかる!
SIGN UPSIGN IN


転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?