Slide 1

Slide 1 text

スライドトップと 
 してご利用ください 
 マネーフォワード事業本部 
 山田 太郎
 © Money Forward, Inc. 技術的負債の返却をスクラムで 
 会計SaaSの開発チームの挑戦の軌跡 
 株式会社マネーフォワード
 大阪開発拠点長
 大倉 圭介
 © Money Forward, Inc.

Slide 2

Slide 2 text

Money Forward
 Engineering Manager
 大阪開発拠点長
 大倉 圭介
 (@okeicalm) 
 © Money Forward, Inc.

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

© Money Forward, Inc. チーム作りのポリシー 
 良いチームで良いプロダクトを届ける 
 チームが成長と貢献を実感できる 


Slide 5

Slide 5 text

© Money Forward, Inc. 本日のアウトカム 
 技術的負債の解消に向けた 
 具体的なアプローチと戦略のヒントを得られます 


Slide 6

Slide 6 text

© Money Forward, Inc. Agenda 
 ● イントロダクション 
 ● 技術的負債解消プロジェクトの概要 
 ● スクラムを用いたアプローチ 
 ● 主な課題とその解決策 
 ● 結果と学び 


Slide 7

Slide 7 text

© Money Forward, Inc. イントロダクション

Slide 8

Slide 8 text

© Money Forward, Inc. マネーフォワード クラウド会計Plus 
 チーム人数の推移
 会計Plusとは
 開発プロセス
 成長企業のための
 内部統制を備えた会計SaaS
 スクラム→LeSS
 1チームから
 複数のスクラムチーム規模に
 グローバル化も推進中
 プロダクトの状況
 最初のマーケットでPMF達成
 新たなマーケットへ挑戦


Slide 9

Slide 9 text

© Money Forward, Inc. マネーフォワード クラウド会計Plus 
 ビジネスと共に成長する、つながる会計 
 会計Plusのプロダクトビジョン 


Slide 10

Slide 10 text

© Money Forward, Inc. マネーフォワード クラウド会計Plus 
 ゴルフ会員権 ERP開発本部 前受収益 小口現金 Derivative 関西開発部 東京開発部 インド拠点 技術的負債解消PJ Feature開発

Slide 11

Slide 11 text

© Money Forward, Inc. プロジェクト背景 
 ● 2020年2月にサービスリリース 
 ● 歴史あるプロダクトをフォークして開発 
 ● フロントエンド領域については機能開発を優先してリー ズナブルな実装をする戦略を取った 
 ● これにより後々になって様々な課題が発生した 
 フロントエンドが返済時期の過ぎた技術的負債に

Slide 12

Slide 12 text

© 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

Slide 13

Slide 13 text

© Money Forward, Inc. 技術的負債の概要とその影響 


Slide 14

Slide 14 text

© Money Forward, Inc. お分かりいただけただろうか...? 


Slide 15

Slide 15 text

© Money Forward, Inc. 技術的負債の概要とその影響 
 ● レガシーなテックスタック 
 ● 複数の設計ポリシーで記載された複雑なコードベース 
 ● バージョンアップ困難なライブラリ 
 既存機能の改修コストの増大 
 フロントエンドエンジニアが活躍しづらい環境 
 適切なUIが実装しづらい状況 


Slide 16

Slide 16 text

© Money Forward, Inc. 技術的負債解消 プロジェクトの概要

Slide 17

Slide 17 text

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


Slide 18

Slide 18 text

© Money Forward, Inc. プロジェクトキックオフ 


Slide 19

Slide 19 text

© Money Forward, Inc. プロジェクトのゴール 
 ● フロントエンドがRuby on Railsから分離されており、Ruby on RailsはAPIサーバーとしての責務のみを有している状態になっ ている
 
 ● フロントエンドのコードベース、開発環境が整っており、開発体 験が良く、生産性の高い状態で開発が行えている

Slide 20

Slide 20 text

© Money Forward, Inc. マイルストーンとしての1st リリース 
 ● フロントエンド開発の基盤が整っており、チームが自走してフロ ントエンド開発ができる状態になっている 
 
 ● フロントエンド開発に必要なAPIがGraphQLで提供されており、 今後の開発についてもGraphQLベースで行えるよう開発指針 が定まっている 


Slide 21

Slide 21 text

© Money Forward, Inc. スクラムを用いた アプローチ

Slide 22

Slide 22 text

© Money Forward, Inc. 体制
 ● プロダクトオーナー 
 ● スクラムマスター 
 ● エンジニア 
 ● デザイナー 
 (おそらく)一般的なスクラムチーム

Slide 23

Slide 23 text

© Money Forward, Inc. プロセス
 スクラムガイド通り(+LeSSのイベント)

Slide 24

Slide 24 text

© Money Forward, Inc. 既存のチームから「のれん分け」したチームなので 
 Feature開発と同じように進んでいくだろう 


Slide 25

Slide 25 text

© Money Forward, Inc. という仮説は脆くも崩れ去ったのであった 


Slide 26

Slide 26 text

完
 © Money Forward, Inc.

Slide 27

Slide 27 text

© Money Forward, Inc. 嘘です 


Slide 28

Slide 28 text

© Money Forward, Inc. 主な課題と解決策

Slide 29

Slide 29 text

© Money Forward, Inc. (エリア)プロダクトオーナーは誰が適切? 


Slide 30

Slide 30 text

© Money Forward, Inc. プロダクトオーナーは誰が適切? 
 ● 初期はドメインに詳しいプロダクトマネージャがプロダク トオーナーを担当 
 ● ユーザーストーリーには直接紐づかないバックログアイ テムが多数存在 
 Feature開発とは明らかに様子が違う... 


Slide 31

