Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting Feature Focused

Getting Feature Focused

Experiences build an application organized by feature rather than architecture.


Ryan Cromwell

October 30, 2012

More Decks by Ryan Cromwell

Other Decks in Programming


  1. Feature  Focused A  Be.er  Applica2on  Structure

  2. • Coder   • Agile  Coach   • Scrum.org  Trainer

    Who  am  I? Ryan  Cromwell
  3. travel  +  twins  =  crazy  person

  4. where  would  you  go  to… update  the  search  algorithm?  

    add  favorite  products?   one  click  checkout   only  show  in-­‐stock  products?
  5. I  don’t  even  like   my  mouse. My  mouse  was

      crying… omg!
  6. architecture  rant bit.ly/unclebobarch   bit.ly/screamarch

  7. • 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
  8. common  closure Classes  that  change  together  are  packaged   together.

  9. • Tasking   • Chat  (XMPP) Feature  Themes walk  the

     walk Context • Air  Force   • Old:  Thick  Client     • New:  Single  Page  App   • HTML5(ish)  +  Javascript   • Java
  10. Why  call  them  modules?   S2ll  a  lot  of  noise

    spot  the  feature?
  11. Focus Drill  into   chat  feature Focus

  12. 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
  13. what‘s  next? • Server  +  Client  side-­‐by-­‐side  (i.e.  Controllers)  

    • CSS/images   • Requirejs  +  unit  tes2ng  =  painful   • Frameworks/Tooling
  14. thanks! @cromwellryan   h.p://cromwellhaus.com   ryan@cromwellhaus.com