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
200
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
125
8.5k
Letting Users Get On With Their Lives
cromwellryan
2
320
Collaborative APIs
cromwellryan
4
360
Sweet Elixir - Short
cromwellryan
5
370
Growing Great Teams - Codemash 2014 Lightning Talk
cromwellryan
0
270
Professional Scrum with Visual Studio 2012
cromwellryan
0
330
Avoiding Scrummerfall
cromwellryan
3
990
Selenium + Specflow: ATDD for .Net
cromwellryan
2
570
Other Decks in Programming
See All in Programming
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
190
Milestoner
bkuhlmann
1
420
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
4
480
Exploring the Implementation of “t.Run”, “t.Parallel”, and “t.Cleanup”
akarin
1
140
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
920
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
570
“Seeing Like a Programmer”—Resiliency, Limits, and Moral Hazards in Software Engineering (LambdaConf 2024)
chriskrycho
0
260
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.7k
JavaScript Closure
asoluka
0
660
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.2k
AppRouter Panel Talk
yosuke_furukawa
PRO
1
490
Sheets API使ってみた
toshi0383
2
170
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
19k
Web development in the modern age
philhawksworth
203
10k
Why Our Code Smells
bkeepers
PRO
331
56k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6.1k
Code Review Best Practice
trishagee
56
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
44k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Designing for humans not robots
tammielis
247
25k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
The Pragmatic Product Professional
lauravandoore
26
5.8k
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]