⛩️

Ubie Engineering ゆく年くる年 2023

2023/12/31に公開

Ubie の @yohei_kikuta です。
この記事は Ubie Engineering Advent Calendar 2023 の締めとして、engineering の観点から 2023 年の状況を振り返り、来年も頑張っていこうという決意を表明するものです。

Ubie の engineering 全般に関して整理してお伝えすることはあまりなかったので、2023 の情報をまとめつつ全体像をご紹介しようと思います。

どのようなエンジニアが在籍しているのか?

エンジニア職種の分布

意外と職種毎の在籍人数を共有することは少ないので、202312 時点でのエンジニアの職種別の人数を紹介します。分類は基本的には入社時の職種でかなり曖昧だったり雑なところがあり、フロントエンドとバックエンドを区別していなかったり、入社後には実際には別の職種の業務内容がメインになっているケースがあったりするので参考程度ですが、以下のような内訳です:

エンジニア職種 人数
プロダクト開発エンジニア 25
機械学習エンジニア 8
QAエンジニア 8
データエンジニア 5
BIエンジニア(含むアナリティクスエンジニア) 5
SRE 3
基盤開発エンジニア 2
セキュリティエンジニア 2
デザインエンジニア 1
ネットワークエンジニア 1

一番数が多いのはプロダクト開発エンジニアで、Ubie においてはプロダクトそのものの開発を推進する職種です。JD の段階ではフロントエンドエンジニアとバックエンドエンジニアを分けていますが、どちらもガンガン開発する人がいたり、embedded SRE や基盤機能の開発をする人がいたり、その人の能力や希望に応じて多様な動き方をしています。
その他の職種においても職種にとらわれずに必要に応じて様々な領域に染み出して動くのが Ubie のエンジニアの特徴で、かくいう私も機械学習エンジニアとして入社しましたが最近では開発組織全体をリードする役割が主になっています。

2023 の ubie-inc における Pull Request 数

エンジニアと言えば Pull Request (PR) ということで(?)、2023 年の GitHub ubie-inc organization における PR 数を調べて眺めてみました。PR の数そのものに特別な意味を見出したいわけではないですが、社内においても確かにこの人めちゃくちゃ存在感あるよな〜という人や特定領域にコミットしまくっているので広くは知れ渡ってないけどなるほどね〜という人がいたりするので改めて見てみるとなかなか面白いです。Ubie における上位 10 傑は以下の面々です:

名前(GitHub account) GitHub ubie-inc org. 上の PR 作成数
sakajunquality 1500
yu-iskw 976
Attsun1031 780
teru01 692
okiyuki99 626
yukukotani 617
yubessy 568
guchey 543
lukasjapan 537
sys1yagi 528

トップは sakajunquality で、インフラや各種基盤周りのあらゆるところで顔を出して contribute していくので納得という感じです。
2,3 位はデータエンジニアとして入社した二人ですが、yu-iskw はプライバシーエンジニアリングなどでも開発全体をリードしたり、Attsun1031 は根幹となる基盤システムの開発にコミットしたりなど多様な働きをしています。
4 位の teru01 は 10 傑の中で唯一 2023 年途中(6月)入社で、サービステンプレーティングツールを筆頭としたプラットフォームエンジニアリングを推進しています。
5 位の okiyuki99 は BI エンジニアであり、データカンパニーたる Ubie におけるデータ利活用を推進していて、特に dbt モデル作成を中心に貢献しています。
6 位以降は詳細を省きますが、プロダクト開発エンジニアが目立ってきて、この人はこの辺りの repository にコミットしてそうだね〜と連想される面々となっています。

その他にも色々面白い人々がいるので、どんなエンジニアがいるのかは Ubie Engineer's Blogs や入社ブログを検索するなどしてご覧ください。

どのような開発チーム体制を敷いているのか?

