技術的負債を見つめなおす
by
penguin045
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Meetup Meetup Meetup Meetup Meetup Meetup Meetup Meetup Meetup Meetup Meetup ©2020 RAKUS Co. Ltd. 技術的負債を⾒つめなおす 技術的負債を⾒つめなおす やなせ たかし
Slide 2
Slide 2 text
#RAKUSMeetup やなせ たかし つよいプログラマーになりたい 最近Clojureはじめました 18年モノのシステムを開発しています
Slide 3
Slide 3 text
#RAKUSMeetup もくじ 1. 技術的負債ってなんだ 1. 負債とは 2. 技術的負債とは 3. ケーススタディ 2. 技術的負債に⽴ち向かう 1. でもその前に 2. 技術的負債にも種類がある 3. 返済戦略を考える
Slide 4
Slide 4 text
#RAKUSMeetup 技術的負債ってなんだ
Slide 5
Slide 5 text
#RAKUSMeetup そもそも負債とは︖
Slide 6
Slide 6 text
負債とは 負債とは 資産と表裏⼀体 純資産 + 負債 = 総資産
Slide 7
Slide 7 text
会計的な(経営的な)負債 返さなくてはいけない資⾦のこと 他⼈の⾦と考えるとだいたいあってる 返さなくていいなら返さない⽅がお得
Slide 8
Slide 8 text
脱線ここまで
Slide 9
Slide 9 text
#RAKUSMeetup 技術的負債とは 技術的負債とは
Slide 10
Slide 10 text
技術的負債 ⾒逃し(され)た品質の低い部分 アーキテクチャ コード ⻑期的に引き起こす問題 バグの増加 開発速度の低下
Slide 11
Slide 11 text
それでもリリース(価値提供)のためには必要
Slide 12
Slide 12 text
#RAKUSMeetup なぜ︖ なぜ︖
Slide 13
Slide 13 text
ケーススタディ あるソフトウェアの開発 開発費以外は変動しないものとする ちゃんと作ると⾚字になることがわかっている ちょっと何かを改造したら利益が⾒込める ただし技術的負債がたまる
Slide 14
Slide 14 text
損益計算書を⾒てみましょう
Slide 15
Slide 15 text
ちゃんと作る場合 想定通り⾚字になります
Slide 16
Slide 16 text
技術的負債を受⼊れ 技術的負債を受⼊れ 開発コストを下げる 開発コストを下げる
Slide 17
Slide 17 text
するとこうなる 開発費を圧縮・⼀気に⿊字化
Slide 18
Slide 18 text
何が起こった︖ 何が起こった︖ 損益計算書から読み取れること 開発費が下がった 利益が出た すばらしい︕プロジェクトは成功だ︕
Slide 19
Slide 19 text
完 完
Slide 20
Slide 20 text
技術的負債はどこに︖ 技術的負債はどこに︖
Slide 21
Slide 21 text
バランスシートを⾒てみましょう
Slide 22
Slide 22 text
ちゃんと作る 安く作る
Slide 23
Slide 23 text
⾒えない ⾒えない
Slide 24
Slide 24 text
技術的負債が⾒えない理由 技術的負債が⾒えない理由 返済期⽇がない 借りて資産が増えるわけでもない 起こったのはP/Lの費⽤が下がっただけ つまり、帳簿上認識されにくい
Slide 25
Slide 25 text
そのままP/Lに異変が起こるまで 問題に気付かない
Slide 26
Slide 26 text
P/Lに起こる異変 P/Lに起こる異変 開発費・販管費が増加する 開発スピードの低下 品質の低下 → いわゆる技術的負債の「利息」
Slide 27
Slide 27 text
でも技術的負債を受け⼊れないと︖ でも技術的負債を受け⼊れないと︖ ⾚字 ビジネスとして成り⽴たない可能性がある
Slide 28
Slide 28 text
#RAKUSMeetup ここまでのまとめ ここまでのまとめ 技術的負債は⾒えにくい 返済期限がない 短期的にデメリットが⾒えない ある時急に影響が⾒え始める 技術的負債の分布の偏り 指数関数的な利息の増加
Slide 29
Slide 29 text
#RAKUSMeetup もくじ 1. 技術的負債ってなんだ 1. 負債とは 2. 技術的負債とは 3. ケーススタディ 2. 技術的負債に⽴ち向かう 1. でもその前に 2. 技術的負債にも種類がある 3. 返済戦略を考える
Slide 30
Slide 30 text
#RAKUSMeetup 技術的負債に⽴ち向かう 技術的負債に⽴ち向かう
Slide 31
Slide 31 text
その前に その前に
Slide 32
Slide 32 text
漠然としたイメージ P/Lへのインパクトが少ないうちに返せばよさそう
Slide 33
Slide 33 text
質問 本当に技術的負債は致命的な問題に直結する︖ 回答 たぶんそう 部分的にそう
Slide 34
Slide 34 text
なぜ「たぶん」「部分的」なのか 技術的負債は、多くの場合局所的なもの そこに触れなければ問題は表⾯化しない 全体に対して影響があるものは問題 アーキテクチャレベルでの負債 要件レベルでの負債 これは別の問題
Slide 35
Slide 35 text
技術的負債にも種類がある 技術的負債にも種類がある 局所的な技術的負債 全体に影響を及ぼす技術的負債
Slide 36
Slide 36 text
局所的な技術的負債 返さなくてもいい場合が多い 直接関係なければ影響がない 壊れていないコードを直すな → コスパが悪いと判断されがち
Slide 37
Slide 37 text
全体に影響を及ぼす技術的負債 まず直す価値があるのはこちら 修正コストが⾼くなりがち 影響が⼤きいため 問題と認識された頃には影響が⼤きすぎる → コスパが悪いと判断されがち
Slide 38
Slide 38 text
#RAKUSMeetup 返済戦略を考える 返済戦略を考える
Slide 39
Slide 39 text
基本戦略 基本戦略 費⽤対効果が⾒込めそうなときに、 技術的負債の返済をする
Slide 40
Slide 40 text
ビジネスなので仕⽅ない
Slide 41
Slide 41 text
おさらいすると、 局所的な技術的負債 → コスパが悪いと判断されがち 全体に影響を及ぼす技術的負債 → コスパが悪いと判断されがち
Slide 42
Slide 42 text
なぜなのか 技術的負債の返済にもコストがかかる → ⾒込めるリターンが説明しづらい 問題が表⾯化したときには影響が⼤きすぎる → コスト⼤、費⽤対効果が⾒込めない
Slide 43
Slide 43 text
詰んでます︖
Slide 44
Slide 44 text
もちろん 修正コストが低いうちから返済するのがベスト → コストが低いうちは費⽤対効果も⾼い
Slide 45
Slide 45 text
でも気づかれない でも気づかれない
Slide 46
Slide 46 text
#RAKUSMeetup 結論︓技術的負債の返済はコスパが悪い いわゆる気づいたときには⼿遅れ状態
Slide 47
Slide 47 text
#RAKUSMeetup もういちど基本戦略 もういちど基本戦略 費⽤対効果が⾒込めそうなときに、 技術的負債の返済をする
Slide 48
Slide 48 text
どんな時がチャンス︖
Slide 49
Slide 49 text
技術的負債を返済できるチャンス 返済コストが安く、すぐに効果が⾒込めるとき 返済しなければ破綻するとき ⼤きな⼯数を稼げそうなとき
Slide 50
Slide 50 text
いわゆるレガシーシステムの場合 返済コストが安く、すぐに効果が⾒込めるとき 返済しなければ破綻するとき ⼤きな⼯数を稼げそうなとき
Slide 51
Slide 51 text
つらいケース つらいケース
Slide 52
Slide 52 text
返済しなければ破綻するとき 借⾦の返済期限が来た 問題が肥⼤化しており、返済コストが⾼い状態
Slide 53
Slide 53 text
品質の低下で損失を出す、 納期の⼤幅超過が続くなど危険な状態
Slide 54
Slide 54 text
⻑く苦しい戦い ⻑く苦しい戦い
Slide 55
Slide 55 text
ベターなケース ベターなケース
Slide 56
Slide 56 text
⼤きな⼯数を稼げそうなとき 技術的負債の返済を紛れ込ませる 過去の技術的負債を取り込まない 品質を作りこむチャンス
Slide 57
Slide 57 text
こちらを狙いたい
Slide 58
Slide 58 text
#RAKUSMeetup じつは最近チャンスが到来しました ⼤きな新機能の追加がある かなりの規模の開発になる 追加部分からアーキテクチャ刷新に着⼿
Slide 59
Slide 59 text
チャンスを逃さないために チャンスを逃さないために レガシーでもあきらめない 座して死を待つだけではただつらいだけ できることを考える
Slide 60
Slide 60 text
チャンスを逃さないために チャンスを逃さないために 負債の局所化 負債を作りこまない 汚染を広げない リファクタリングしやすい状況を整える
Slide 61
Slide 61 text
#RAKUSMeetup まとめ 技術的負債 と 負債 は確かに似ている 技術的負債は⾒えにくい 返済もコスパが⼤事 チャンスはやってくる そのための準備はしておく