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
Software Is A Mess And I Feel Fine
Search
Alan Stevens
October 09, 2015
Technology
92
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Software Is A Mess And I Feel Fine
Alan Stevens
October 09, 2015
More Decks by Alan Stevens
See All by Alan Stevens
Values Drive Development
alanstevens
1
180
My Prayer As I Leave You
alanstevens
1
120
Distributed Version Control: A Guide For the Perplexed
alanstevens
1
140
My Creed
alanstevens
0
96
Leveling Up: Assuming Technical Leadership
alanstevens
0
290
Seven Lessons in Personal Marketing I Learned From Pickup Artists
alanstevens
0
1.2k
Manage Complexity With Agility
alanstevens
3
300
Better Is The Only Way Forward
alanstevens
1
120
Does your code tell a story?
alanstevens
2
300
Other Decks in Technology
See All in Technology
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
420
kaonavi Tech Night#1
kaonavi
0
110
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
420
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
5.2k
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
270
AIが実装を自走する時代の認知負債との戦い
lycorptech_jp
PRO
1
390
世界、断片、モデル。そして理解
ardbeg1958
1
130
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
9
4k
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
240
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.9k
AICoEでAIネイティブ組織への進化
yukiogawa
0
200
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
430
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Chasing Engaging Ingredients in Design
codingconduct
0
240
Abbi's Birthday
coloredviolet
3
8.7k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Into the Great Unknown - MozCon
thekraken
41
2.6k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Google's AI Overviews - The New Search
badams
0
1.1k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
530
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Transcript
Software Is A Mess And I Feel Fine H. Alan
Stevens
Beauty is the ultimate defense against complexity. David Gelernter
The vast majority of production code is a mess.
The production code that is not a mess is akin
to a statistical anomaly or a rounding error.
Messy code is: Code that is difficult to change in
unexpected ways
Clean code is: Code that can change in unexpected ways
with minimal effort
Technical Debt?
There is no such thing as legacy code.
There are two kinds of code: 0. Production Code 1.
Abandoned Code
Successful software: 0. Delights Users 1. Makes money
Building the right thing matters more than building it right.
It doesn’t matter how well you build the wrong thing.
BACKGROUND
All Projects 1 mess 2 mess 3 mess 4 clean
5 mess 6 clean 7 mess 8 mess 9 mess 10 clean 11 mess 12 clean 13 clean 14 mess 15 clean 16 mess 17 clean 18 mess 19 mess 20 mess 21 clean 22 mess 23 clean
Messy Projects vs. CleanProjects 61% 39%
1 mess existing 2 mess existing 3 mess existing 4
clean new 5 mess existing 6 clean new 7 mess existing 8 mess existing 9 mess existing 10 clean new 11 mess existing 12 clean new 13 clean new 14 mess existing 15 clean new 16 mess existing 17 clean new 18 mess existing 19 mess existing 20 mess existing 21 clean new 22 mess existing 23 clean new All Projects With Status
Existing projects that were a mess. 100%
Most production code is a mess.
Messy code is the rule, not the exception
Code is a mess and I feel fine.
CAUSES
Messy code is a failure of design.
Where should this code go?
Failure to ask this question leads directly to a mess.
Don’t Repeat Yourself & Separation of Concerns
Separation of Concerns
None
None
D RY Don’t Repeat Yourself
See it once: do it See it twice: notice it
See it a third time: Abstract It! The Rule of Three
Is the descent into a mess inevitable?
Good enough?
Skill is not enough.
Lack of skill is no crime.
Compassion
COPING
When you find yourself stuck in a hole, stop digging.
Embrace the suck!
Don’t rewrite anything, at least not yet.
Things You Should Never Do Part I bit.ly/1dhQr8g
Compromise?
Compromise is not capitulation. Chris Christie
Optimalist
Our goal is progress, not perfection.
The Boy Scout Principle: Leave things better than you found
them.
Rabbit Hunting
That way lies madness.
CORRECTION
Gartner Hype Cycle Source: Jeremy Kemp
The real goal of the methodologies is to sell books,
not to actually solve anybody's problem. Joel Spolsky
Crazy pills!
“You’re process is batshit insane!”
Squeeze the code!
1. Shorten the release cycle
2. Continuous Integration
3. Pair Programming
4. Unit Testing
Go rogue!
CONCLUSION
You’re code is a mess. So is mine. So what?
Mastery is not the goal. Mastery is the process.
Messy code is a failure of design.
Beauty is the ultimate defense against complexity. David Gelernter