治療アプリとエンジニア

井上真吾氏:みなさん、こんばんは。「エンジニアと治療アプリ®︎」という題で発表させていただきます。よろしくお願いします。先ほど司会の方からあったように、本日、本当はCureAppの鈴木という、開発責任者でCTOの医者兼元エンジニアが来る予定だったのですが。ちょっと体調不良によって来れなくなっちゃったので、代打で私が登壇します。

私は株式会社CureAppの技術部長をやっています。業務内容としては、治療アプリというものを作っています。今医療系の会社にいるんですが、もともと新卒からずっとネイティブアプリだったり、サーバーサイドだったりのWebアプリを作っている会社で働いてきて。

医療のバックグラウンドは特にないし、大学も普通にコンピュータサイエンスのことをやっていました。技術的なところだと、TypeScript Meetupというイベントの主催をやったりしてます。

450人くらい応募が集まる、ちょっと人気のイベントになってきていて。そんなイベントをやったりしてます。

本日はCureAppについての説明と、技術的なところと、あとはちょっとしたキャリアの話ができればいいかなと思っています。

CureAppは今公表されているアプリが6個あって、1個省略して5個紹介してあります。画像を見れば何の疾患を対象とした治療アプリなのかってわかるかなと思います。

今一番開発が進んでいるのが、(スライドの)左端のニコチン依存症治療用アプリと呼ばれる、タバコの依存を解消するアプリです。NASHというのは、内臓に脂肪が溜まってしまっている脂肪肝という状態があって、その脂肪肝が進んでしまった炎症状態を治療するアプリ。あとは高血圧の治療用アプリです。あとは民間法人向けのヘルスケアの事業もいろいろやってるんですが、今回は医療のほうにフォーカスしてしゃべりたいと思います。

医療機器としてのアプリケーション

今CureAppの治療アプリ®︎はどんな状態になっているのかというと、まず治療アプリ®︎という名称自体が、CureAppの商標になります。ものとしてはスマホアプリなんですけど、建て付けとしては医療機器になります。

それが今医療機器として承認されるためのフローとして、どんなフェーズにあるかというと、この矢印のところです。

薬事承認というところがあるんですが、何度も臨床試験や治験とかを実施して、有効性や安全性を検査して。そのエビデンスがしっかり出たので、今承認を得るために向かっているところというステータスです。

ですので、まだいつになるかというところは、公にはできないんですけど、無事承認されて一般の市場に出回れば、病院からこの治療アプリが処方されて、患者さんが使うという未来が来るようになります。

従来の製薬や医療機器と、治療アプリ®︎の対比なんですけど、ちょっと制約とかってわかんないかなと思うので、資料の「期間」と「費用」のところだけ見ていただければという感じです。

普通の薬って、飲んだり打ったりして、体に物理的な作用を及ぼすので、安全性の試験もとても慎重に……あと物理的な製造工程が発生するので、とにかく時間とお金がたくさんかかります。

ですけど、治療アプリ®︎って医学的なエビデンスに基づき治療効果を発揮するのですが、最終的なアウトプットとしてはスマホアプリなので、開発するのはアプリを開発するのと、さっき言った臨床試験の数年間というスケジュールと。あとはその開発にかかった人件費や臨床試験の費用ということなので、従来の製薬に比べてはるかに安いコストで、かつすばやく疾病を治療するアプリが提供できるという感じになっています。とはいえ、製薬と同じように厳密に臨床試験は行なっているので、数億〜数十億と行ったコストはかかっているのは、普通のヘルスケアアプリとの違いかなと思います。

試験のたびにコードフリーズが発生

AWSの構成を書いてみたんですが、たぶんこれ細かくて読めないと思うし、あとでスライドを公開するので、どんなアーキテクチャでやってるのかという話は、あとで見ていただければと思います。

CureAppは、そんなスケジュール感でやっています。

この臨床試験の間って、コードのアップデートをしてしまうと、最初に試験した人と途中で試験した人という、対象のアプリの中身が変わってしまって、エビデンスがちゃんと確かめられないという背景がありまして。

ですので、各試験のたびにコードフリーズが発生します。それも書いてあるとおりで、数年単位でのコードフリーズが発生するので、けっこう慎重にプロダクトを作っておかないと、1年後に玉手箱を開けたら、浦島太郎がおじいちゃんになっちゃったみたいなことが……うちの会社で実際に起きました。

というわけで、長い期間をかけて開発する。普通のWebアプリとかネイティブアプリだと、まずローンチしてからユーザーを取って、広告打ってみたいなことをやっていくと思うんですけど、治療アプリ®︎はそれとはかなり違うサイクルで作られています。

コードは基本的にすべてJavaScript

そんな治療アプリ®︎をどうやって作っているかというと、基本的にすべてのコードはJavaScriptで書かれています。これも一応ちゃんと意図があってやっていることです。

今うちで作っている治療アプリ®︎はネイティブアプリなので、それをReact Nativeというもので作り、あとはお医者さんが見るための管理画面があって、そちらはWebアプリなのでReactで。

