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
技術的負債を見つめなおす
Search
penguin045
September 16, 2020
Technology
1
1.6k
技術的負債を見つめなおす
#RAKUSMeetup
penguin045
September 16, 2020
Tweet
Share
More Decks by penguin045
See All by penguin045
20年モノの巨大Webサービスの開発継続戦略 - ミドルウェアのバージョンアップとの向き合い方
penguin045
1
2.5k
言語の力でモデリングを表現する
penguin045
0
280
初めてのClojure
penguin045
0
690
PHPerがこれから「型」とお付き合いしていくために
penguin045
1
2.7k
社内最長老のシステムにPHPUnitで立ち向かう方法
penguin045
1
3.3k
Other Decks in Technology
See All in Technology
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
1
260
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
540
Agentic AIが変革するAWSの開発・運用・セキュリティ ~Frontier Agentsを試してみた~ / Agentic AI transforms AWS development, operations, and security I tried Frontier Agents
yuj1osm
0
160
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.3k
技術選定、下から見るか?横から見るか?
masakiokuda
0
170
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
330
Kiro を用いたペアプロのススメ
taikis
4
2.1k
Everything As Code
yosuke_ai
0
350
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
440
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
1.2k
LayerX QA Night#1
koyaman2
0
290
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
2.1k
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
Site-Speed That Sticks
csswizardry
13
1k
New Earth Scene 8
popppiees
0
1.3k
The Curse of the Amulet
leimatthew05
0
6.3k
Documentation Writing (for coders)
carmenintech
77
5.2k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
33
Rails Girls Zürich Keynote
gr2m
95
14k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.5k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
32
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
270
Producing Creativity
orderedlist
PRO
348
40k
Transcript
Meetup Meetup Meetup Meetup Meetup Meetup Meetup Meetup Meetup Meetup
Meetup ©2020 RAKUS Co. Ltd. 技術的負債を⾒つめなおす 技術的負債を⾒つめなおす やなせ たかし
#RAKUSMeetup やなせ たかし つよいプログラマーになりたい 最近Clojureはじめました 18年モノのシステムを開発しています
#RAKUSMeetup もくじ 1. 技術的負債ってなんだ 1. 負債とは 2. 技術的負債とは 3. ケーススタディ
2. 技術的負債に⽴ち向かう 1. でもその前に 2. 技術的負債にも種類がある 3. 返済戦略を考える
#RAKUSMeetup 技術的負債ってなんだ
#RAKUSMeetup そもそも負債とは︖
負債とは 負債とは 資産と表裏⼀体 純資産 + 負債 = 総資産
会計的な(経営的な)負債 返さなくてはいけない資⾦のこと 他⼈の⾦と考えるとだいたいあってる 返さなくていいなら返さない⽅がお得
脱線ここまで
#RAKUSMeetup 技術的負債とは 技術的負債とは
技術的負債 ⾒逃し(され)た品質の低い部分 アーキテクチャ コード ⻑期的に引き起こす問題 バグの増加 開発速度の低下
それでもリリース(価値提供)のためには必要
#RAKUSMeetup なぜ︖ なぜ︖
ケーススタディ あるソフトウェアの開発 開発費以外は変動しないものとする ちゃんと作ると⾚字になることがわかっている ちょっと何かを改造したら利益が⾒込める ただし技術的負債がたまる
損益計算書を⾒てみましょう
ちゃんと作る場合 想定通り⾚字になります
技術的負債を受⼊れ 技術的負債を受⼊れ 開発コストを下げる 開発コストを下げる
するとこうなる 開発費を圧縮・⼀気に⿊字化
何が起こった︖ 何が起こった︖ 損益計算書から読み取れること 開発費が下がった 利益が出た すばらしい︕プロジェクトは成功だ︕
完 完
技術的負債はどこに︖ 技術的負債はどこに︖
バランスシートを⾒てみましょう
ちゃんと作る 安く作る
⾒えない ⾒えない
技術的負債が⾒えない理由 技術的負債が⾒えない理由 返済期⽇がない 借りて資産が増えるわけでもない 起こったのはP/Lの費⽤が下がっただけ つまり、帳簿上認識されにくい
そのままP/Lに異変が起こるまで 問題に気付かない
P/Lに起こる異変 P/Lに起こる異変 開発費・販管費が増加する 開発スピードの低下 品質の低下 → いわゆる技術的負債の「利息」
でも技術的負債を受け⼊れないと︖ でも技術的負債を受け⼊れないと︖ ⾚字 ビジネスとして成り⽴たない可能性がある
#RAKUSMeetup ここまでのまとめ ここまでのまとめ 技術的負債は⾒えにくい 返済期限がない 短期的にデメリットが⾒えない ある時急に影響が⾒え始める 技術的負債の分布の偏り 指数関数的な利息の増加
#RAKUSMeetup もくじ 1. 技術的負債ってなんだ 1. 負債とは 2. 技術的負債とは 3. ケーススタディ
2. 技術的負債に⽴ち向かう 1. でもその前に 2. 技術的負債にも種類がある 3. 返済戦略を考える
#RAKUSMeetup 技術的負債に⽴ち向かう 技術的負債に⽴ち向かう
その前に その前に
漠然としたイメージ P/Lへのインパクトが少ないうちに返せばよさそう
質問 本当に技術的負債は致命的な問題に直結する︖ 回答 たぶんそう 部分的にそう
なぜ「たぶん」「部分的」なのか 技術的負債は、多くの場合局所的なもの そこに触れなければ問題は表⾯化しない 全体に対して影響があるものは問題 アーキテクチャレベルでの負債 要件レベルでの負債 これは別の問題
技術的負債にも種類がある 技術的負債にも種類がある 局所的な技術的負債 全体に影響を及ぼす技術的負債
局所的な技術的負債 返さなくてもいい場合が多い 直接関係なければ影響がない 壊れていないコードを直すな → コスパが悪いと判断されがち
全体に影響を及ぼす技術的負債 まず直す価値があるのはこちら 修正コストが⾼くなりがち 影響が⼤きいため 問題と認識された頃には影響が⼤きすぎる → コスパが悪いと判断されがち
#RAKUSMeetup 返済戦略を考える 返済戦略を考える
基本戦略 基本戦略 費⽤対効果が⾒込めそうなときに、 技術的負債の返済をする
ビジネスなので仕⽅ない
おさらいすると、 局所的な技術的負債 → コスパが悪いと判断されがち 全体に影響を及ぼす技術的負債 → コスパが悪いと判断されがち
なぜなのか 技術的負債の返済にもコストがかかる → ⾒込めるリターンが説明しづらい 問題が表⾯化したときには影響が⼤きすぎる → コスト⼤、費⽤対効果が⾒込めない
詰んでます︖
もちろん 修正コストが低いうちから返済するのがベスト → コストが低いうちは費⽤対効果も⾼い
でも気づかれない でも気づかれない
#RAKUSMeetup 結論︓技術的負債の返済はコスパが悪い いわゆる気づいたときには⼿遅れ状態
#RAKUSMeetup もういちど基本戦略 もういちど基本戦略 費⽤対効果が⾒込めそうなときに、 技術的負債の返済をする
どんな時がチャンス︖
技術的負債を返済できるチャンス 返済コストが安く、すぐに効果が⾒込めるとき 返済しなければ破綻するとき ⼤きな⼯数を稼げそうなとき
いわゆるレガシーシステムの場合 返済コストが安く、すぐに効果が⾒込めるとき 返済しなければ破綻するとき ⼤きな⼯数を稼げそうなとき
つらいケース つらいケース
返済しなければ破綻するとき 借⾦の返済期限が来た 問題が肥⼤化しており、返済コストが⾼い状態
品質の低下で損失を出す、 納期の⼤幅超過が続くなど危険な状態
⻑く苦しい戦い ⻑く苦しい戦い
ベターなケース ベターなケース
⼤きな⼯数を稼げそうなとき 技術的負債の返済を紛れ込ませる 過去の技術的負債を取り込まない 品質を作りこむチャンス
こちらを狙いたい
#RAKUSMeetup じつは最近チャンスが到来しました ⼤きな新機能の追加がある かなりの規模の開発になる 追加部分からアーキテクチャ刷新に着⼿
チャンスを逃さないために チャンスを逃さないために レガシーでもあきらめない 座して死を待つだけではただつらいだけ できることを考える
チャンスを逃さないために チャンスを逃さないために 負債の局所化 負債を作りこまない 汚染を広げない リファクタリングしやすい状況を整える
#RAKUSMeetup まとめ 技術的負債 と 負債 は確かに似ている 技術的負債は⾒えにくい 返済もコスパが⼤事 チャンスはやってくる そのための準備はしておく