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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.2k
存在論的プログラミング: 時間と存在を記述する
koriym
3
290
Claude Codeログ基盤の構築
giginet
PRO
7
3.5k
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
500
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
530
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
150
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
370
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
410
PHPで TLSのプロトコルを実装してみる
higaki_program
0
360
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
840
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
220
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
87
A designer walks into a library…
pauljervisheath
210
24k
Embracing the Ebb and Flow
colly
88
5k
Un-Boring Meetings
codingconduct
0
230
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
160
Code Reviewing Like a Champion
maltzj
528
40k
ラッコキーワード サービス紹介資料
rakko
1
2.7M
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
220
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
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.