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
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
390
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
10k
Letting Users Get On With Their Lives
cromwellryan
3
520
Collaborative APIs
cromwellryan
4
570
Sweet Elixir - Short
cromwellryan
6
720
Growing Great Teams - Codemash 2014 Lightning Talk
cromwellryan
0
510
Professional Scrum with Visual Studio 2012
cromwellryan
0
550
Avoiding Scrummerfall
cromwellryan
3
1.4k
Selenium + Specflow: ATDD for .Net
cromwellryan
2
850
Other Decks in Programming
See All in Programming
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
140
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
270
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
400
Groovy as a human and AI friendly programming language
paulk
0
180
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
870
AI Augmentation Techniques with Liberty
ivargrimstad
1
330
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
350
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.7k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
510
LLM 101
dalinaum
0
460
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Discover your Explorer Soul
emna__ayadi
2
1.3k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
It's Worth the Effort
3n
188
29k
Crafting Experiences
bethany
1
420
Exploring anti-patterns in Rails
aemeredith
4
560
The Art of Programming - Codeland 2020
erikaheidi
57
14k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
430
Utilizing Notion as your number one productivity tool
mfonobong
4
640
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]