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
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
1.9k
CSC305 Lecture 10
javiergs
PRO
0
320
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
230
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
830
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
200
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
47k
Developer Joy - The New Paradigm
hollycummins
1
380
EMこそClaude Codeでコード調査しよう
shibayu36
0
490
外接に惑わされない自システムの処理時間SLIをOpenTelemetryで実現した話
kotaro7750
0
130
オープンソースソフトウェアへの解像度🔬
utam0k
18
3.2k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
610
React Nativeならぬ"Vue Native"が実現するかも?_新世代マルチプラットフォーム開発フレームワークのLynxとLynxのVue.js対応を追ってみよう_Vue Lynx
yut0naga1_fa
2
1.9k
Featured
See All Featured
Navigating Team Friction
lara
190
15k
Done Done
chrislema
185
16k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
The Pragmatic Product Professional
lauravandoore
36
7k
Facilitating Awesome Meetings
lara
57
6.6k
Six Lessons from altMBA
skipperchong
29
4k
Code Review Best Practice
trishagee
72
19k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
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.