Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バクラクの組織とアーキテクチャ(要約)2025/01版

shkomine
January 30, 2025

 バクラクの組織とアーキテクチャ(要約)2025/01版

https://findy.connpass.com/event/340323/
でお話したスライドです。

shkomine

January 30, 2025
Tweet

More Decks by shkomine

Other Decks in Technology

Transcript

  1. © LayerX Inc. 3 LayerX • 2021/08/16 入社 => TechLead

    => Engineering Manager => 部長 • 元々プレイングマネージャー • 担当プロダクトのメンバー 2名 => 約10名 => 複数のプロダクトチームの担当部長 経歴・スキルなど • 社歴: Yahoo! JAPAN => Candee => 友人と共同創業 => LayerX • スキル: Go, Typescript, Nuxt.js, AWS, Android, ベトナム駐在, iOS, Elixir, GCP, etc… • 趣味: 登山、お酒(クラフトビール・日本酒・ワイン)、サウナ、筋トレ 書いた記事 • 【GraphQL × Go】gqlgenの基本構成とオーバーフェッチを防ぐmodel resolverの実装 • 開発チームのマネージャーとして意識しているチームのCapability • 成果の最大化と向き合うEM思考 バクラク プロダクト開発部 部長 小峯 祥平 自己紹介
  2. © LayerX Inc.  6 仕訳データ 振込データ ⼊⾦データ 発注 請求 発注

    請求 バクラクシリーズの全体像 バクラクは、企業取引の前段となる 稟議の統⼀ と 債権‧債務の⼀元管理が可能。 従業員‧経理のそれぞれが係る業務領域において、なめらかな業務連携により企業経営を加速させます。 取引先  債権管理 債務管理(⽀出管理) 銀⾏ 会計ソフト 請求書 処理 経費 精算 振込 稟議 法⼈ カード 請求書 発⾏ 仕訳 (※12⽉より 順次リリース) ⼊⾦消込 (※) 仕訳 従業員 経理 (※) 開発予定 (※) 開発予定の機能を含む
  3. © LayerX Inc. 7 バクラクのプロダクトの考え方 バクラク立ち上げ時から単一プロダクトではなく、 複数のプロダクトでビジネスドメインを拡大していき、 企業の全部門、業務を支えるSaaS となることを目指す。 •

    部署でサービスを区切るのではなく、 データを中心にサービスを統合する • プロダクト間の連携の良さそのものが プロダクトである。 単純なマルチプロダクトではない。 • 組織として、複数のプロダクトを管理、 ローンチするケイパビリティを持つ バクラクはコンパウンドスタートアップを志向する from: コンパウンドスタートアップというLayerXの挑戦 | 福島良典
  4. © LayerX Inc. 9 プロダクトリリースの変遷 2021年1月 2021年4月 2021年12月 2022年5月 2022年8月

    バクラクビジネス カード バクラク 請求書 バクラク 申請 バクラク 経費精算 バクラク 電子帳簿保存 Invoice/AP Workflow Box Expense Card 2023年3月 Card SaaS 経費精算+ バクラクカー ド連動 2023年8月 Invoice/AR バクラク 請求書発行 サービス開始4年で7+のサービスを展開 2025年1月 HR バクラク 勤怠
  5. © LayerX Inc. 11 コンパウンドを実現するバクラクの組織とアーキテクチャ 新規プロダクト立ち上げ方 お客様にWowを届けるためには、以下の3つの要素のかけ合わせが重要 • ドメインにディープダイブする力 •

    エンジニアリング力 • デザイン力 「何を作るか」も決まりきっていない新規プロダクトの立ち上げでは、 上記の3つの要素が揃う、なるべく少ない人数(PdM・デザイナー・エンジニアの3〜5名の少人数のチーム)の コミュニケーションコストを極力まで下げたチームで、 「ヒアリング・仕様策定・デザイン・バックエンド開発・フロントエンド開発」 といった開発プロセスを行ったり来 たりしながら高速にループを回す事で、良いプロダクトを早く届ける事を実現しています。 from: CPOが開発する覚悟 ドメインに ディープダイブ する力 エンジニア リング力 デザイン力
  6. © LayerX Inc. 12 コンパウンドを実現するバクラクの組織とアーキテクチャ バクラクの組織の考え方 「プロダクト開発チームがお客様の課題・ドメインに徹底的に向き合い、プロダクトをフルサイクルに開発する事で 爆速開発を実現する。」 という事が新規プロダクトを立ち上げ続けるコンパウンドなバクラクにおいて、昔からベースとなる考え方。 その上で、チームトポロジーを参考に、プロダクト開発チーム(Stream

    Aligned Team) を 以下のチームがサポートし、全体の生産性・成果を最大化する体制へと徐々に変化してきた。 - Enabling Team: プロダクト開発チームとコラボレートし、技術的な障害を取り除き、                必要に応じて再利用できるツールやシステムに落とし込む - Platform Team: X-as-a-Serviceとして、認証・認可サービスや外部向けAPI基盤等を提供 - Complicated Subsystem Team: 専門性の高いシステムとして、AI-OCRや証憑突合サービス等を提供
  7. © LayerX Inc. 13 コンパウンドを実現するバクラクの組織とアーキテクチャ プロダクト開発チーム - 各プロダクトにPdM、EM、TLをアサイン、 各プロダクトの意思決定はプロダクト内で完結する自律的な チーム群

    - 各プロダクトは3〜5名のエンジニアで+デザイナー, QA、少人数の職能横断チームを構成 - プロダクトのフェーズは様々(0->1 〜 10->100) - ユーザー規模の大きいサービスほど、よりドメインは複雑になり、品質が重要視される - チームでの意思決定の幅は広い - プロダクトやチームの目標設定 - ex. インセプションデッキ、四半期のOKRやロードマップ - 日頃の開発サイクル - ex. 要望、プロダクトバックログ、 顧客へのヒアリング、 スクラムの会議体の管理 プロダクト開発チーム 申請・経費精算 Web 請求書受取 電子帳簿保存 ビジネスカード 請求書発行 勤怠 申請・経費精算 App
  8. © LayerX Inc. 14 各プロダクトチームを様々な横断チームがサポートする体制を構築 コンパウンドを実現するバクラクの組織とアーキテクチャ 様々な横断チーム 共通管理 DevOps Enabling

    機械学習 QA Data デザイン AI-UX Engneering Office サポート カスタマー サポート プロダクト組織を支える横断チーム 遊撃 プロダクト開発チーム 申請・経費精算 Web 請求書受取 電子帳簿保存 ビジネスカード 請求書発行 勤怠 申請・経費精算 App
  9. © LayerX Inc. 16 最初からコンパウンドを志向していたので、 - 独立したチームが動きやすい用に、プロダクト毎にサービス・DBを独立 - 共通管理はサービスとしては切り出すが、みんなで面倒 -

    新しいプロダクトの立ち上げ時に少しずつ新しい技術を試す方針 (GraphQL, React, etc...) コンパウンドを実現するバクラクの組織とアーキテクチャ 立ち上げ期(2021, 22年頃)のアーキテクチャ
  10. © LayerX Inc. 17 プロダクトが増えるにつれ、課題が増える - 連携したデータを見せるため、フロントから各プロダクトへの大量の呼び出し - プロダクト間連携における様々な問題が発生 -

    Service間のIFの互換性、依存関係が複雑. 循環参照なども発生. etc… コンパウンドを実現するバクラクの組織とアーキテクチャ 立ち上げ期(2021, 22年頃)のアーキテクチャの課題
  11. © LayerX Inc. 18 Enabling, DevOpsチームを中心に、Working Groupも組成し、新アーキテクチャへ 課題: 連携したデータを見せるため、フロントから各プロダクトへの大量の呼び出し 👉

    全プロダクト共通のEntry Point = GraphQL Gateway • 複数のサービスのリソースを FrontEndにまとめて返す仕組み • GraphQLの特性でアンダーフェッチ、 オーバーフェッチなども防げる • 認証情報の処理もここで一元管理 コンパウンドを実現するバクラクの組織とアーキテクチャ サービス間連携を強化したアーキテクチャへ(2023, 24年頃)
  12. © LayerX Inc. 19 コンパウンドを実現するバクラクの組織とアーキテクチャ 課題: プロダクト間連携における様々な問題(IFの互換性、依存関係が複雑. 循環参照など) 👉 マイクロサービスの作成コストとその連携コストを極力下げて、サービスの立ち上げ・連携をより手軽に

    マイクロサービスを自動生成 • Protobufと構成ファイル(jsonnet)からマイクロサービスのスケルトン実装を自動生成する仕組み • infraもterraformをCI/CDで生成し、デプロイまで実行できる サービス間通信は Protobuf(connect-go)で標準化、 Handler, Clientも自動生成 • GraphQL Gateway -> Microservices • Microservice -> Microservice ◦ 同期(API通信) ◦ 非同期(PubSub/Queue+Worker/Batch) localで各serviceを一斉に立ち上げられるプロセスマネージャーツール • マイクロサービスはlocalがつらい. 増えてもlocalでのdebugコストを上げない工夫 from: ビジネスドメインの拡大を実現するバクラクシリーズでのモノレポ開発 サービス間連携を強化したアーキテクチャへ(2023, 24年頃)
  13. © LayerX Inc. 20 AWS Cloud data store api FrontEnd

    OpenSearch Fargate (ECS) SQS TypeScript MySQL Aurora DynamoDB React Next.js Go 使用技術 S3 worker Fargate (ECS) Go GraphQL another systems バクラク 共通管理 バクラク 仕訳 and more micro services… Gateway Fargate (ECS) GraphQLTypeScript EventBridge Backend connect-go (Protocol Buffers) プロダクト開発チームの一例です。 connect-go (Protocol Buffers) Mobile Flutter Dart
  14. © LayerX Inc. 21 コンパウンドを実現するバクラクの組織とアーキテクチャ 今回話せなかったですが、Enablingと同じような横断な取り組みは他にも色々動いています。 - Data: Snowflakeに移行し、Productデータ(DB, Datadog,

    etc...)、Bisuinessデータ (Salesforce, etc...)を一元で取得可能に - 機械学習: テナントごとに学習できる 「パーソナライズドAI-OCR」が誕生 - QA: Playwrightを利用した、E2Eテスト基盤を整備 - デザイン & フロントエンド: デザインシステムガイドラインを策定、コンポーネント群を作成中 - etc... 話せなかったこと
  15. © LayerX Inc. 22 まとめ ここまでバクラクの組織とアーキテクチャの変遷をざっとお話しました。 そしてなにかすごく上手く行っている風に聞こえたかもしれませんが、まだまだ課題は山積みです。 • これからもまだまだプロダクトは増え続ける =>

    果てないドメイン・データ連携との戦い • お客様のデータも増え続ける => パフォーマンスとの戦い • 社外とのデータ連携も増え続ける => 基盤の更なる進化が必要? • 初期のプロダクトはまだ新しい基盤に乗せきれていないものも多くある • フロントエンド開発の基盤もまだまだこれから • 生成AIの登場で変わるユーザー体験・開発者体験 まとめ
  16. © LayerX Inc. 23 課題を一緒に問いてくれる方、 懇親会で是非お話しましょう! - プロダクトにオーナーシップをもって開発したい方! - フルスタックに開発したい方!

    - ドメインにDeepDiveしてお客様への価値提供をしたい方! - Enabling Teamでプロダクトを技術でリードしたい方 - LLMやMLを活用して新しい体験を作りたい方 - チームを束ねて成果を出したいEMの方 - PdM、デザイナー、QA、etc... バクラクは全方位採用中 さいごに 採用情報 https://jobs.layerx.co.jp/