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

技術的負債の返却をスクラムで: 会計SaaSの開発チームの挑戦の軌跡

okeicalm
June 25, 2024
240

技術的負債の返却をスクラムで: 会計SaaSの開発チームの挑戦の軌跡

Scrum Fest Osaka 2024の登壇資料です。

okeicalm

June 25, 2024
Tweet

Transcript

  1. スライドトップと 
 してご利用ください 
 マネーフォワード事業本部 
 山田 太郎
 © Money

    Forward, Inc. 技術的負債の返却をスクラムで 
 会計SaaSの開発チームの挑戦の軌跡 
 株式会社マネーフォワード
 大阪開発拠点長
 大倉 圭介
 © Money Forward, Inc.
  2. © Money Forward, Inc. スクラムと私 
 • 前職時代(新卒から9年くらい) 
 ◦

    2012年ごろにアジャイル開発に出会う 
 ◦ 2年くらいスクラムマスターとしてスクラムを経験 
 ◦ 1.5年くらいプロダクトオーナーとしてスクラムを経験 
 • マネーフォワード時代(4年弱くらい) 
 ◦ 1年くらいエンジニアとしてスクラムを経験 
 ◦ 3年くらいエンジニアリングマネージャとしてスクラムを経験 
 詳しくはこちら: https://note.com/okeicalm/n/nc97a55959d43
  3. © Money Forward, Inc. Agenda 
 • イントロダクション 
 •

    技術的負債解消プロジェクトの概要 
 • スクラムを用いたアプローチ 
 • 主な課題とその解決策 
 • 結果と学び 

  4. © Money Forward, Inc. マネーフォワード クラウド会計Plus 
 チーム人数の推移
 会計Plusとは
 開発プロセス


    成長企業のための
 内部統制を備えた会計SaaS
 スクラム→LeSS
 1チームから
 複数のスクラムチーム規模に
 グローバル化も推進中
 プロダクトの状況
 最初のマーケットでPMF達成
 新たなマーケットへ挑戦

  5. © Money Forward, Inc. マネーフォワード クラウド会計Plus 
 ゴルフ会員権 ERP開発本部 前受収益

    小口現金 Derivative 関西開発部 東京開発部 インド拠点 技術的負債解消PJ Feature開発
  6. © Money Forward, Inc. プロジェクト背景 
 • 2020年2月にサービスリリース 
 •

    歴史あるプロダクトをフォークして開発 
 • フロントエンド領域については機能開発を優先してリー ズナブルな実装をする戦略を取った 
 • これにより後々になって様々な課題が発生した 
 フロントエンドが返済時期の過ぎた技術的負債に
  7. © Money Forward, Inc. 技術的負債とは 
 技術的負債(英語: technical debt)、設計負債、またはコード負債と は、ソフトウェア開発における概念であり、時間はかかるがより良いア

    プローチを選択する代わりに、簡単ではあるが限定的な解決策を選択 することで生じる、将来的な手直しにかかる暗黙のコストを示すもので ある。
 引用:https://ja.wikipedia.org/wiki/%E6%8A%80%E8%A1%93%E7%9A%84%E8%B2%A0%E5%82%B5
  8. © Money Forward, Inc. 技術的負債の概要とその影響 
 • レガシーなテックスタック 
 •

    複数の設計ポリシーで記載された複雑なコードベース 
 • バージョンアップ困難なライブラリ 
 既存機能の改修コストの増大 
 フロントエンドエンジニアが活躍しづらい環境 
 適切なUIが実装しづらい状況 

  9. © Money Forward, Inc. プロジェクト開始までの軌跡 
 2020 2021 2022 2023

    ★リリース ★戦いその1 ★戦いその2 ★PoC ★リアーキテクチャ  プロジェクトが開始 数々の戦いの結果、専任チームの必要性を痛感 
 プロダクトグロースに不可欠であると 
 事業責任者と合意形成 
 20%ルールでの改善 
 新規機能開発での利用 

  10. © Money Forward, Inc. プロジェクトのゴール 
 • フロントエンドがRuby on Railsから分離されており、Ruby

    on RailsはAPIサーバーとしての責務のみを有している状態になっ ている
 
 • フロントエンドのコードベース、開発環境が整っており、開発体 験が良く、生産性の高い状態で開発が行えている
  11. © Money Forward, Inc. マイルストーンとしての1st リリース 
 • フロントエンド開発の基盤が整っており、チームが自走してフロ ントエンド開発ができる状態になっている

    
 
 • フロントエンド開発に必要なAPIがGraphQLで提供されており、 今後の開発についてもGraphQLベースで行えるよう開発指針 が定まっている 

  12. © Money Forward, Inc. 体制
 • プロダクトオーナー 
 • スクラムマスター

    
 • エンジニア 
 • デザイナー 
 (おそらく)一般的なスクラムチーム
  13. © Money Forward, Inc. プロダクトオーナーは誰が適切? 
 • 初期はドメインに詳しいプロダクトマネージャがプロダク トオーナーを担当 


    • ユーザーストーリーには直接紐づかないバックログアイ テムが多数存在 
 Feature開発とは明らかに様子が違う... 

  14. © Money Forward, Inc. 直面した課題 
 • 得意とするユーザー価値の探索とは違い技術的負債 に対しての優先順位づけが難しい 


    • 技術的負債についてのソリューションを一緒に考えるこ とが難しい 
 プロダクト仕様とエンジニアリングに詳しい 
 EMにプロダクトオーナーを交代 

  15. © Money Forward, Inc. 直面した課題 
 • 実際の機能・画面を開発する前に共通的な要素を抽出 して実装する難易度が高過ぎた 


    ◦ どこまで考慮して、どこまでやるのか問題 
 • 既存コードがないので初めましての設計議論が多い 
 困難であることを認めて、まずは機能実装をしながら 
 インクリメンタルに改善していく方針に転換 

  16. © Money Forward, Inc. やるべきだったけどやらなかったこと 
 • 最初に着手した画面は改善することで非常にレバレッ ジの効くが、非常に仕様の複雑な画面 


    • 技術的にもチャレンジなので、もっと簡単な画面から着 手すべきだった 
 プロダクトオーナーのワガママを通してしまいました 

  17. © Money Forward, Inc. 直面した課題 
 • コード品質を高めるための試行錯誤をしながら進めた 結果、まあまあのスケジュール遅延が発生 


    • その結果、当初想定からスコープも極限まで圧縮 
 ここまではトレードオフスライダー通りの意思決定
  18. © Money Forward, Inc. 直面した課題 
 • しかし、際限なくスケジュールを伸ばすことはコストの観 点から不可能 


    ◦ トレードオフスライダーとの矛盾・・・ 
 • プロダクトオーナーとして苦渋の決断を迫られる 
 結果として一部のコード品質には目を瞑って 
 リリース後にリファクタすることにした 

  19. © Money Forward, Inc. 直面した課題 
 • スパイクを担当した人は知っているが、そうじゃない人 は知らない 


    • スキルがない状態で開発しようとしてしまっている 
 新しい技術要素に対してキャッチアップする 
 バックログアイテムを追加して全員の学習を強制
  20. © Money Forward, Inc. 「混ぜるな危険!」問題 
 • 実は技術的負債の返済以外にもやることを混ぜちゃい ました
 ◦

    新しいデザインスタンダードの適用 
 ◦ 並行していたFeature開発の機能をつける 
 ◦ UX悪いところを改善する 

  21. © Money Forward, Inc. 直面した問題 
 • Feature開発のスケジュールに間に合わせるために意 思決定の幅を狭めてしまった 


    ◦ 結局、Feature開発のスケジュールには乗れなく なって別で開発した 
 • デザインスタンダードの適用のためのコミュニケーショ ンコストも想定より発生した 

  22. © Money Forward, Inc. 解決策...? 
 • デザイナーのアサイン変更をして、このプロジェクトに かけれるキャパシティを大幅に増やした 


    UXの悪い状態を新しい技術で再現するのは 
 投資として適切でないと判断して路線変更しなかった 

  23. © Money Forward, Inc. チームの成長と今後の展望 
 • これまでカオスだった類似画面を全て新規実装で置き 換えていく 


    • 次のコア機能の置き換えにチャレンジ 
 • 別チームへのナレッジシェア 
 • そして全ての画面を置き換えへ... 

  24. © Money Forward, Inc. まとめ
 • 目に見えるものを小さく作って小さく改善を積み重ねて いくという基本は変わらない 
 •

    Feature開発とはプロダクトオーナーに必要とされるス キルセットが違うことを認識しておく 
 • 混ぜるな危険!!!