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
Getting Feature Focused
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryan Cromwell
October 30, 2012
Programming
360
2
Share
Getting Feature Focused
Experiences build an application organized by feature rather than architecture.
Ryan Cromwell
October 30, 2012
More Decks by Ryan Cromwell
See All by Ryan Cromwell
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Letting Users Get On With Their Lives
cromwellryan
3
490
Collaborative APIs
cromwellryan
4
530
Sweet Elixir - Short
cromwellryan
6
680
Growing Great Teams - Codemash 2014 Lightning Talk
cromwellryan
0
460
Professional Scrum with Visual Studio 2012
cromwellryan
0
500
Avoiding Scrummerfall
cromwellryan
3
1.3k
Selenium + Specflow: ATDD for .Net
cromwellryan
2
830
Other Decks in Programming
See All in Programming
分析エージェント精度向上における データアナリストの役割
oura_shoya
0
130
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
240
色即是空、空即是色、データサイエンス
kamoneggi
1
200
Modding RubyKaigi for Myself
yui_knk
0
510
Oxlintのカスタムルールの現況
syumai
5
730
GitHub Copilot CLIのいいところ
htkym
2
1.1k
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
150
inferと仲良くなる10分間
ryokatsuse
1
260
デフォルト運用のCodeRabbit、1年で何が変わったか / How CodeRabbit Changed Our Code Review in 1 Year
bake0937
1
110
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
3.2k
横断組織出身のQAEがインプロセスQAEでつまずいたこと・活かせたこと
ty89
0
420
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
6
1.2k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Agile that works and the tools we love
rasmusluckow
331
21k
Chasing Engaging Ingredients in Design
codingconduct
0
200
The browser strikes back
jonoalderson
0
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
A better future with KSS
kneath
240
18k
Automating Front-end Workflow
addyosmani
1370
210k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
200
It's Worth the Effort
3n
188
29k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
240
Deep Space Network (abreviated)
tonyrice
0
150
Transcript
Feature Focused A Be.er Applica2on Structure
• Coder • Agile Coach • Scrum.org Trainer
Who am I? Ryan Cromwell
travel + twins = crazy person
where would you go to… update the search algorithm?
add favorite products? one click checkout only show in-‐stock products?
I don’t even like my mouse. My mouse was
crying… omg!
architecture rant bit.ly/unclebobarch bit.ly/screamarch
• Release Reuse • Common Closure • Common
Reuse • Acyclic Dependencies • Stable Dependencies • Stable Abstrac2ons Forgo%en SOLID principals What you hear about • Single Responsibility • Open/Closed • Liskov Subs2tu2on • Interface Segrega2on • Dependency Inversion
common closure Classes that change together are packaged together.
h.p://bit.ly/PrincOOD
• Tasking • Chat (XMPP) Feature Themes walk the
walk Context • Air Force • Old: Thick Client • New: Single Page App • HTML5(ish) + Javascript • Java
Why call them modules? S2ll a lot of noise
spot the feature?
Focus Drill into chat feature Focus
other effects • Conven2ons Within Features • Responsibility Viola2ons
Obvious • Ramp up • Small, Simple Interfeature Collabora2on “Ah consistency, the path to simplicity and the bane of innova6on. Choose wisely” ~ me, on twi<er
what‘s next? • Server + Client side-‐by-‐side (i.e. Controllers)
• CSS/images • Requirejs + unit tes2ng = painful • Frameworks/Tooling
thanks! @cromwellryan h.p://cromwellhaus.com
[email protected]