技術的負債を見つめなおす
by
penguin045
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 まとめ 技術的負債 と 負債 は確かに似ている 技術的負債は⾒えにくい 返済もコスパが⼤事 チャンスはやってくる そのための準備はしておく