Getting Feature Focused

Getting Feature Focused

Experiences build an application organized by feature rather than architecture.

32de0bd2ba869609d26fd052a4622778?s=128

Ryan Cromwell

October 30, 2012
Tweet

Transcript

  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.

      h.p://bit.ly/PrincOOD  
  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