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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
buntafujikawa
March 01, 2022
Programming
0
1k
テトリスでイメージする 技術的負債とリファクタリング
エンジニアではない人向けに、技術的負債とリファクタリングのイメージを持ってもらうための話
buntafujikawa
March 01, 2022
Tweet
Share
More Decks by buntafujikawa
See All by buntafujikawa
承認を意識したコードレビュー
buntafujikawa
0
490
スクラムとコーチングで作る心理的安全性
buntafujikawa
1
700
ちょっと便利になる自動補完と Ansible でのパッケージ管理について
buntafujikawa
0
790
社内技術広報のすすめ
buntafujikawa
0
180
テストコードについて (仮)
buntafujikawa
0
610
設計レビューのすすめ
buntafujikawa
1
580
Write Code Every Day
buntafujikawa
0
310
ドラゴン桜から学んだ勉強法
buntafujikawa
1
4.8k
How to do effective pair programming with junior engineers
buntafujikawa
1
740
Other Decks in Programming
See All in Programming
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
100
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
6.3k
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
440
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
130
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
230
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
180
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
290
組織で育むオブザーバビリティ
ryota_hnk
0
160
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
180
AtCoder Conference 2025
shindannin
0
1k
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
CSC307 Lecture 01
javiergs
PRO
0
680
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
54
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Building AI with AI
inesmontani
PRO
1
670
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
170
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
430
Evolving SEO for Evolving Search Engines
ryanjones
0
110
Between Models and Reality
mayunak
1
180
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
46
The Invisible Side of Design
smashingmag
302
51k
How STYLIGHT went responsive
nonsquared
100
6k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
320
Transcript
テトリスでイメージする 技術的負債とリファクタリング コーチェット チェックイン 2022/03/01 Bunta Fujikawa
今日わかること(願望) ・技術的負債がイメージできるようになる ・リファクタリングの重要性がわかる ・開発現場で起こるコミュニケーション齟齬の理由がわかる
エンジニアが思われがちなこと ・なんでその機能にそんな時間かかるの? ・最近仕事遅くない?前の方が開発のスピード早くなかった? ・早く作ってって言ったら見積もりより早く作ってくれた、最初からそうしてよ ・新しい機能作ってないのになんで忙しそうなの?
それ、技術的負債のせいです
技術的負債とは 技術的負債(英語: technical debt)、または設計負債[1]、コード負債とは、ソフトウェア開発における概念であり、時間がかかるより良いアプ ローチを使用する代わりに、今すぐ簡単な(限定的な)解決策を選択することで生じる追加の手直しの暗黙のコストを反映したものである [2]。 金銭的な負債と同様[3]に、技術的負債も返済されなければ、「利子」が蓄積され、変更の実施が困難になる。技術的負債を処理しないと、ソフ トウェアのエントロピーが増大する。金銭的負債と同様に、技術的負債も必ずしも悪いものではなく、プロジェクトを前進させるために(概念実 証として)必要な場合もある。 wikipediaより
技術的負債とは 技術的負債(英語: technical debt)、または設計負債[1]、コード負債とは、ソフトウェア開発における概念であり、時間がかかるより良いアプ ローチを使用する代わりに、今すぐ簡単な(限定的な)解決策を選択することで生じる 追加の手直しの暗黙のコストを反映したもの である[2]。 金銭的な負債と同様[3]に、技術的負債も返済されなければ、「利子」が蓄積され、変更の実施が困難になる 。技術的負債を処理しないと、ソフ トウェアのエントロピーが増大する。金銭的負債と同様に、
技術的負債も必ずしも悪いものではなく 、プロジェクトを前進させるために(概念実 証として)必要な場合もある。 wikipediaより
技術的負債とは 技術的負債(英語: technical debt)、または設計負債[1]、コード負債とは、ソフトウェア開発における概念であり、時間がかかるより良いアプ ローチを使用する代わりに、今すぐ簡単な(限定的な)解決策を選択することで生じる 追加の手直しの暗黙のコストを反映したもの である[2]。 金銭的な負債と同様[3]に、技術的負債も返済されなければ、「利子」が蓄積され、変更の実施が困難になる 。技術的負債を処理しないと、ソフ トウェアのエントロピーが増大する。金銭的負債と同様に、
技術的負債も必ずしも悪いものではなく 、プロジェクトを前進させるために(概念実 証として)必要な場合もある。 wikipediaより 開発のコストが上がる 放置しておくと負債が増える
技術的負債の具体例 ・3行でかける処理が30行で書かれてる ・コピペされたコード ・仕様変更などによる必要以上に複雑なコード ・使われてないコードが残っている ・古すぎるバージョンの言語やフレームワーク などなど
技術的負債の具体例 ・3行でかける処理が30行で書かれてる ・コピペされたコード ・仕様変更などによる必要以上に複雑なコード ・使われてないコードが残っている ・古すぎるバージョンの言語やフレームワーク などなど → 書く量 <
読む量 → 一度コピペされると次もされる → 複雑なコードがさらに複雑になる → 毎回変更した方が良いのか確認する必要性 → 新しいバージョンの便利な機能が使えない
なんとなくわかる
None
技術的負債をテトリスで考えてみる
開発初期 - a
開発が順調 - a
技術的負債が溜まってきた - a
技術的負債が多くなってきた - a
技術的負債が多くなってきた - a
技術的負債が多くなってきた - a 技術的負債 = テトリスの穴・ボコボコ
同じブロックでも 積み上げ方によって難易度が変わる
(再掲)エンジニアが思われがちなこと ・なんでその機能にそんな時間かかるの? ・最近仕事遅くない?前の方が開発のスピード早くなかった? ・早く作ってって言ったら見積もりより早く作ってくれた、最初からそうしてよ ・新しい機能作ってないのになんで忙しそうなの? - a
それぞれの視点 - a 非エンジニアの視点 (難しいブロックじゃないな )
それぞれの視点 - a 非エンジニアの視点 (難しいブロックじゃないな ) エンジニアの視点(どこに積み上げよう...)
これどうしようか...
こうしたい...
こうしたい... リファクタリング
リファクタリングとは リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変え ずにソースコードの内部構造を整理することである。また、いくつかのリファクタリング手法の総称としても使わ れる。
リファクタリングとは リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変え ずにソースコードの内部構造を整理すること である。また、いくつかのリファクタリング手法の総称としても使わ れる。
リファクタリングとは リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変え ずにソースコードの内部構造を整理すること である。また、いくつかのリファクタリング手法の総称としても使わ れる。 ・シンプルに書き直す(30行を3行にする) ・わかりやすい名前を付け直す ・使ってない機能やプログラムは削除する
・自動化できるものは自動化する などなど
リファクタリングとは リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変え ずにソースコードの内部構造を整理すること である。また、いくつかのリファクタリング手法の総称としても使わ れる。 ・シンプルに書き直す(30行を3行にする) ・わかりやすい名前を付け直す ・使ってない機能やプログラムは削除する
・自動化できるものは自動化する などなど
リファクタリングとは リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変え ずにソースコードの内部構造を整理すること である。また、いくつかのリファクタリング手法の総称としても使わ れる。 ・シンプルに書き直す(30行を3行にする) ・わかりやすい名前を付け直す ・使ってない機能やプログラムは削除する
・自動化できるものは自動化する などなど リファクタリング = 綺麗に積み上げ直す
リファクタリングはいつやるのか ・定期的にまとまった時間をとる ・ボーイスカウトルール ・毎週一定の時間をリファクタリングに使う
・金銭的な負債と同じように考えてみる ・今は負債を抱えても前に進めるべき? ・その負債はどれだけ利息がかかるのだろうか? ・いくら借金してるかわからないは怖い ・システムの寿命を考える ・負債に向き合うエンジニアと向き合う 技術的負債との向き合い方
まとめ - 技術的負債はテトリスの穴、ボコボコのイメージ - 技術的負債が多くなると、機能追加・変更の難易度が上がる - リファクタリングは積み上げたテトリスの山を綺麗にするイメージ - リファクタリングをすると、新しい機能ができなくてもその後の開発がやりやすくなる
Author Bunta Fujikawa Twitter @buntafujikawa Qiita @buntafujikawa Github @buntafujikawa