Slide 1

Slide 1 text

Feature  Focused A  Be.er  Applica2on  Structure

Slide 2

Slide 2 text

• Coder   • Agile  Coach   • Scrum.org  Trainer Who  am  I? Ryan  Cromwell

Slide 3

Slide 3 text

travel  +  twins  =  crazy  person

Slide 4

Slide 4 text

where  would  you  go  to… update  the  search  algorithm?   add  favorite  products?   one  click  checkout   only  show  in-­‐stock  products?

Slide 5

Slide 5 text

I  don’t  even  like   my  mouse. My  mouse  was   crying… omg!

Slide 6

Slide 6 text

architecture  rant bit.ly/unclebobarch   bit.ly/screamarch

Slide 7

Slide 7 text

• 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

Slide 8

Slide 8 text

common  closure Classes  that  change  together  are  packaged   together.   h.p://bit.ly/PrincOOD  

Slide 9

Slide 9 text

• Tasking   • Chat  (XMPP) Feature  Themes walk  the  walk Context • Air  Force   • Old:  Thick  Client     • New:  Single  Page  App   • HTML5(ish)  +  Javascript   • Java

Slide 10

Slide 10 text

Why  call  them  modules?   S2ll  a  lot  of  noise spot  the  feature?

Slide 11

Slide 11 text

Focus Drill  into   chat  feature Focus

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

what‘s  next? • Server  +  Client  side-­‐by-­‐side  (i.e.  Controllers)   • CSS/images   • Requirejs  +  unit  tes2ng  =  painful   • Frameworks/Tooling

Slide 14

Slide 14 text

thanks! @cromwellryan   h.p://cromwellhaus.com   [email protected]