見出し画像

メダップ開発組織のこれから

メダップでCTOをしている馬場です。
本日(2021.08.31)、シリーズAの資金調達を発表いたしました!
詳しい会社の説明は、下記スライドを御覧ください。

メダップの開発組織は2021年1月から内製化を行ってきたのですが、
今回は、これまでの軌跡に触れつつ今後の注力ポイントについてまとめました。
このnoteを機に、少しでも多くのエンジニアの方にメダップの開発組織にご興味を持っていただけばと思っています。

これまでの軌跡

今年の1月に開発組織の内製化を始めて、いままでに注力してきたことは下記3項目です。

- Schema駆動なAPI-SPAへの移行とTypeScriptの導入
- スプリントをベースにしたイテレーティブな開発スタイルの確立
- 全社向けにケイパビリティモデルの浸透

それぞれの項目については、別でnoteを準備中なので、ここでは軽く触れるだけにとどめます。

■ Schema駆動なAPI-SPAへの移行とTypeScriptの導入

既にリリースされていたforoCRMでしたが、社内にプロダクト開発を専門としてやってきた人がいない状態での外注だったこともあり、機能によっては上手く仕様通りに仕上がっていないものもありました。
加えて、これまでユーザーの皆さんに使っていただいた中で我々としても市場の課題やユーザーへの解像度が高くなり、プロダクトとしての方向性をリリース当初から少しシフトしていきたいと考えていました。

プロダクトとして求められる機能量が多岐にわたっており、この先foroCRMは、非常に大規模なプロダクトになることが想定できたため、このタイミングで思い切って全面的に刷新すること(フロント側の刷新とそれに伴うAPI作成(要件の再定義))を決めました。

結果論ではあるかもしれませんが、この判断は成功したと思っています。
SPA-API構成に切り替えることで責務を明確に分離でき、並行した開発がすすめやすくなってきました。また、Swagger, OpenAPI-Generator を利用したSchema駆動な開発を徹底して行うことで、揺れ戻しも少なく開発ができているように思います。

フロントでは TypeScript を導入したことで、今後の大規模なSPAにおいてもスケーラビリティを担保することにつながっていると考えています。

■ スプリントをベースにしたイテレーティブな開発スタイルの確立

今後の成長を考えると、個人の集合体ではなく、チームとして複雑な課題に取り組んでいく文化を醸成していくことが必要だと考えてました。

開発組織では、水曜日を起点として週次でスプリントを実施しています。
各スプリントでは、ベロシティはもちろん、想定外のチケット比率やバックログアイテムごとのリードタイム, そのスプリントで掲げた目標の達成率を計測しており、組織のパフォーマンスをあらゆる角度から可視化し、改善につなげる流れができています。

KPTによる振り返りで毎週のように細やかな改善を回すことができ、
また毎週チームで目標を掲げて取り組むことで、チームとして課題に向き合う開発スタイルが醸成されつつあるように感じています。

■ 全社向けにケイパビリティモデルの浸透

(これまでのケイパビリティモデルによる組織開発については、上記記事でも取り上げたのでぜひご覧ください)

開発組織に求められることとしては、プロダクトを迅速にかつ確実にデリバリする。そしてそれを継続的に行うことです。こうした開発組織を構築するためには、求められる組織としての能力を定義し、その能力を常に計測し可視化することが重要だと考えています。

そこで、開発組織としての生産性/パフォーマンスを高め、維持することを目的として、ケイパビリティに焦点を当てた組織構築を心がけてきました。
具体的にこれまで重要視してきた指標としては「リードタイム/ポイント」「ポイント/スプリント」があります。

- リードタイム/ポイント: バックログアイテム1ポイント辺り、どれくらいのリードタイムでリリースできているか
- ポイント/スプリント: 1スプリント辺り、どれくらいのバックログアイテムポイントを消化できているか

こうした指標を可視化することで組織のパフォーマンスの見える化が進み、結果として、開発予測なども立てることができるようになってきました。

開発外のメンバーからも開発組織がどういったパフォーマンスを発揮しているのかをわかりやすくなり、信頼関係の構築にもつながっていると感じています。

これから注力していくこと

