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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kota Esaki
April 22, 2023
Programming
0
260
少人数規模の組織でレガシーコードと向き合う
2023/04/22
Kota Esaki
April 22, 2023
Tweet
Share
More Decks by Kota Esaki
See All by Kota Esaki
デザインシステムの MCP サーバーの 精度を高めるために
kotaesaki
0
8
Other Decks in Programming
See All in Programming
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
660
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
CSC307 Lecture 05
javiergs
PRO
0
500
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
150
ぼくの開発環境2026
yuzneri
0
250
Featured
See All Featured
Bash Introduction
62gerente
615
210k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
Writing Fast Ruby
sferik
630
62k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Documentation Writing (for coders)
carmenintech
77
5.3k
Done Done
chrislema
186
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
68
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
90
Transcript
少人数規模の組織で レガシーコードと向き合う Kota Esaki
自己紹介
@kke1229 SIer(銀行システム) → Start-up Engineer
レガシーコード改善に割く時間がないひと 聴いてほしい人
自分含めエンジニア3人 JOINしたときのチームの状況
サービスのリニューアルに追われている JOINしたときのチームの状況
入って半年、事件は起きた...
一行のコードの書き忘れで ◦百万円の損失を産みかける なんとか回収できた....
なぜ起きたかをチームで話し合った
なぜ起きたかをチームで話し合った 技術的な負債が 原因だった • 誰もそのコードについてオーナーシップを持てな い状態だった • 設計時やPRでも間違いに気づくことができな かった
今ある技術的な負債を洗い出してみよう
テストコードが実装されていない 技術的負債その1 自動テストが実装されていない または、実装されていてもテストの保守がされていない What?
テストコードが実装されていない 技術的負債その1 既存コード: テストするべき箇所をMUST, BETTER, OTHERに振り分けた 運用方法
テストコードが実装されていない 技術的負債その1 既存コード: テストするべき箇所をMUST, BETTER, OTHERに振り分けた MUST: あらゆるタスクの中で最優先で実装 運用方法
テストコードが実装されていない 技術的負債その1 既存コード: テストするべき箇所をMUST, BETTER, OTHERに振り分けた MUST: あらゆるタスクの中で最優先で実装 BETTER: Test
dayをチームとして定期的に設けた 運用方法
テストコードが実装されていない 技術的負債その1 既存コード: テストするべき箇所をMUST, BETTER, OTHERに振り分けた MUST: あらゆるタスクの中で最優先で実装 BETTER: Test
dayをチームとして定期的に設けた OTHER: その箇所が修正されるタイミングでテストコードを記述 運用方法
テストコードが実装されていない 技術的負債その1 新規コード テスト駆動開発の導入 運用方法
テストコードが実装されていない 技術的負債その1 運用を続けてどうなったか テストカバレッジ 5% → 64%
ライブラリの保守がされていない 技術的負債その2 • RubyのGemやTypeScriptのnpm, 言語バージョンが追いついていない • ライブラリの更新を怠ると依存しているコードが古くなる • 便利な機能の恩恵を受けられなくなる What?
ライブラリの保守がされていない 技術的負債その2 隔週チーム全員でUpdate DAYを行った 運用方法
ライブラリの保守がされていない 技術的負債その2 Ruby 2.2 → 3.0 Rails 4.0 → 7.0
Node 12.x → 16.x MariaDBなどその他いろいろ 運用を続けてどうなったか
少人数規模で大切なこと 小さく、はやく始めることを 心がける
まとめ 技術的負債を減らす順序 1. まずチームとして負債を認知する 2. 負債に対しての(心理的、物理的)障壁と優先順位を考える 3. 障壁を取り除く(組織としての理解、ツールのリニューアルなど) 4. 決めた優先順位をもとに仕組みとして運用する