ベロシティを上手く使って
技術的負債を計画的に解消する
松岡 幸一郎 (@little_hand_s)
1
● 松岡 幸一郎 (@little_hand_s)
● DDD community jp、Agile Developers Community主催
● DDD周りの話をするブログ書いてます
● WEB+DB PRESS 2019年10月号 特集「体験ドメイン駆動設計」
● 「ドメイン駆動設計 モデリング/実装ガイド」執筆
自己紹介
2
技術的負債あるある
3
4
5
よく見るループ
6
7
8
9
新しい開発の必要性は常に生まれるので、
「いつか」を待っていても負債は解消できません
解決策
10
解決策
技術的負債返済用のバックログを作り
毎週固定の枠を設ける
11
前提
● スクラムに則って開発を行っている
● 毎週のベロシティがストーリーポイント(SP)で計測され、
ある程度安定している
12
① 負債解消のためのバックログアイテム作成
zzzの実装を標準化する
yyyをリファクタする
xxxにテストを追加する
13
① 負債解消のためのバックログアイテム作成
②バックログアイテムに対して見積もりをする
(通常の開発と同じ基準で行う)
14
yyyをリファクタする
1SP
xxxにテストを追加する
2SP
zzzの実装を標準化する
5SP
③負債解消アイテムに固定の枠を設ける
15
直近の平均ベロシティ: 30SP
新規開発
残り27SP
③負債解消アイテムに固定の枠を設ける
16
直近の平均ベロシティ: 30SP
負債解消
3SP
③負債解消アイテムに固定の枠を設ける
④スプリントプランニングで、枠の分だけスプリントの計画に盛り込む
17
直近の平均ベロシティ: 30SP
新規開発
残り27SP
負債解消
3SP
yyyをリファクタする
1SP
xxxにテストを追加する
2SP
ポイント
負債返済枠を天引きする!
18
● 給料を「余ったら貯金」ではなく
「最初に天引き」した方が貯金しやすい
19
● 給料を「余ったら貯金」ではなく
「最初に天引き」した方が貯金しやすい
● 負債返済も天引き式プランニングした方が返済しやすい!
20
他の方法との比較
21
「手が空いたらやる」方式
22
「手が空いたらやる」方式
● 重要な事実:手は空かない
23
「手が空いたらやる」方式
● 重要な事実:手は空かない
● パーキンソンの法則
「仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する」
24
「手が空いたらやる」方式
● 重要な事実:手は空かない
● パーキンソンの法則
「仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する」
それに対して…
● 枠を固定で設けることで、確実に負債返済が実行される
25
「毎週固定の時間を抑える」方式
● ex) 毎週金曜日に2時間予定を取る
26
「毎週固定の時間を抑える」方式
● ex) 毎週金曜日に2時間予定を取る
● 大体キリよく終わらない
● アウトプットが不明確になり、曖昧に終わる
27
「毎週固定の時間を抑える」方式
● ex) 毎週金曜日に2時間予定を取る
● 大体キリよく終わらない
● アウトプットが不明確になり、曖昧に終わる
それに対して…
● 他の開発と同様に、受け入れ基準を明確にし、きちんと完了させることができる
● 受入基準に合わせて見積もりをきちんとできる
28
「やりたくなったら都度交渉」方式
29
「やりたくなったら都度交渉」方式
● 非エンジニアに技術的負債解消と機能開発の優先順位を比較することは難しい
● 交渉に無駄に工数がかかり、双方疲弊する
30
「やりたくなったら都度交渉」方式
● 非エンジニアに技術的負債解消と機能開発の優先順位を比較することは難しい
● 交渉に無駄に工数がかかり、双方疲弊する
それに対して…
● 枠を設けることだけに合意ができれば、後の交渉をカットできる
● ビジネス側からも、ストーリーポイントの総量に対する比率でコントロールしやすい (返
済枠以外は機能開発、と整理できる)
31
Tips
32
● 大きなアイテムは1スプリントの枠に収まるように分割しよう
33
zzzの実装を標準化する
5SP
5SPは、1スプリントの負債返済枠に収
まらない
● 大きなアイテムは1スプリントの枠に収まるように分割しよう
34
zzzの実装を標準化する
5SP
zzzの実装標準を決める
1SP
zzzのお手本実装を作成
する 1SP
zzzの実装を横展開する
3SP
5SPは、1スプリントの負債返済枠に収
まらない
● 大きなアイテムは1スプリントの枠に収まるように分割しよう
35
zzzの実装を標準化する
5SP
zzzの実装標準を決める
1SP
zzzのお手本実装を作成
する 1SP
zzzの実装を横展開する
3SP
1スプリントの返済枠に納めて計画・実行できる
5SPは、1スプリントの負債返済枠に収
まらない
まとめ
36
まとめ
● 人の心は弱い!
ので後回しにしがちな負債返済は仕組みでカバー!
● 貯金と一緒、天引きで枠を確保しよう
● 負債返済もきちんと受け入れ基準を明確化してスクラムの仕組みにマージしよう
37
● 天引き式プランニングはログラスでの実践事例です
● DDD x スクラムでアジャイル開発しています
● 会社の紹介はこちら
38
ご静聴ありがとうございました
39

ベロシティを上手く使って 技術的負債を計画的に解消する