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

How We Killed Our Process, Technology Stack, and Assumptions — and Survived

How We Killed Our Process, Technology Stack, and Assumptions — and Survived

How do you introduce new ways of building products without stopping development? MeetMe.com's Jason Lotito will reveal the challenges his team encountered while changing their development process, including the perils of adding new technology to the stack. He'll also describe how the team moved from a slower development process to a faster, more efficient one — practically overnight.

Jason Lotito

October 09, 2013
Tweet

More Decks by Jason Lotito

Other Decks in Technology

Transcript

  1. Jason  Lo(to   Jason  Lo(to  @  MeetMe  Corp.   3

      §  Applica(on  Architect  @  MeetMe   §  jasonlo(to  everywhere!   §  Spent  10  years  doing  credit  card   processing  (  PCI  =(  )   §  Now  I’m  in  social  (  =)  )    
  2. So  why  are  we  here?   Jason  Lo(to  @  MeetMe

     Corp.   4   Learn  how  and  when  to  change  your   §  Processes   §  Technologies   When  you  have  to  change  your   §  Product  
  3. Goals   Jason  Lo(to  @  MeetMe  Corp.   5  

    §  Learn  ways  to  successfully  apply  change   §  Save  yourself  pain  and  suffering   §  Spot  warning  signs  before  they  become  a  problem   §  Dodge  bullets  
  4. New  Profile  Page  Overview   Jason  Lo(to  @  MeetMe  Corp.

      7   §  Exis(ng  Product:  Profile   §  One  of  the  most  popular  pages   §  Gateway  to  a  user   §  Lots  of  things  happening   §  Lots  of  technology   –  PHP,  PostgreSQL,  RabbitMQ,   JavaScript  libraries,  messaging   system   –  3rd  party  adver(sing  dependencies,   tracking  systems   –  Lots  of  legacy  stats,  events,  products   s(ll  in  use  
  5. Rule  #1:  Develop  One  Product  At  A  Time   Jason

     Lo(to  @  MeetMe  Corp.   8   A  new  product  is  just  1  new  product.   A  rewrite  is  2  products.    
  6. Samuel  L.  Jackson  said  it  best…   Jason  Lo(to  @

     MeetMe  Corp.   9   “We  have  all  the  problems  of  a   major  theme  park  and  a  major   zoo,  and  the  computers  aren’t   even  on  their  feet  yet.”     –  Dr.  John  Arnold,  Jurassic  Park  
  7. Rule  #1:  Develop  One  Product  At  A  Time   Jason

     Lo(to  @  MeetMe  Corp.   10   “They  did  it  by  making  the  single  worst  strategic  mistake     that  any  sodware  company  can  make:  They  decided  to   rewrite  the  code  from  scratch.”     –  Joel  Spolsky  on  Netscape  
  8. Rule  #1:  Develop  One  Product  At  A  Time   Jason

     Lo(to  @  MeetMe  Corp.   11   Some(mes  you  need  to  rewrite  because  you  are  adop(ng  new   technology  for  a  new  plaeorm  or  performance  reasons.     Your  ins(nct  should  be  to  reuse  code.    
  9. Jason  Lo(to  @  MeetMe  Corp.   12   Rule  #2:

     Encourage  a  Minimal  Viable  Product  
  10. The  Not-­‐So  Minimal   Viable  Product   †  Thank  you

     Thesaurus  for  helping  me  come  up  with  vexing  so  I  could  make  a  joke  with  MVP  using  Mountain  and  Paper   13   So,  you’ve  been  given  a  spec  for   an  “MVP”,  which  apparently   stands  for  a  Mountain  of   Vexing†  Paper.  
  11. Rule  #2:  Encourage  a  Minimal  Viable  Product   Jason  Lo(to

     @  MeetMe  Corp.   14   If  you  want  all  the  features  of  your  old   product,  why  are  you  rewri(ng  it?  
  12. Rule  #2:  Encourage  a  Minimal  Viable  Product   Jason  Lo(to

     @  MeetMe  Corp.   15   Less  is  More   More  opportunity  to  adapt  to  new  processes   More  (me  to  learn  new  technologies  
  13. Rule  #2:  Encourage  a  Minimal  Viable  Product   Jason  Lo(to

     @  MeetMe  Corp.   16   Need  help  pruning  features?   If  a  feature  takes  1-­‐month  to  build,     would  you  delay  product  launch  to  get  it  in?  
  14. Rule  #3:  Don’t  Adopt  an  “Agile”  Process   Jason  Lo(to

     @  MeetMe  Corp.   18   “If  ader  15  minutes,     you  are  s(ll  in  your  standup,   here’s  your  sign.”  –  if  Jeff  Foxworthy  was  a   programmer  
  15. Rule  #3:  Don’t  Adopt  an  “Agile”  Process   Jason  Lo(to

     @  MeetMe  Corp.   19   Agile  has  real  meaning!   You  can’t  just  make  parts  of  the   process  up  as  you  go  along.   You  do  that  when  you  walk  blindly.  
  16. Rule  #3:  Don’t  Adopt  an  “Agile”  Process   Mee(ng  my

     contractual  obliga(ons  =)   20   Don’t  throw   out  Jira     Have  a  reason  for  change  
  17. Rule  #4:  You  Aren’t  the  Center  of  the  World  

    Jason  Lo(to  @  MeetMe  Corp.   21   “You  are  not  special.  You   are  not  a  beau(ful  or   unique  snowflake.”   -­‐  Tyler  Durden,  Fight  Club  
  18. Rule  #4:  You  Aren’t  the  Center  of  the  World  

    Jason  Lo(to  @  MeetMe  Corp.   22   If  you  are  crea(ng  process  alone…   Without  QA,  project  managers,  product  owners…   You  will  forget  things.     And  you  now  own  something  else,  adding  even  more  to  your  workload.  
  19. Rule  #4:  You  Aren’t  the  Center  of  the  World  

    Jason  Lo(to  @  MeetMe  Corp.   23   Involve  the  team  from  the  beginning.     Share  responsibili(es.     Automate  Everything  &  DRY  
  20. Rule  #5:  Don’t  make  it  up  as  you  go  along

      Jason  Lo(to  @  MeetMe  Corp.   24   “We’ll  make  it  up  as  we  go  along.”   -­‐  Me,  at  some  point  before  the  project  started  
  21. Rule  #5:  Don’t  make  it  up  as  you  go  along

      Jason  Lo(to  @  MeetMe  Corp.   25   A  process  should  mean  less  work.   A  new  process  is  like  a  new  product.   Crea(ng  a  new  process  violates  rule  #1.   Develop  one  product  at  a  (me.  
  22. Rule  #5:  Don’t  make  it  up  as  you  go  along

      Jason  Lo(to  @  MeetMe  Corp.   26   “There’s  never  enough  (me  to  do  it   right,  but  there’s  always  enough   (me  to  do  it  over.”     –  Jack  Bergman  
  23. Jason  Lo(to  @  MeetMe  Corp.   27   Changes  in

     Technology   “Some  people,  when  confronted  with  a  problem,  think  "I  know,  I'll  use  regular   expressions."  Now  they  have  two  problems.”   -­‐  Jamie  Zawinski  
  24. Rule  #6:  Treat  Technology  Change  as  an  Op(miza(on   Jason

     Lo(to  @  MeetMe  Corp.   28   Your  exis(ng  stack  got  you  there   It’s  not  old,  it’s  baele-­‐tested!  
  25. Rule  #6:  Treat  Technology  Change  as  an  Op(miza(on   Jason

     Lo(to  @  MeetMe  Corp.   29   Validate  Changes   You  do  it  for  Product   You  do  it  for  Process   You  do  it  for  Code     We  should  do  it  for     Technology  Choices  
  26. Rule  #6:  Treat  Technology  Change  as  an  Op(miza(on   Jason

     Lo(to  @  MeetMe  Corp.   30   “We  should  forget  about  small  efficiencies,  say  about   97%  of  the  Fme:  premature  op6miza6on  is  the  root  of   all  evil”  –  Donald  Knuth,  or  Tony  Hoare,  or  not?  
  27. Rule  #7:  Prefer  Proven  Technologies,  Seek  New  Solu(ons   Jason

     Lo(to  @  MeetMe  Corp.   31   “Before  adop(ng  new  technology,  Toyota   will  go  to  great  lengths  to  analyze  the  impact   it  may  have  on  exis(ng  processes.”   -­‐  Jeffrey  Liker,  The  Toyota  Way  
  28. Rule  #7:  Prefer  Proven  Technologies,  Seek  New  Solu(ons   Jason

     Lo(to  @  MeetMe  Corp.   32   What  problem  does  the  new  solu(on  solve  that   the  proven  technology  not?     Is  that  problem  real?     Adopt  new  technology  with  small  steps.  
  29. Rules  Recap   Jason  Lo(to  @  MeetMe  Corp.   33

      1. Develop  one  product  at  a  (me   2. Encourage  a  Minimal  Viable  Product   3. Don’t  adopt  an  “agile”  process   4. You  aren’t  the  center  of  the  world   5. Don’t  make  it  up  as  you  go  along   6. Treat  technology  changes  as  an  op(miza(on   7. Prefer  proven  technologies,  seek  new  solu(ons