Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Artur Hebda "Code is not important...or is it?"
Search
Railsware
June 03, 2018
Technology
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Artur Hebda "Code is not important...or is it?"
Artur's presentation at RubyC-2018
Railsware
June 03, 2018
Transcript
68 slides
Code is not important… Artur Hebda Railsware Labs or is
it?
Context of code Product story Building vision Growing structure Pro
t-d i n me k }
We’re not hired to just write code.
Image: https://www.washingtontimes.com Not available for 6 hours +6500 calls discarded
11 mln people affected Reason : counter overflow 911 outage in USA
“Software engineers don’t understand the problem they’re trying to solve,
and don’t care to. Nancy Leveson, Software-safety expert, MIT
Code always exists within a product context.
Customers pay for the value product delivers to them.
“It’s great to rewrite your code and make it cleaner
and by the third time it’ll actually be pretty. But that’s not the point. Joel Spolsky
We’re hired to build & ship products.
Context of code Product story Building vision Growing structure Pro
t-d i n me k }
Motivation behind OrgMap What is going on?
Q : How it?
Q : How il s i on ?
Q : How su e?
Q : Wha t e t p e? +
+ + +
Seems strange… right? We used existing services / hack our
way through We leveraged product development through experiments We closed feature loops ... And eventually built our own product
“I don't know how to do this, so let's do
it the simplest way and we'll figure out.
Image: http://www.freeimages.co.uk Experiment to build something people want.
We have $50k of tech debt We embraced it to
learn a lot through experiments over the years Image: http://xarxanet.org
Context of code Product story Building vision Growing structure Pro
t-d i n me k }
Building vision constantly
Image: http://www.orlandospencer.com Product is a never consistent set of features
Split product into feature components
Have as much vision as you can Gather product group
Short-term / mid-term / long-term Based on current knowledge For each component
Short-term http://www.donsmaps.com/images29/middleearthlarg elargerstill.jpg Image: http://www.donsmaps.com
Make educated guess I think it would be good to
do...
Validate hypothesis with experiments A C B D
Natural tendency to predict further direction A C B D
E?
Refine vision A C B D Wrong Correct
A C B D Wrong Correct inflexibility Refine vision
Mid-term http://www.donsmaps.com/images29/middleearthlarg elargerstill.jpg Image: http://www.donsmaps.com
Customers ask for a feature I really need that.
“If I had asked people what they wanted, they would
have said: faster horses... Henry Ford
Q : Res t u s em t ?
Combined features
Demo - measure what is changing I like it, but
maybe if…
Long-term http://www.donsmaps.com/images29/middleearthlarg elargerstill.jpg Image: http://www.donsmaps.com
Actual customer validated stuff Usage ~ long-term
Context of code Product story Building vision Growing structure Pro
t-d i n me k }
Grow supporting structure Image: https://www.autodesk.com
“Good code (...) provides highest value for the lowest cost.
99 Bottles of OOP by Sandi Metz and Katrina Owen
Assess tech compliance to vision Gather tech leadership group Look
at architecture for each feature component See how it complies / supports vision
Increase code quality and structure rigidity as you head towards
long-term
Build experimental structure for short-term vision Get answers Acquire knowledge
Image: http://freeimages.com
Improve structure for mid-term vision Clean up after experiments Reflect
acquired knowledge Image: https://www.bonsaiempire.com
Build rigid structure for long-term vision Image: https://www.maxpixel.net Stabilize and
scale
Maintain reasonable code quality for everything Low quality will slow
you down Code without tests is harder to refactor Automate code quality assessment Automate processes - CI & CD
99 Bottles of OOP by S. Metz & K. Owen
https://www.sandimetz.com/99bottles/
Practice thorough PR reviews Do self-review before asking someone else
Assess what cannot be automated yet Review like you would have to continue working on that right away
Reduce tech debt for the vision one step at a
time
What is tech debt? Not only TODO and FIXME Rem
r i l il ?
Make tech debt transparent Image: http://stocksmasters.com
Prioritise tech debt 5.times { why? }
Handle tech debt from backlog
“Make the change easy (warning: this may be hard), then
make the easy change. Kent Beck
Boy Scout Rule - now or later?
Do not refactor without vision
“You should not reach for abstractions (...) resist them until
they absolutely insist upon being created. 99 Bottles of OOP by Sandi Metz and Katrina Owen
Give yourself enough flexibility
Have strategic discussions Rails? React?
Summary Code exists in a product context, hence supports it
Use product vision as a guidance for code Prefer understandability and let abstractions emerge Address inflexibility where it matters
One more thing...
So… is code important or not?
So… is code important or not? As important as value
it creates.
Thank you! Questions? Follow @railsware
Thank you! Questions? Follow @railsware
Thank you! Questions? Follow @railsware
More Decks by Railsware
See All by Railsware
Калыс Осмонов: "B-Tree vs. LSM-Tree: какую систему БД использовать для следующего проекта"
railsware
0
540
Sergii Boiko: "Runtime Model of Ruby, JavaScript, Erlang, and Other Popular Languages"
railsware
0
260
Outsourcing - is a Dead End. Strategic steps on how to evolve your business model.
railsware
1
950
Artur Hebda: Product Engineer - a perfect technical executor for cross-functional teams
railsware
0
470
"How to structure your input so it becomes a manageable scope?" - workshop by Artur Hebda
railsware
0
1.1k
How to Extract Tabular Data from Scanned PDF's?
railsware
0
5.4k
Runtime Model of Ruby, JavaScript, Erlang, and other popular languages
railsware
0
240
BDD style testing for Swift with Sleipnir
railsware
2
290
Building up the product: who you need and when
railsware
0
680
Other Decks in Technology
See All in Technology
AIが会計業務の伴走者に。 マネーフォワード クラウド会計MCPサーバーで実現するAI前提の新しい業務プロセス
nobitabashi
0
120
うちなーぐちが認識できるなら、秋田弁もいけるはず!? Amazon Transcribe方言チューニング検証
ryouto715
1
170
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
190
速くなるほど、深く考える AI時代のQAに学ぶ
kobayashiyorimitsu
0
190
Intro to Kiro (One agent, every surface) | Kiro: Zero to Hero 01
inariku
PRO
2
120
プロダクションコードにおける encoding/json から encoding/json/v2 へのスムーズな移行
sansantech
PRO
1
410
契約書SaaSにAIエージェントを組み込む
sansantech
PRO
0
100
Linuxネットワークスタック進化の軌跡: 過去10年の歩みと最新トレンド
orimanabu
3
610
思考過程から秘密が漏れる:Amazon Bedrock上のKimi K3を5つの方法で攻めたら、25回中22回漏洩した話
yama3133
1
160
Bots in Kiro Crew (One point of contact for ongoing work) | Kiro: Zero to Hero 12
inariku
PRO
1
130
属人化したISMS運用をGitHubとAIで仕組み化した1年間の記録
sioncojp
4
2.6k
Kiro Web 入門 (サインインから、頼み方、PR の受け取り、クラウドの決まりまで) | 目指せ Kiro マスター 04
inariku
PRO
2
110
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Typedesign – Prime Four
hannesfritz
42
3.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
470
GitHub's CSS Performance
jonrohan
1033
470k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
Six Lessons from altMBA
skipperchong
29
4.6k