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
Hate The Code
Search
Ian Asaff
November 14, 2012
Programming
3
390
Hate The Code
A brief commentary on how to change your engineering team's attitude about the code it writes.
Ian Asaff
November 14, 2012
Tweet
Share
Other Decks in Programming
See All in Programming
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
150
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
170
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
270
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
150
15分で学ぶDuckDBの可愛い使い方 DuckDBの最近の更新
notrogue
3
520
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
470
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
900
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
0
160
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
340
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
120
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
8
2.4k
Jakarta EE meets AI
ivargrimstad
0
410
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Practical Orchestrator
shlominoach
186
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Designing Experiences People Love
moore
140
23k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Designing for humans not robots
tammielis
250
25k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Faster Mobile Websites
deanohume
306
31k
A Tale of Four Properties
chriscoyier
158
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Transcript
Hate the Code Making code suck less Ian Asaff 9/28/2012
• Awkward teenage phase of engineering team growth • Modest
technical debt • Coding decisions based on legacy issues • Staying the course doesn't scale Where we are
We all own the code
Everyone writes janky code.
EVERYONE.
You are NOT the code you write. (your ego may
not be aware of this)
• Encourages individual ownership • Discourages collective ownership • No
feedback means easier to go off the "rails" (heh) Silo coding is bad
No feedback means slower growth as a developer...
Which means you are short-changing yourself every day.
• It's ok. • Really. • Code needs to get
beaten up. • Tough love. Let's talk trash about our code
Need to bang out a feature?
First, get the bare essentials working (MVP)
Then... throw it to the wolves
• Every developer has something to contribute • "Hey, junior
dev. Does this make sense to you?" • "Hey, senior dev. Would you have done it this way?" The takeaway is...
The next step...
Seek out criticism and feedback • “I know this isn’t
great. What can I improve about it?” • "Am I better today than I was yesterday?"
A little secret...
You aren’t coding for yourself.
You are coding for the poor bastard coming in after
you.
My last job: WTF is this shit?
Oh. I wrote this six months ago…
Our codebase is our startup
Iterate (refactor) quickly based on feedback (from other devs)
Don’t ignore pain. Dive into it. Setting up dev environment
sucks. Ruby script for installation? Test data is irreplaceable. DB dump after migrations are run? Let's make things suck less
“This code is fragile and mission critical. Don’t touch it.”
VS “This code is fragile and mission critical. Let’s refactor so it’s easy to understand and debug.” What's better?
What annoys you every day? How can you make it
suck a little less?
What about our bottom line?
There's business value here!
• “That’s X’s code. Ask X how it works.” “X
is out until Monday…” • Low bus factor • “Just this one time…” • “We need to ship this…” Technical debt is expensive
• “I think it basically works this way… Let’s dig
in a bit.” • Higher bus factor • Frequent discussion about the code Let's move toward...
Easier to understand code means...
Faster ramp-up time for new devs (more productivity → $$$)
Extending and refactoring are less this
and more this
which ultimately leads to more
ABC -- Always Be Communicating The takeaway
So where do we start?
Everyone reviews code
Be merciless with feedback but...
Don't be an ass.
Remember you are not your code.
Enjoy leveling up as a developer while increasing your value
to the business
Thanks.