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
Fight Code Rot Using Continuous Improvement
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
garyfleming
August 22, 2019
Programming
890
0
Share
Fight Code Rot Using Continuous Improvement
garyfleming
August 22, 2019
More Decks by garyfleming
See All by garyfleming
User Story Mapping Workshop
garyfleming
1
45
TDD for Testers
garyfleming
1
110
TDD Is My Shame
garyfleming
0
320
Continuous Testing
garyfleming
0
89
Better User Stories Through Example Mapping
garyfleming
0
110
Fighting Continuous Entropy
garyfleming
0
100
beyond-frameworks.pdf
garyfleming
1
46
The Board Whisperer
garyfleming
0
1.2k
APIs on the Scale of Decades
garyfleming
0
130
Other Decks in Programming
See All in Programming
AI-DLC Deep Dive
yuukiyo
9
5.8k
実用!Hono RPC2026
yodaka
2
310
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
510
AWSはOSSをどのように 考えているのか?
akihisaikeda
0
120
AgentCore Optimizationを始めよう!
licux
3
240
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
150
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.1k
JCON - Create Agentic AI Apps, The Easy Way!
kdubois
1
110
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
3.1k
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
120
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
390
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
490
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
The agentic SEO stack - context over prompts
schlessera
0
780
How STYLIGHT went responsive
nonsquared
100
6.1k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Pragmatic Product Professional
lauravandoore
37
7.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
120
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
230
Transcript
FIGHTING CODE ROT USING CONTINUOUS IMPROVEMENT 1995 @garyfleming
1995 @garyfleming
1995 @garyfleming
1995 @garyfleming
1995 @garyfleming
! @garyfleming
NOVEMBER FIFTEEN, NINETEEN NINETY-FIVE @garyfleming
SIXTEEN => SOXTEEN @garyfleming
SIXTEEN => SOXTEEN @garyfleming
TWO THOUSAND SOXTEEN @garyfleming
▸ No source code (written in an older language) ▸
Runs in a green screen terminal, ▸ Has to be emulated. @garyfleming
FIGHT CODE ROT USING CONTINUOUS IMPROVEMENT @GARYFLEMING @garyfleming
WHAT IS CODE ROT? @garyfleming
SYSTEM EXPERIMENT: @garyfleming
SYSTEM EXPERIMENT: FISHES AND TIME ▸ 10 minutes? ▸ 10
hours? ▸ 10 days? ▸ 10000 years? @garyfleming
ROT IN SOFTWARE @garyfleming
! @garyfleming
MULTI-FACETED @garyfleming
Problem KNOWING WHETHER YOUR SOFTWARE IS DEPLOYABLE @garyfleming
BRIEF INTRO TO CI/CD @garyfleming
CONTINUOUS INTEGRATION All developers/testers merge their code to a shared
mainline at least once a day. @garyfleming
CONTINUOUS INTEGRATION Related: ▸ Trunk-Based Development ▸ Feature Toggles @garyfleming
IF IT HURTS, DO IT MORE OFTEN. @garyfleming
CONTINUOUS DEPLOYMENT All changes go to production; safely, quickly, and
sustainably. @garyfleming
CONTINUOUS DEPLOYMENT Related: Blue-Green releases. @garyfleming
@garyfleming
Problem DEPENDENCY UPDATES @garyfleming
IF IT HURTS, DO IT MORE OFTEN. @garyfleming
IDEA UPDATE DEPENDENCIES DAILY @garyfleming
CONTINUOUS REGENERATION @garyfleming
CONTINUOUS REJUVENATION @garyfleming
EXPERIMENT: DEPENDENCY UPDATE DAILY ▸ Update ▸ Build and test
▸ Commit/Revert ▸ Commit causes CD to happen @garyfleming
OUTCOME: DEPENDENCY UPDATE DAILY Mostly success! ▸ Some Major Version
upgrades would need intervention, ▸ Temporary exclusions are important, @garyfleming
DEPENDENCY UPDATES: OTHER LANGUAGES ▸ Single versioned: Maven, Gradle, packages.config
e.g 5.4.1 3.0-ALPHA 1.3.2 @garyfleming
DEPENDENCY UPDATES: OTHER LANGUAGES ▸ Ranges and Lock files: gem/bundler,
most JS frameworks. >=5.4.1 3.* [3.7.1) @garyfleming
DEPENDENCY UPDATES: OTHER LANGUAGES ▸ Possibly open: pip, some JS
frameworks, gem some-dep a-different-dep @garyfleming
ALWAYS USE A LOCK FILE! Avoid "It works on my
machine" @garyfleming
RECENT DEVELOPMENTS ▸ Dependabot ▸ Atomist @garyfleming
GOOD TESTS ARE ESSENTIAL! @garyfleming
Problem RUNTIME ROT @garyfleming
ROT WILL SET IN ▸ JVM ▸ .NET ▸ NPM
version @garyfleming
THE CONTINUOUS NOW @garyfleming
INTERMEDIARY TOOLING ▸ Java -> Jabba ▸ Ruby -> RVM
▸ Node -> NVM ▸ Python -> Virtualenv (to some degree) @garyfleming
Problem STANDING SERVERS @garyfleming
Problem STANDING SERVERS @garyfleming
AVOID SNOWFLAKE SERVERS ▸ Hard to Reproduce ▸ Hard to
Modify ▸ Require manual processes, auditing, and docs. @garyfleming
IF IT HURTS, DO IT MORE OFTEN. @garyfleming
INFRASTRUCTURE AS CODE ▸ Chef/Puppet/Ansible ▸ Terraform ▸ Containerisation ▸
Various cloud toolkits @garyfleming
ENGINEERING PRACTICE ▸ Daily Deletion ▸ Chaos Engineering ▸ Dev
Laptop Wipes @garyfleming
CAUTION: TAKE THE UPDATES @garyfleming
Problem LANGUISHING LANGUAGES @garyfleming
Problem LANGUISHING LANGUAGES @garyfleming
@garyfleming
AVOIDING OBSOLESCENCE ▸ Move to new versions, ▸ Cautiously embrace
new languages, ▸ Design language agnostic APIs @garyfleming
DESTROY YOUR MICROSERVICES @garyfleming
Problem PEOPLE COME AND GO. @garyfleming
Problem PEOPLE COME AND GO. @garyfleming
IF IT HURTS, DO IT MORE OFTEN. @garyfleming
People Prepping RETROS @garyfleming
People Prepping DOMAIN KNOWLEDGE ▸ User Story Maps ▸ Example
mapping @garyfleming
People Prepping STAFF LIQUIDITY MATRICES @garyfleming
@garyfleming
People Prepping BIGGER CHANGES @garyfleming
EVERYTHING IS ROTTING... @garyfleming
...YOU CAN GET BETTER @garyfleming
THANK YOU @GARYFLEMING @garyfleming