Ubie では、生活者向けのプロダクトとして症状から関連する病名と適切な受診先を調べることのできる症状検索エンジンユビーや病気の悩みや質問に答えることのできるユビー病気のQ&Aを提供しており、医療機関向けのプロダクトとして診療の質向上を支援するユビーメディカルナビを提供しています。
https://ubie.app/
https://ubie.app/byoki_qa
https://intro.dr-ubie.com/

開発チーム体制

2024 に向けて組織のアップデートをしているところでもありますが、プロダクト開発者が所属するプロダクトプラットフォーム部では大きい粒度として以下のようにチームを分けています:

  1. 生活者向けプロダクト開発チーム
  2. 医療機関向けプロダクト開発チーム
  3. 全体的な技術戦略やインフラ構築・運用をするチーム
  4. 製薬企業への価値提供を主務とするチーム
  5. 採用や人材開発や組織開発をアクセラレートするチーム

1.,2. のチームがプロダクトを開発するチームで、これら大きいチームの中に各機能毎に分かれたチームが更に存在します。
チームを構成する人員数などにも依存しますが、大きな方針としてはチームトポロジーにおけるストリームアラインドチームとストリームを横断する機能を提供するチーム(例えば認証基盤やプロダクトのリスク管理や医学ドメイン知識の提供など)とが存在します。
これらのチームが安定的にユーザに価値を提供して(既存システムの技術的負債の返却なども含めた)さらなるスケールを実現していきますが、新しい価値提供を探索するチームも別に存在します。チームを分けて機動的に一定期間探索に取り組み、大きく成長するものはストリームアラインドチームに移動して運用を含めてスケールさせていき、残念ながら芽が出なかったものは諦め次の探索に向かいます。
継続的なチーム運営だけでなく動的なチーム変更も必要とする開発チーム体制ですが、我々が慣れ親しんでいるホラクラシーを用いた動的な組織開発を活かしつつ、最適な形を実現するためにチャレンジし続けていきます。
また、現状では二つの大きなプロダクトのチームに分かれていますが、我々の目指す世界観は症状認知から病気が完治するまでの patient journey を包括するプロダクトを提供することなので、近い将来にはこれらのチームを統合する予定です。それまでは、両方のプロダクトに必要な機能も一方のチームに寄せているのでチーム構成としては歪みがある状態ですが、統合を視野に入れているためこのような構成としています。

技術戦略やインフラ構築・運用を担う 3. のチームの中には、技術スタックの選定や開発時のガイドラインの作成や浸透、全体的なインフラの構築や管理、などを推進するチームがあります。
Ubie における技術戦略としては以下記事のようにサービス分割の方針としてモジュラモノリスへ寄せていくことなどの全体方針を決めたり、隔週で開催しているエンジニアの勉強会(Tech. mtg.)や Design Doc の運用などをしています。この辺りは形骸化せずに機能させるために色々な取り組みをしていますが、これは機会があればまたどこかでご紹介しようと思います。
https://zenn.dev/ubie_dev/articles/53c5953b037e38
インフラ構築・運用のチームは、インフラ全般の提供、GKE や CloudRun で稼働している Ubie の大部分のサービスのマニフェストを管理するモノレポの運用やプラットフォームエンジニアリング、dbt によるデータ分析基盤の提供、などなどを実施しています。
開発規模が大きくなっていくとともにこのような全体戦略やプロダクト開発の土台となる部分で生産力が大きく左右されますが、ベンチャー企業においてはプロダクト開発や緊急性の高い対応に忙殺されて十分なリソースが貼れないことも珍しくなく、Ubie でももちろんそのような側面はあります。そういった状況でも得られるリターンを最大化すべく、例えば技術戦略のチームでは少人数でもスクラム開発を採用し、高い効果が見込めそうな PBI に絞って日々の活動を推進しています。

4.,5. のチームはプロダクト開発そのものとは少し距離があるので、この記事では詳細な説明は割愛します。

開発で扱っていく主要なトピック

プログラミング言語という観点では、2022 年の終わりに下記の記事で表明した通り、2023 年に新規で開発されるサービスは Go と Node.js が殆どという状況になりました。
https://zenn.dev/ubie_dev/articles/4437cde02a672b