あとはサーバーサイドで、AWS LambdaとかAmazon API Gatewayとかを手前にかませてBFFを作ってます。そこらへんはNode.jsをLambdaで動かすということをやっています。そのあとのバックエンドは、MongoDBだったり、Amazon RDSだったりという感じの構成になっています。

言語を統一するメリットは少ないリソースで……今エンジニアが社員で10名くらいいて、さっきプロダクトを5個紹介したと思うんですけど、それ以外にもまだ非公開のプロダクトが何個か並行で動いています。

そういう感じで、実質1人1プロダクトくらい見てる感じです。そんな中で、知識や自分に貯まっているノウハウを最大限再利用しながら、治療アプリ®︎を作っていくために、全プロダクトをJavaScriptで作っています。

そうすると、とあるプロダクトから生まれたちょっと便利な処理みたいなものを、ライブラリとして共通のリポジトリに置いといて、それを全プロダクトから利用するという言語が統一できるメリットがあります。

あとはアーキテクチャの変更などに強くて。もともとフロントエンドで動かしていたJavaScriptの処理を、サーバーサイドに持って行くみたいなことが簡単にできるので。例えば、ブラウザだったらブラウザにしかできないこととか、サーバーサイドならサーバーサイドにしかできないことがあるんですけど、そうじゃない部分のコアロジックというのは、どこに置いても動くという感じにして作ってあります。

言語1個でやっているので、ひたすらこれだけを追求すると企業として価値に還元されるし、エンジニアとしても1点特化の深く鋭いキャリアの形成になるかなと思っています。

CureAppに入った理由

そんなCureAppに入った私の話をちょっとさせてください。スタートアップに行く前は、EC系のバックヤードのサービスを作っていました。簡単に言うと、ネットショップを運営する人たちが使う在庫管理だったり、商品の管理だったりを実現するツールでした。

非上場のころから入って、マザーズに上がって、一部に上がってみたいに、だんだん大きくなっていく企業を見ていました。やっていたのはRailsとかPHPとか、普通のWebアプリのサーバーサイドエンジニアという感じでした。

JavaScriptは、この時点では書いてなかったです。ただ、もともとそういった新しい技術が大好きだったので、例えば、ここに書いてあるアプリを趣味の時間に作ったりとかしてました。

そういうのをやっていたけど、仕事としてやっていかないと深みが出ていかないという悩みがあり、今後このままやっていて、なりたい自分になれているんだろうか? という不安が2年前くらいに訪れました。

そうして転職活動していった結果、今CureAppにいるという感じです。前職でもチームリーダーをやっていたんですが、スタートアップに入るとその役職もなくなるし。一部上場企業とスタートアップを比べちゃあれなんですけど、当然給料も下がりますし。

そういったデメリットがあるとしても、たぶん、ここにいるとなりたい自分になれそうだなと思い、CureAppを選びました。

選んだ理由としては、治療アプリというまだ世にないものを作っているという……最初に聞いたときは、なんか眉唾ものかなみたいに思ったんですけど。ただ、ちゃんと医師や当時のCTOの説明を聞いてみると、ああなるほど、これはちゃんと世にインパクトを与え得るものだなと思ったというのと。

さっき話したとおり、技術が最初から、創業当時から尖っていたので。そこで僕のJavaScriptをやっていきたいというところとマッチしました。あとはこれからどんどん新しい治療アプリ®︎を作っていくという話をもらっていたので、ゼロから事業を起こして成長させていくというところをやりたいなと思いました。

このへんはもうすでにサービスがある企業だと、なかなか経験しにくい機会かなと思っています。というわけで、いろいろデメリットはありながらも、それを上回るメリットがあるかなと思ってスタートアップに行きました。

お互いの専門性をぶつけ合いながら、いいものを作る

いざ入ってみると、例えば、以下のことが必要になります。

薬事関連の法律だったり、医療機器が承認されるための行政とのやりとりだったり、レギュレーションだったり。あとは医療機器とはそもそも何なのかとか。病気が治るメカニズムの話など、とにかくわからないことだらけでした。

ただ、もともと医学に詳しいエンジニアなんて人は、そうそう存在しないので。ですので、エンジニアとして入ってから覚えるのでも、まあ十分追いつけるかなとは思っています。ここらへんの医学の面に関しては、薬事臨床開発チームという、もともと医療機器メーカーとか製薬会社とかにいらっしゃった方々が参画しているので、そこに関してはもう任せて。

ただし、その人たちはアプリの作り方とかはまったくわからないので。アプリを作れる僕たちは薬事のことはちょっとしかわからないという感じなので、お互いの専門性をぶつけ合いながら、いいものを作っていくということをやっています。

医療の病気を治すアプリを作っているわけですけど、ただ結局やることはしっかりといいものを作るということをやれば、それが治療効果につながりますし。承認されるためのしっかりしたエビデンス、アプリを使うことによる優位性につながっていきます。ですので、エンジニアリングでちゃんと医療の世界を変えていくということが、できているかなと思います。

というわけで、そんなCureAppは、ただいまエンジニアを絶賛募集中なので、ぜひ気になる方は懇親会でお声がけいただければと思います。すみません、ちょっと時間を過ぎちゃいました。ご静聴ありがとうございました。

(会場拍手)