開発速度が速いと言われることがある、LayerXのSaaS「バクラク」の開発組織とアーキテクチャを紹介します。
以下のイベントで話した資料となります。 「SmartHR×STORES×LayerX スタートアップとプロダクト開発の組織化 bySELECK」 https://yumemi.connpass.com/event/262328/
バクラクの爆速開発を支えるチームとアーキテクチャ@mosa_siru 榎本悠介2022.10
View Slide
Confidential © 2022 LayerX Inc.2自己紹介榎本 悠介 @mosa_siru・LayerX取締役 バクラク事業部CTO/CPO・創業時CTO。新規事業、新規プロダクトをひたすらつくるマン・前線でプロダクト仕様考えまくってコードかきまくってます
3圧倒的に使いやすいプロダクトでわくわくする働き方を。企業活動を支えるコーポレート業務は、ミスができない難しい業務。バクラクはそんな業務の負担を少しでも軽くし、日常の業務がわくわくするような体験を届けます。使いやすさへの圧倒的なこだわりと、深い顧客理解で業務効率化を実現。手作業、ハンコ、紙のやり取りから脱却し、事業と組織を支える本来の仕事に向き合えるようサポートします。
4* 経費精算のSlack連携は申請内容の通知のみ稟議・支払申請・経費精算・ワークフロー・AIが領収書を5秒でデータ化・承認はチャットアプリから・シームレスな内部統制構築仕訳・支払処理効率化・AIが請求書を5秒でデータ化・仕訳データを自動学習、 手入力ゼロへ・改正電子帳簿保存法に対応・利用料無料・即時追加発行・最大1億円決済可能法人向けクレジットカード・無料で始められる・手入力ゼロで証憑管理・改正電子帳簿保存法に対応帳票保存・ストレージバクラクシリーズラインナップ
(ありがたいことに)LayerXは開発速度が速いと言われることがあります
6● 2020/10 開発● 2021/01 バクラク請求書リリース🎊● 2021/04 バクラク申請リリース🎊● 2021/11 バクラク電子帳簿保存リリース🎊● 2022/04 バクラク経費精算リリース🎊● 2022/07 バクラクビジネスカードリリース🎊開発開始から約2年、合計5つのプロダクトをリリース
爆速開発を支えるカルチャー
・・・を話す時間はなさそうなので...
開発を支えるチーム体制とアーキテクチャを話します
10QADesignProduct EnablingAI-OCRDevOps現在の開発体制:それぞれのチームに1-4名程度請求書 申請・経費精算 カード 電子帳簿保存 遊撃Machine Learning データ基盤 Ops※プロダクト個別チームに、PdMも含まれる
11各チームの役割QA請求書 申請・経費精算 カード 電子帳簿保存 遊撃DesignProduct EnablingAI-OCRDevOpsStream Aligned Team.各プロダクトのエンジニアとPdMが、こだわり抜いて良いプロダクトと体験を届ける。スケーラブルな形で品質を担保する。魅力的品質を創り出す。開発生産性を高める。詳しくは後述ボールが落ちがちな共通部分や管理画面を担当したり、柔軟に動くお客様の体験を担保し、インシデントを予防する。開発速度を向上させる。機械学習を軸にOCRの枠を超え、数字の先の体験を追求する組織、プロダクトの持っている価値を最大化するアウトプットを提供する
12はじめのころは・・・請求書(Dev4名)Design (1)AI-OCR (1-2)DevOps (1)Domain Expert / QA (1)おおまかな役割はあったが、実際は未分化の1チーム
13潮目その1: プロダクトが増えた● バクラク請求書リリース後、すぐに新プロダクト(バクラク申請)を作ることとなった。● 2つは密接にデータ連携するプロダクトであり、アーキテクチャについて論点となった(分割するか、モノリスにするか)○ マイクロサービスにする場合、要件的にサービス間のデータ同期(複製)が必要そうだった● そして筆者は過去にマイクロサービスについて苦い経験があった・・・・
14結局、分割することにしたプロダクトごとに分割し、さらに認証基盤も分割することにした。DBは絶対に独立にする方針。
15Why Microservices?● 単体でも成立するSaaSプロダクトは、ドメイン境界として適切に見えた● 実際、開発チームは分けた(バクラク請求書2-3人、バクラク申請2人)○ チームをスケールさせる覚悟があり、先手を打った● 今後どんどんプロダクトを出す可能性があった● 複数プロダクトを展開するSaaSの先輩たちが、モノリスからマイクロサービスに切り出すのに苦心しているのを知っていた
16結果どうだったか:良かった点● 各位が自律して動き、ファクトとして爆速で開発できており、運用もできている● 他にも、OCR基盤/認証基盤/タイムスタンプ機構などプロダクトによらないマイクロサービスもあり、効率化の恩恵を感じている● 新しいプロダクトでは新しい開発手法を試すことができ、確実にチームに知見がたまっている
17結果どうだったか:辛い点● 絡み合う複数SaaSの宿命として、とにかくデータ同期が辛い○ 二重管理、整合性監視と修復の運用負荷がある● 循環参照を避けるために、どのコンポーネントにどのデータを持つべきか、どの画面に機能をおくべきか、横断しうる機能が出るたびに頭がもげる○ 深いドメイン知識と、将来ありそうな要件の未来予知スキルが必要詳しくはこのスライドを。超泥臭い話があります。
18参考:その時のチーム構成請求書(2-3名)Design (1)AI-OCR (2)DevOps (1)QA (1-2)申請(2)
19潮目その2: 各プロダクトにPdMをおいた● それまで明確なPdMを置かず、ある種の合議(Dev, Sales, CS, Domain Expert etc…)のもと、開発する優先度を決めていた○ 各位がドメイン知識を貪欲に持ち、顧客要望を解像度高く理解していたため、ある意味まわっていた● しかし以下の理由でPdMをおいた(エンジニアが兼務する形)○ プロダクトが増え、見きれなくなってきた○ お客様の増加にともない要望が爆発し、整理の必要はもちろん、日々の要望に追われて戦略的な開発ができない可能性が出てきた
20結果どうだったか● 良かった(良かった)● マイルストーンが明確になり、Bizサイドのチームにとっても拠り所となった● 時期的にはちょうどよかったかもしれない
21潮目その3: マネージャーを配置した● 背景○ プロダクトチームは各プロダクトにリーダーはいたものの、基本的にフラットだった。○ 組織の成長に伴い、自分が15名以上をマネージする体制になっていた。○ 一方、自分は早急に新規事業を立ち上げる必要性があった● Action○ 各チームのメンバーに、どんどん新任マネージャーになってもらった(4名)■ HRが1on1同席したり、マネージャー研修などで支援を行った
22結果どうだったか● 良かった(良かった)● 各チームのマネージャーは「チームとしてアウトカムを出す」意識となった。新メンバーのオンボーディングも順調に。● mosa(CTO/CPO)が9割開発に集中できる体制になり、無事新規事業(バクラクビジネスカード)を高速にローンチできた
23そして現在: Enabling Teamが発足● 背景○ プロダクトが5つとなり、データ連携が増え、アーキテクチャとしての複雑性が増している■ これからもどんどんプロダクトが増える可能性● Action○ 名村卓さんのもと、生産性を向上する「Enabling Team」を発足● マイクロサービスでも管理しやすくする基盤、モノレポ化など、より爆速に、攻めれる構成にするように
24「Layerone」プロジェクト
25参考:現状のアーキテクチャのイメージ図…● 各プロダクトチームごとにコンポーネントがある、コンウェイの法則そのもの。● 歴史的経緯で、フロントがばらばらのAPIを叩いてしまっている(Gatewayが無い)● 裏側でデータ同期が必要になっている(一部のリソースのみ)○ 各種要件上仕方がなかった○ 連携するプロダクトが増えるたびに地獄になっていく● 循環参照を鬼のように気を遣って避けているが、深いドメイン知識と未来予知スキルが必要
26参考:「Layerone」アーキテクチャイメージBefore After● ユーザーからのAPI取得は、全て同じGatewayを通る形式になる● データ同期を極力なくし、お互いがAPIでデータ取得するのを前提とするSSoTに● 循環参照を避けるために、マイクロサービスをプロダクト単位からリソース単位に○ enabling teamは、上記を開発者体験よくできる基盤構築を行う○ とはいえ切りすぎて後で困ることもあるので、結局未来予知スキルが必要説もある.● この設計によってどうチーム構造に影響するかは、まだ未知数● とにかくまだ走り出したばかり・・!
まとめ
28まとめ● マルチプロダクトを高速に展開する中で、組織もアーキテクチャも変化してきました。● これからも柔軟に、先手をうって投資していき、お客様に良い体験を届けていきます。
29…なんか、きれいなことばかり言った気がするので・・最近感じていることの例● プロダクトをまたぐ機能が増えてきて、仕様策定・あるべき姿の定義、設計が困難に● プロダクトが増え、それぞれ進化する中で、品質面(QA,DevOps etc..)をどうスケールする形で担保できるか● 新アーキテクチャ、まだまだ未知数で正直ドキドキ。理想と現実の落とし所…● とにかく、もっとお客様にバクラクの体験を届けたい、やりたいことがたくさんあるけど、チームの拡大がおいついていない(月並みな話ですが…)○ 事業はもちろん、まだまだ体験も磨き込む余地があるのに、手をこまねいていて本当に悔しい。
皆さんの力が必要です…!最高のプロダクトと体験をつくり、ハタラクをバクラクにしたいメンバーを募集しています!(ポジションは全方位です)https://jobs.layerx.co.jp/
圧倒的に使いやすいプロダクトでわくわくする働き方を。企業活動を支えるコーポレート業務は、ミスができない難しい業務。バクラクはそんな業務の負担を少しでも軽くし、日常の業務がわくわくするような体験を届けます。使いやすさへの圧倒的なこだわりと、深い顧客理解で業務効率化を実現。手作業、ハンコ、紙のやり取りから脱却し、事業と組織を支える本来の仕事に向き合えるようサポートします。