Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Getting Feature Focused
Ryan Cromwell
October 30, 2012
Programming
2
75
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
cromwellryan
104
6.3k
cromwellryan
1
180
cromwellryan
4
210
cromwellryan
5
220
cromwellryan
0
120
cromwellryan
0
67
cromwellryan
2
610
cromwellryan
2
380
Other Decks in Programming
See All in Programming
adarapata
1
470
yasuakiomokawa
0
610
kilometer
2
260
wafuwafu13
1
160
shun_oshidari
6
2.9k
dqneo
0
140
syucream
4
1.4k
thatjeffsmith
0
1.5k
dunglas
5
5.6k
etagwerker
1
130
dnskimo
7
1.4k
marcoow
0
170
Featured
See All Featured
sachag
267
17k
marktimemedia
7
450
productmarketing
6
780
hursman
107
9.3k
reverentgeek
167
7.3k
trishagee
24
3k
afnizarnur
176
14k
sferik
613
55k
jonrohan
1021
390k
brettharned
93
3.1k
geoffreycrofte
25
1k
nonsquared
81
3.4k
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 ryan@cromwellhaus.com