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.
→
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
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
4k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
Package Management Learnings from Homebrew
mikemcquaid
0
230
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
CSC307 Lecture 03
javiergs
PRO
1
490
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
AI & Enginnering
codelynx
0
120
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
We Have a Design System, Now What?
morganepeng
54
8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
The Spectacular Lies of Maps
axbom
PRO
1
530
Producing Creativity
orderedlist
PRO
348
40k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
440
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
GitHub's CSS Performance
jonrohan
1032
470k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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. 決めた優先順位をもとに仕組みとして運用する