徐々にではありますが、開発組織として事業成長に貢献できる土台はできつつあるかなと思っています。
とはいっても開発組織としてできることはまだまだ多くあります。

いままでは開発組織が成長のボトルネックにならないように、既に負債になりつつあるプロダクトを整備していくことがメインでした。
これからはいまメダップが描いている経営・事業戦略の実現に向けて、成長を加速させていきたいと考えています。
具体では下記3点を注力していくことがポイントです。

- foroCRMが病院特化型CRMとして圧倒的なポジションを確立できるよう、UI/UXの作り込み & 機能改善/新規機能を徹底して行う
- 経営・事業戦略の急成長を支えられるよう、プロダクト・技術の整備を推進する
- 大規模な開発組織になっても開発生産性が落ちない仕組みを作る

■ foroCRMが病院特化型CRMとして圧倒的なポジションを確立できるよう、UI/UXの作り込み & 機能改善/新規機能を徹底して行う

これまでは大規模なSPA開発を行っていくために、SPA化としてフロント部分を刷新
また、既存機能に対して再度要件定義 → APIの作り直しを行ってきました。

これらの取り組みはほぼ一段落してきたので、ここからはより攻めのプロダクト開発をしていきます。
大枠として下記2点に注力していきます。

- 病院特化型CRMとしての全体UX設計とプロダクトへの反映
- ユーザーの業務を抑えた上で、的確に課題を解決する機能拡張

VerticalSaaSのプロダクト開発にどっぷり浸れるかなと思って、ワクワクしていますw

■ 経営・事業戦略の急成長を支えられるよう、プロダクト・技術の整備を推進する

プロダクトを軌道に載せていくために、機能整備を優先してやってきましたが、これからはもう少し中長期の視点での開発にも取り組んでいきます。
今後、成長し続けていく事業を支える上でユーザーの業務, 病院業界を的確に表現するドメインを作り込んでいくことが必要だと思っています。
これまでの開発で必要最低限の機能は整えることができたので、そこをベースとしてドメインモデリングを行っていきます。

その他にもユーザーを支えるためのサポートプロダクトの整備やサーバーの可用性担保など、foroCRMがこの先も長きに渡って価値を固められる土台をここでしっかり作り込んでいきます。

■ 開発組織の拡大で開発生産性が落ちない仕組みを作る

これまでもエンジニア採用は行っており、少しずつではありますが着実に優秀なメンバーにジョインしていただいています。メンバーのおかげもあり、ここまではしっかりとエンジニアが増えると開発総量があがる仕組みになっていました。

ここから人数が更に増え、チームが分化していくことを想定しています。
これまで以上に質の高いコミュニケーション設計や依存関係の少ないサービス作りを行うことで、独立かつ並行してサービス開発ができる体制を強化する必要があると考えています。

こうしたスケーラビリティの観点を組織の能力として計測できるように
「Pt/Sp/人(1エンジニア辺り1スプリントでどれくらいのプロダクトバックログポイントを消化できているか)」
を新たな指標として定義するなど、大規模な開発組織に向けた指標の設定や、その指標を高い水準で安定させるための施策を随時行っていきます。

オンボーディング設計やチーム間のコミュニケーション設計といった組織に目を向けた施策もあれば、
アーキテクチャの依存関係整理やサービス内の循環的複雑度の計測を行うなど、多角的にチャレンジしていきたいと考えています。

まとめ

開発組織としてこれまで歩んできた軌跡と、これから何に注力してやっていく想定かをまとめてみました。
開発組織として注力していきた方向性は決めつつも、具体的な施策の設計や実行はもちろんまだまだこれからということもあり、手前味噌ではありますが技術力を戦略/戦術/実行のどの領域にでも適応していける面白いフェーズかなと感じています。

事業としてもここから更に加速していくフェーズで、ビジネス面でも技術面でも非常にチャレンジングなタイミングです。
もし少しでもご興味お持ちいただけるようでしたら、ぜひ一度より具体的なお話がシェアできればと思いますので、最寄りの馬場までDMください!
(副業からの参画も全然OKです!!)

開発組織に関しては、別途スライドも作成しているので、良ければ御覧いただきたいです。

(弊社採用ページもぜひご覧ください!)