Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
技術的負債の返却をスクラムで: 会計SaaSの開発チームの挑戦の軌跡
Search
okeicalm
June 25, 2024
0
240
技術的負債の返却をスクラムで: 会計SaaSの開発チームの挑戦の軌跡
Scrum Fest Osaka 2024の登壇資料です。
okeicalm
June 25, 2024
Tweet
Share
More Decks by okeicalm
See All by okeicalm
マネーフォワード関西開発拠点の SREの始まりと今と未来
okeicalm
0
22
複数のスクラムチームをサポートするエンジニアリングマネジメントの話
okeicalm
0
3.3k
マテリアルデザインガイドライン輪読会#1 - Components(button) -
okeicalm
0
600
マテリアルデザインガイドライン輪読会#1 - Material Design -
okeicalm
0
690
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
98
5.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Become a Pro
speakerdeck
PRO
26
5.1k
The Pragmatic Product Professional
lauravandoore
32
6.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Side Projects
sachag
452
42k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Being A Developer After 40
akosma
89
590k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Rails Girls Zürich Keynote
gr2m
94
13k
BBQ
matthewcrist
87
9.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Transcript
スライドトップと してご利用ください マネーフォワード事業本部 山田 太郎 © Money
Forward, Inc. 技術的負債の返却をスクラムで 会計SaaSの開発チームの挑戦の軌跡 株式会社マネーフォワード 大阪開発拠点長 大倉 圭介 © Money Forward, Inc.
Money Forward Engineering Manager 大阪開発拠点長 大倉 圭介 (@okeicalm) ©
Money Forward, Inc.
© Money Forward, Inc. スクラムと私 • 前職時代(新卒から9年くらい) ◦
2012年ごろにアジャイル開発に出会う ◦ 2年くらいスクラムマスターとしてスクラムを経験 ◦ 1.5年くらいプロダクトオーナーとしてスクラムを経験 • マネーフォワード時代(4年弱くらい) ◦ 1年くらいエンジニアとしてスクラムを経験 ◦ 3年くらいエンジニアリングマネージャとしてスクラムを経験 詳しくはこちら: https://note.com/okeicalm/n/nc97a55959d43
© Money Forward, Inc. チーム作りのポリシー 良いチームで良いプロダクトを届ける チームが成長と貢献を実感できる
© Money Forward, Inc. 本日のアウトカム 技術的負債の解消に向けた 具体的なアプローチと戦略のヒントを得られます
© Money Forward, Inc. Agenda • イントロダクション •
技術的負債解消プロジェクトの概要 • スクラムを用いたアプローチ • 主な課題とその解決策 • 結果と学び
© Money Forward, Inc. イントロダクション
© Money Forward, Inc. マネーフォワード クラウド会計Plus チーム人数の推移 会計Plusとは 開発プロセス
成長企業のための 内部統制を備えた会計SaaS スクラム→LeSS 1チームから 複数のスクラムチーム規模に グローバル化も推進中 プロダクトの状況 最初のマーケットでPMF達成 新たなマーケットへ挑戦
© Money Forward, Inc. マネーフォワード クラウド会計Plus ビジネスと共に成長する、つながる会計 会計Plusのプロダクトビジョン
© Money Forward, Inc. マネーフォワード クラウド会計Plus ゴルフ会員権 ERP開発本部 前受収益
小口現金 Derivative 関西開発部 東京開発部 インド拠点 技術的負債解消PJ Feature開発
© Money Forward, Inc. プロジェクト背景 • 2020年2月にサービスリリース •
歴史あるプロダクトをフォークして開発 • フロントエンド領域については機能開発を優先してリー ズナブルな実装をする戦略を取った • これにより後々になって様々な課題が発生した フロントエンドが返済時期の過ぎた技術的負債に
© 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
© Money Forward, Inc. 技術的負債の概要とその影響
© Money Forward, Inc. お分かりいただけただろうか...?
© Money Forward, Inc. 技術的負債の概要とその影響 • レガシーなテックスタック •
複数の設計ポリシーで記載された複雑なコードベース • バージョンアップ困難なライブラリ 既存機能の改修コストの増大 フロントエンドエンジニアが活躍しづらい環境 適切なUIが実装しづらい状況
© Money Forward, Inc. 技術的負債解消 プロジェクトの概要
© Money Forward, Inc. プロジェクト開始までの軌跡 2020 2021 2022 2023
★リリース ★戦いその1 ★戦いその2 ★PoC ★リアーキテクチャ プロジェクトが開始 数々の戦いの結果、専任チームの必要性を痛感 プロダクトグロースに不可欠であると 事業責任者と合意形成 20%ルールでの改善 新規機能開発での利用
© Money Forward, Inc. プロジェクトキックオフ
© Money Forward, Inc. プロジェクトのゴール • フロントエンドがRuby on Railsから分離されており、Ruby
on RailsはAPIサーバーとしての責務のみを有している状態になっ ている • フロントエンドのコードベース、開発環境が整っており、開発体 験が良く、生産性の高い状態で開発が行えている
© Money Forward, Inc. マイルストーンとしての1st リリース • フロントエンド開発の基盤が整っており、チームが自走してフロ ントエンド開発ができる状態になっている
• フロントエンド開発に必要なAPIがGraphQLで提供されており、 今後の開発についてもGraphQLベースで行えるよう開発指針 が定まっている
© Money Forward, Inc. スクラムを用いた アプローチ
© Money Forward, Inc. 体制 • プロダクトオーナー • スクラムマスター
• エンジニア • デザイナー (おそらく)一般的なスクラムチーム
© Money Forward, Inc. プロセス スクラムガイド通り(+LeSSのイベント)
© Money Forward, Inc. 既存のチームから「のれん分け」したチームなので Feature開発と同じように進んでいくだろう
© Money Forward, Inc. という仮説は脆くも崩れ去ったのであった
完 © Money Forward, Inc.
© Money Forward, Inc. 嘘です
© Money Forward, Inc. 主な課題と解決策
© Money Forward, Inc. (エリア)プロダクトオーナーは誰が適切?
© Money Forward, Inc. プロダクトオーナーは誰が適切? • 初期はドメインに詳しいプロダクトマネージャがプロダク トオーナーを担当
• ユーザーストーリーには直接紐づかないバックログアイ テムが多数存在 Feature開発とは明らかに様子が違う...
© Money Forward, Inc. 直面した課題 • 得意とするユーザー価値の探索とは違い技術的負債 に対しての優先順位づけが難しい
• 技術的負債についてのソリューションを一緒に考えるこ とが難しい プロダクト仕様とエンジニアリングに詳しい EMにプロダクトオーナーを交代
© Money Forward, Inc. 技術的負債の返却において 何に対して探索と実験を行う?
© Money Forward, Inc. 技術的負債の返却において、何に対して探索と実験を行う? • ゴールから逆算すると、プロダクト全体を見通して開発 生産性や開発者体験を高めるためには何が必要かに 対して仮説と検証が必要
• まずは既存の画面から抽出して、共通的なUIコンポー ネントを揃えるところからスタートする方針に
© Money Forward, Inc. 直面した課題 • 実際の機能・画面を開発する前に共通的な要素を抽出 して実装する難易度が高過ぎた
◦ どこまで考慮して、どこまでやるのか問題 • 既存コードがないので初めましての設計議論が多い 困難であることを認めて、まずは機能実装をしながら インクリメンタルに改善していく方針に転換
© Money Forward, Inc. やるべきだったけどやらなかったこと • 最初に着手した画面は改善することで非常にレバレッ ジの効くが、非常に仕様の複雑な画面
• 技術的にもチャレンジなので、もっと簡単な画面から着 手すべきだった プロダクトオーナーのワガママを通してしまいました
© Money Forward, Inc. トレードオフスライダーをどう設定する?
© Money Forward, Inc. トレードオフスライダーをどう設定する?
© Money Forward, Inc. 直面した課題 • コード品質を高めるための試行錯誤をしながら進めた 結果、まあまあのスケジュール遅延が発生
• その結果、当初想定からスコープも極限まで圧縮 ここまではトレードオフスライダー通りの意思決定
© Money Forward, Inc. 直面した課題 • しかし、際限なくスケジュールを伸ばすことはコストの観 点から不可能
◦ トレードオフスライダーとの矛盾・・・ • プロダクトオーナーとして苦渋の決断を迫られる 結果として一部のコード品質には目を瞑って リリース後にリファクタすることにした
© Money Forward, Inc. 技術的なチャレンジのあるバックログアイテムが進まない
© Money Forward, Inc. 技術的なチャレンジのあるバックログアイテムが進まない • 技術的なチャレンジのあるバックログアイテムに対して スパイクを打って事前の調査や検証などはしている
• しかし、実際にスプリントで着手すると全然進まない状 態になった
© Money Forward, Inc. 直面した課題 • スパイクを担当した人は知っているが、そうじゃない人 は知らない
• スキルがない状態で開発しようとしてしまっている 新しい技術要素に対してキャッチアップする バックログアイテムを追加して全員の学習を強制
© Money Forward, Inc. 「混ぜるな危険!」問題
© Money Forward, Inc. 「混ぜるな危険!」問題 • 実は技術的負債の返済以外にもやることを混ぜちゃい ました ◦
新しいデザインスタンダードの適用 ◦ 並行していたFeature開発の機能をつける ◦ UX悪いところを改善する
© Money Forward, Inc. 直面した問題 • Feature開発のスケジュールに間に合わせるために意 思決定の幅を狭めてしまった
◦ 結局、Feature開発のスケジュールには乗れなく なって別で開発した • デザインスタンダードの適用のためのコミュニケーショ ンコストも想定より発生した
© Money Forward, Inc. 解決策...? • デザイナーのアサイン変更をして、このプロジェクトに かけれるキャパシティを大幅に増やした
UXの悪い状態を新しい技術で再現するのは 投資として適切でないと判断して路線変更しなかった
© Money Forward, Inc. 結果と学び
© Money Forward, Inc. 1stリリースを達成
© Money Forward, Inc. チームの状態
© Money Forward, Inc. チームの状態
© Money Forward, Inc. チームの成長と今後の展望 • これまでカオスだった類似画面を全て新規実装で置き 換えていく
• 次のコア機能の置き換えにチャレンジ • 別チームへのナレッジシェア • そして全ての画面を置き換えへ...
まとめ © Money Forward, Inc.
© Money Forward, Inc. まとめ • 目に見えるものを小さく作って小さく改善を積み重ねて いくという基本は変わらない •
Feature開発とはプロダクトオーナーに必要とされるス キルセットが違うことを認識しておく • 混ぜるな危険!!!
ご清聴ありがとうございました © Money Forward, Inc.