ただし、言うまでもなく技術スタックの統一において最も難しいのは既存のサービスの移行です。
移行対象としたいサービスは大小様々に存在しますが、2024 年は大きなものとして、BFF として始まって責務が肥大化した Kotlin アプリケーション、創業当社から積み重ねられたシステム全体において中心的な役割を担っている Rails アプリケーション、辺りをターゲットとしてリアーキテクトと移行を推進していきたいと考えています。

このようなリアーキテクトを並行で進めながら、既存のサービスのスケールや新たな価値を作り出すための開発もしていく必要があります。
これらは個別にそれぞれの課題感を持っていますが、共通しているのはデータを軸にして価値を高めるように連動させるのが重要ということです。Ubie のプロダクトは体験とデータがリンクしてユーザに価値を提供するものなので、いまユーザがどういう状況で何を望んているのかを捉えた上で適切なソリューションを提供していく必要があります。これを実現するために、プロダクトとして目指す方向性の認識を揃え、各部分で統一されたデータモデルを扱い、全体の調和を保ちつつも個別の開発を進めていくことになります。得たいものを考えるとどうしても複雑性が高まりますが、この複雑性を御してより良いプロダクトに育てていくチャレンジをしていきます。

また、プロダクトが大きくなり開発者の数も増えてきたので、これまでは個々の開発者やチーム単位で担保してきた様々な要素を全体的に整えて底上げする必要もあります。具体的には、テスト戦略の高度化やプロダクト信頼性の向上やセキュリティやプライバシー観点での担保、などが挙げられます。このような活動はゼロから新しく方針を打ち立てるというものではなく、この一年でボトムアップ的に発展してきたものを全体戦略へと昇華していくというものとなります。

2023 年の大きなニュース振り返りと 2024 年に向けて

2023 年のプロダクトにまつわる大きなニュース

細かいものを入れると書ききれないほどたくさんあるので、特に大きなニュースだけ。

生活者向けプロダクトの症状検索エンジンユビーが 3 周年を迎え、累計利用回数が 1 億回を突破し、月間 700 万 MAU まで育ちました。身近なところでも SNS でもユビーのことを見聞きする例が増えてきたと実感しています。
https://ubie.life/3rd-anniversary

そしてなんと「Google Play ベスト オブ 2023 優れた AI 部門」で大賞を受賞しました。同じ並びに ChatGPT がある中での大賞受賞なので、光栄であると同時にその名に恥じぬようにもっともっと価値を提供していかねばと身が引き締まる思いです。
https://japan.googleblog.com/2023/11/PlayBestof2023.html

医療機関向けプロダクトのユビーメディカルナビは導入医療機関数が 1500 を超えるとともに、更なる価値の提供を目指して生成 AI の機能提供なども実現しました。
https://prtimes.jp/main/html/rd/p/000000063.000048083.html

これらはもちろん Ubie に在籍するあらゆるメンバーの貢献のおかげであり、一年間で驚くほどプロダクトが育ち、Ubie のミッションである「テクノロジーで人々を適切な医療に案内する」に着実に近づいていると実感しています。
一方で、明確なことは我々が目指す世界からするとまだ一合目というレベルか?という状況なので、引き続き良いプロダクト開発に邁進していきたいと考えています。

2024 年に向けて

もっと楽しく、もっと挑戦的に、もっと飛躍的な成長を、ということでやっていきいたいと思います。
engineering の全体的な観点としては、特に以下の 3 つを推進していきたいと考えています:

  • 新たな価値探索のための開発と蓄積してきた技術的負債の返却の両立
  • 開発生産力最大化のための体制と個としてのエンジニアリングパワーを最大限発揮するための仕組みの両立
  • 技術的なトピックに関する社内外発信の活性化

まだまだ仲間を募集していますので、我々と一緒にテクノロジーで人々を適切な医療に案内したい方は、ぜひ一緒にやりましょう!

それではみなさん、よいお年を。

Ubie テックブログ

Discussion