目次
■おすすめ企業
2020.04.30 2023.12.14 約4分
2016年にメイン言語をPHPからRubyに移行したメドピア株式会社(以下、メドピア)は、大きな転換期を迎えました。
Rubyの生みの親として世界的に名の知れるまつもとゆきひろ(松本行弘)氏を技術アドバイザーに迎えたのです。
「コミュニティの熱量の高さがRubyを選んだ決め手」と語るメドピア株式会社CTO福村氏とまつもと氏に、アドバイザー就任の経緯やメドピアの目指す事業の方向性、Rubyの今後の可能性について伺いました。
メドピアは、2004年に現役医師が創業したヘルステック企業。「集合知により医療を再発明する」というビジョンを掲げ、医師や薬剤師などの医療従事者をサポートしながら、その専門家ネットワークと「集合知」を活用して様々なシナジーを生み出しています。
なかでもコアサービスとなる医師専用コミュニティサイト「MedPeer」の会員数は約12万人。これは日本の医師の3人に1人が参加しているという計算になります。
設立当時、代表であり医師でもある石見が、学会を周り、ビラ配りをしながら集めた7,000人が中核となった医師によるコミュニティ文化が「MedPeer」の強みです。
── サービス開発のために、エンジニアも多数抱えるメドピアは、技術革新にも積極的な姿勢で挑戦しています。自社のシステムをPHPからRubyへ移行したこともその一環ですが、この移行は単なるシステム変更に留まらず、Rubyという言語やコミュニティへの貢献の表明でもありました。
福村:私が2012年に入社した当時のメドピアではPHPの独自フレームワークを採用していたのですが、「MedPeer」の医師会員数増加と、2014年の東証マザーズ上場によって、事業の成長速度が急激に上がり、開発スピードの向上が強く求められる様になりました。当時のメンバーと議論を重ね、フレームワークと言語をゼロベースで選定し直した方が良いのではないかという結論に至ります。それが、2016年のことでした。
RubyとPython、Go、PHP、Scalaの5言語を検討したのですが、言語それぞれに面白い特徴があり、どうしようかとても迷いました。最終的には「強いフレームワーク」と「強いコミュニティ」があることを基準にし、選定をします。前者については、当時、RubyのRailsが有力だったこと、後者については、僕がもともと使っていたPerlとコミュニティの雰囲気が似ていたことから、Rubyを採用することに決めました。最も決め手になったのは、カンファレンス「RubyKaigi」や地域コミュニティのミートアップ「Ginza.rb」「Shibuya.rb」などに足を運んだときの“コミュニティの熱量の高さ”。これに感動を覚えて、Rubyで行こうと心を決めました。
── 2016年にRubyの採用を決めた福村氏は、すぐにRubyの開発者であるまつもと氏のもとを訪れます。「Rubyを採用したんだからMatzに会わないと(笑)」と、フットワーク軽く松江まで繰り出しファーストコンタクトを取ります。これが3年半後のアドバイザー就任の種になりました。
福村:まつもとさんに実際にお会いしたのは、『RubyWorld Conference 2016』。とにかくメドピアを知ってほしいと、会社事業についてお伝えしました。
まつもと:カンファレンスには約800名近くの方が参加します。たくさんの企業に来ていただいている中で、イベントにブースを出したりなど、福村さんは特に熱心に頑張ってくださっているという印象を持っていました。
── まつもと氏を動かしたのは、福村氏の”熱意”。メドピアがRubyを採用しているだけでなく、Rubyそのものへの貢献、技術革新にも情熱を持っていたことが決め手になりました。また、まつもと氏は、技術顧問を引き受ける際の条件としてサービスを自社で「内製」していることを挙げます。
まつもと:私が技術顧問をさせていただく際の条件、基準は、二つあって、一つは顧問をさせていただいている企業間で競合していないこと。もう一つが自分のところで開発を行っていること。サービス、システムを内製しているということですね。
実は、メドピアから技術顧問就任のお話をいただいた時には、他の医療系企業の顧問を務めていました。その後、話を進める中で条件的にはすべてがクリアになり、そのタイミングが今年だったということです。
また、「こんなサービスがあるといいなと思っているけれど、制作はよその会社に任せています」という企業のお手伝いをしてもあまり意味がないと思っています。
自社で積極的にサービスをつくっている会社が、日に10回デプロイできるところを、外注していたらそうはいきません。その差が何十倍にもなって、開発スピードの差になってしまうのですね。
福村:開発の「内製化」は当社もまったく同じ方針でした。これからも長く書いて、使っていくものなので、それぞれが責任を持って設計をしているのが当たり前だと考えて、今でも開発を進めています。
──メドピアは、Rubyコミュニティへの積極的な参加、主体性を持った貢献にも注力しています。
福村:弊社は事業会社なので、事業推進の加速に貢献できるようなトライはどんどんしていきたいです。CTOとしては、Rubyコミュニティだったり、社会に技術を還元できるようになっていきたいと思っていますが、コードベースの貢献はまだ道半ばかなと思っています。コミュニティへのスポンサーとしての協力は始めてはいますが、ある方から2年くらい前に言われた「まだコミュニティの中にいない」という言葉がすごく残っているんです。
まつもと:自分のところで使っているオープンソースソフトウェアにバグがあった時にレポートするという貢献の仕方もありますし、自分たちが作ったサービスの一部を切り出してgemやソフトウェアとして公開して使ってもらうという方法もあるでしょう。人によってはRubyそのものに関わっていく場合もあります。関わり方のレベルが単に”Rubyを使っています”という段階から、コミュニティの勉強会に出席するというように“お客さん”からコミュニティの一員になっていくのは一つの理想形ではありますね。
私はどっぷり「コミュニティの中にいる」ので、いろいろな人が「中に入る」ためのお手伝いができたらいいなとは思います。
まつもと:正直に言って、Rubyの一番の良さって技術的に優れているからというわけではないんです。メドピアも、Rubyが他の言語と比較してもっとも高性能だから選んだというわけじゃないと思うんです。web開発での部品、gemというライブラリがたくさん用意されているので、作る時のコストが抑えられたり、早く作れたり、試行錯誤がしやすかったりという利点がある。
もう一つの魅力はコミュニティですよね。会社の枠を越えていろいろな人に相談ができる。技術だけでなく、課題をもらったり、やる気をもらったりできるのが大きなメリットだと思うんですね。私たちが一番誇りに思っているRubyの素晴らしさはコミュニティにあるんです。
福村:Rubyは、開発効率がよくて、生産性が高い、柔軟性が高いといった言語としての特性があることはもちろん、コミュニティのお陰で技術やモチベーションがシェアできる。gemに関しても同様のコミュニティがあって、いろいろなひとが自分の作ったgemを公開してくれていますよね。
──最近大きな話題となったのが、2020年12月に控えた「Ruby3.0」へのメジャーアップデートです。このアップデート一つとっても、Rubyが単にプログラム言語としてだけでなく、コミュニティとして、技術全体を底上げしたいという熱意が伺えます。
まつもと:Rubyコミュニティは、技術者がほとんどなので、彼らにとっては、技術的なアップデートというのは大きな関心事です。そのため、私たちは毎年新しいバージョンを出すようにしています。バージョンアップ自体は個別の機能向上の意味で必要なことですが、もっと重要なのは技術面で日々進歩していることを対外的に示すことなんですね。
ジョン・F・ケネディの1963年の演説に「我々は、月に行くことを決めました」というフレーズがあるんです。その後に「10年以内に月に行くことを決めたのは、それが容易だからじゃなくて難しいからだ」という内容が続くんですけど、1963年当時の技術で月に行くのはだいぶ無理がある話だったんですね。でもゴールを最初からぶち上げたことで、人類は確実に月に近づいたわけです。
このケネディの話と同様に、技術的にちょっと無理じゃない?と思うくらいのゴールを提示することは、コミュニティ運営でも大事だと思っています。だいぶ無理してはいますが、高い目標を見据えることで、コミュニティからの期待感を保っていけるよう腐心しています。
福村:年次イベントである『RubyKaigi』の中でもRuby3.0の目標進捗に関する発表もありましたね。一年ごとにRubyは着実に進化しているし、成長の姿勢が伺えます。
まつもと:目標が定まると、それに近づこうとする努力が始まる。ケネディが引き出したエネルギーで人類が月に降り立ったように、私があえて“だいぶ無理なこと”をぶち上げれば、みなさんが頑張ってくれるんです。今年に入ってからのメンバーの積み重ねのおかげで目標達成が見えてきたように思っています。
──メドピアはRubyコミュニティに関わっていく中で技術研鑽はもちろん、イベントの主催等を通したエンジニアの成長、採用や人材育成にも積極的に取り組んでいます。
福村:メドピアは、先ほどの“一歩先の目標”にチャレンジするような人材に成長する、またはそういう人が入ってきてくれるような会社を目指しています。
具体的には社員に対し、コミュニティへの参加を積極的に促すようにしています。毎月開催されている地域コミュニティ「Ginza.rb」に会場としてオフィスを提供していますが、この開催が社員の技術研鑽のきっかけになることも期待しています。業務外でRubyや他の言語の動向を自然とキャッチアップする感覚が当たり前になってくると、自分たちでも楽しみながら、気がついたら自然に成長していたというサイクルができると思うんです。技術や発想を伸ばすためには自分で学ぶ意欲が重要です。エンジニアが自ら伸びていく素地を会社が作っていけたらと考えています。
福村:社内での取り組みとしては、年に2、3回、業務時間内で開発合宿を開催したり、毎月、全事業部の課題や成果をエンジニアが報告し合いながら知見を共有して各自の業務に活かしています。プロジェクト単位で仕事を進めていると、他のプロジェクトがどういう動きをしてるのかキャッチアップできない環境になってくるんですね。プロジェクトの状況、課題を可視化する機会としてこのミーティングは重要です。
まつもと:組織の成長と共にメンバーも大人数になるとそれだけで情報共有は大変になりますもんね。
福村:そうですね。自分が作った事業が好調!であることは嬉しいことですし、周りにも知ってもらいたいですよね。「技術的な課題をどう解決したか」もシェアしてほしいですし、Rubyのバージョンを上げたとか、上げた結果どれくらいレスポンスが良くなったとか、そういうのもみんなに伝えて欲しい。エンジニアの特性なのかもしれませんが、いい報告でも当たり前だと思っていてなかなか言わないところがあるんです。垣根なく皆でいい報告を共有できる風通しの良い雰囲気をつくっていきたいです。
──まつもと氏が常々発しているこの言葉に照らし合わせることで、今回の技術アドバイザー就任、そしてRubyとそのコミュニティの未来が浮かび上がります。
まつもと:Rubyが技術的に進歩しても誰からも認知されなかったら、コミュニティに参加したいとか、Rubyを支援したいとか思わなくなりますよね。いろいろな会社の技術顧問をしている理由の一つは、Rubyを支えるコミュニティ活動を支援したいというのもありますし、逆に実際にRubyを使っている人たちが、Rubyに対して何を期待してるのかを知りたいからでもあるんですよね。一方的な関係というわけではなくて、お互いのニーズを満たす関係を維持できたらいいなと思っていますね。
福村:これからは、エンジニアの成長につながる機会を一緒に増やしていきたいです。まつもとさんは、僕たちが接点を持てないような方々との繋がりや経験をお持ちなので、まつもとさんとの対話が、エンジニアの技術研鑽や今まで壁に感じていたOSSへのもう一歩踏み込んだ関わり方などに繋がるきっかけになるとよいかなと思っています。同時に、僕たちの取り組みがRubyコミュニティ、技術の進歩に少しでも貢献できるよう、活発に活動していきたいと考えています。