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
400
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
Perlで痩せる
yuukis
1
680
Rails産でないDBを Railsに引っ越すHACK - Omotesando.rb #110
lnit
1
160
Datadog RUM 本番導入までの道
shinter61
1
280
ReadMoreTextView
fornewid
1
410
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
200
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
370
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
240
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
360
TypeScript LSP の今までとこれから
quramy
1
500
Claude Codeの使い方
ttnyt8701
1
110
try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう
kajitack
3
510
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
110
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
KATA
mclloyd
29
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
43
2.4k
Designing for Performance
lara
609
69k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
690
Being A Developer After 40
akosma
90
590k
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.