Slide 31 text

© Money Forward, Inc. 直面した課題 
 ● 得意とするユーザー価値の探索とは違い技術的負債 に対しての優先順位づけが難しい 
 ● 技術的負債についてのソリューションを一緒に考えるこ とが難しい 
 プロダクト仕様とエンジニアリングに詳しい 
 EMにプロダクトオーナーを交代 


Slide 32

Slide 32 text

© Money Forward, Inc. 技術的負債の返却において 
 何に対して探索と実験を行う? 


Slide 33

Slide 33 text

© Money Forward, Inc. 技術的負債の返却において、何に対して探索と実験を行う? 
 ● ゴールから逆算すると、プロダクト全体を見通して開発 生産性や開発者体験を高めるためには何が必要かに 対して仮説と検証が必要 
 ● まずは既存の画面から抽出して、共通的なUIコンポー ネントを揃えるところからスタートする方針に 


Slide 34

Slide 34 text

© Money Forward, Inc. 直面した課題 
 ● 実際の機能・画面を開発する前に共通的な要素を抽出 して実装する難易度が高過ぎた 
 ○ どこまで考慮して、どこまでやるのか問題 
 ● 既存コードがないので初めましての設計議論が多い 
 困難であることを認めて、まずは機能実装をしながら 
 インクリメンタルに改善していく方針に転換 


Slide 35

Slide 35 text

© Money Forward, Inc. やるべきだったけどやらなかったこと 
 ● 最初に着手した画面は改善することで非常にレバレッ ジの効くが、非常に仕様の複雑な画面 
 ● 技術的にもチャレンジなので、もっと簡単な画面から着 手すべきだった 
 プロダクトオーナーのワガママを通してしまいました 


Slide 36

Slide 36 text

© Money Forward, Inc. トレードオフスライダーをどう設定する? 


Slide 37

Slide 37 text

© Money Forward, Inc. トレードオフスライダーをどう設定する? 


Slide 38

Slide 38 text

© Money Forward, Inc. 直面した課題 
 ● コード品質を高めるための試行錯誤をしながら進めた 結果、まあまあのスケジュール遅延が発生 
 ● その結果、当初想定からスコープも極限まで圧縮 
 ここまではトレードオフスライダー通りの意思決定

Slide 39

Slide 39 text

© Money Forward, Inc. 直面した課題 
 ● しかし、際限なくスケジュールを伸ばすことはコストの観 点から不可能 
 ○ トレードオフスライダーとの矛盾・・・ 
 ● プロダクトオーナーとして苦渋の決断を迫られる 
 結果として一部のコード品質には目を瞑って 
 リリース後にリファクタすることにした 


Slide 40

Slide 40 text

© Money Forward, Inc. 技術的なチャレンジのあるバックログアイテムが進まない 


Slide 41

Slide 41 text

© Money Forward, Inc. 技術的なチャレンジのあるバックログアイテムが進まない 
 ● 技術的なチャレンジのあるバックログアイテムに対して スパイクを打って事前の調査や検証などはしている 
 ● しかし、実際にスプリントで着手すると全然進まない状 態になった 


Slide 42

Slide 42 text

© Money Forward, Inc. 直面した課題 
 ● スパイクを担当した人は知っているが、そうじゃない人 は知らない 
 ● スキルがない状態で開発しようとしてしまっている 
 新しい技術要素に対してキャッチアップする 
 バックログアイテムを追加して全員の学習を強制

Slide 43

Slide 43 text

© Money Forward, Inc. 「混ぜるな危険!」問題 


Slide 44

Slide 44 text

© Money Forward, Inc. 「混ぜるな危険!」問題 
 ● 実は技術的負債の返済以外にもやることを混ぜちゃい ました
 ○ 新しいデザインスタンダードの適用 
 ○ 並行していたFeature開発の機能をつける 
 ○ UX悪いところを改善する 


Slide 45

Slide 45 text

© Money Forward, Inc. 直面した問題 
 ● Feature開発のスケジュールに間に合わせるために意 思決定の幅を狭めてしまった 
 ○ 結局、Feature開発のスケジュールには乗れなく なって別で開発した 
 ● デザインスタンダードの適用のためのコミュニケーショ ンコストも想定より発生した 


Slide 46

Slide 46 text

© Money Forward, Inc. 解決策...? 
 ● デザイナーのアサイン変更をして、このプロジェクトに かけれるキャパシティを大幅に増やした 
 UXの悪い状態を新しい技術で再現するのは 
 投資として適切でないと判断して路線変更しなかった 


Slide 47

Slide 47 text

© Money Forward, Inc. 結果と学び

Slide 48

Slide 48 text

© Money Forward, Inc. 1stリリースを達成 


Slide 49

Slide 49 text

© Money Forward, Inc. チームの状態 


Slide 50

Slide 50 text

© Money Forward, Inc. チームの状態 


Slide 51

Slide 51 text

© Money Forward, Inc. チームの成長と今後の展望 
 ● これまでカオスだった類似画面を全て新規実装で置き 換えていく 
 ● 次のコア機能の置き換えにチャレンジ 
 ● 別チームへのナレッジシェア 
 ● そして全ての画面を置き換えへ... 


Slide 52

Slide 52 text

まとめ
 © Money Forward, Inc.

Slide 53

Slide 53 text

© Money Forward, Inc. まとめ
 ● 目に見えるものを小さく作って小さく改善を積み重ねて いくという基本は変わらない 
 ● Feature開発とはプロダクトオーナーに必要とされるス キルセットが違うことを認識しておく 
 ● 混ぜるな危険!!! 


Slide 54

Slide 54 text

ご清聴ありがとうございました 
 © Money Forward, Inc.