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
Ryan Cromwell
October 30, 2012
Programming
2
290
Getting Feature Focused
Experiences build an application organized by feature rather than architecture.
Ryan Cromwell
October 30, 2012
Tweet
Share
More Decks by Ryan Cromwell
See All by Ryan Cromwell
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Letting Users Get On With Their Lives
cromwellryan
2
410
Collaborative APIs
cromwellryan
4
460
Sweet Elixir - Short
cromwellryan
6
540
Growing Great Teams - Codemash 2014 Lightning Talk
cromwellryan
0
410
Professional Scrum with Visual Studio 2012
cromwellryan
0
430
Avoiding Scrummerfall
cromwellryan
3
1.2k
Selenium + Specflow: ATDD for .Net
cromwellryan
2
740
Other Decks in Programming
See All in Programming
DataStoreをテストする
mkeeda
0
290
データベースエンジニアの仕事を楽にする。PgAssistantの紹介
nnaka2992
9
4.5k
趣味全開のAITuber開発
kokushin
0
200
PHPバージョンアップから始めるOSSコントリビュート / how2oss-contribute
dmnlk
1
1k
AIコーディングの理想と現実
tomohisa
14
14k
Memory API : Patterns, Performance et Cas d'Utilisation
josepaumard
0
130
Building Scalable Mobile Projects: Fast Builds, High Reusability and Clear Ownership
cyrilmottier
2
280
gen_statem - OTP's Unsung Hero
whatyouhide
1
200
Compose Hot Reload is here, stop re-launching your apps! (Android Makers 2025)
zsmb
1
500
AWSで雰囲気でつくる! VRChatの写真変換ピタゴラスイッチ
anatofuz
0
150
DomainException と Result 型で作る型安全なエラーハンドリング
karszawa
0
910
AI時代の開発者評価について
ayumuu
0
140
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
520
Producing Creativity
orderedlist
PRO
344
40k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Optimising Largest Contentful Paint
csswizardry
36
3.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.2k
How GitHub (no longer) Works
holman
314
140k
Facilitating Awesome Meetings
lara
54
6.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
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]