Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
少人数規模の組織でレガシーコードと向き合う
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kota Esaki
April 22, 2023
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
少人数規模の組織でレガシーコードと向き合う
2023/04/22
Kota Esaki
April 22, 2023
More Decks by Kota Esaki
See All by Kota Esaki
デザインシステムの MCP サーバーの 精度を高めるために
kotaesaki
0
24
Other Decks in Programming
See All in Programming
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
AmebaブログはKMPから卒業します
kmars0605
0
200
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
430
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
630
ChromeでローカルLLM
ryu1013
0
140
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
気持ちぃ〜角丸 Squircle
ryu1013
0
320
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
Workers Cache を知る
syumai
0
370
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.2k
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
560
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
A better future with KSS
kneath
240
18k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Ruling the World: When Life Gets Gamed
codingconduct
0
400
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
Utilizing Notion as your number one productivity tool
mfonobong
4
620
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. 決めた優先順位をもとに仕組みとして運用する