How we killed our process, technology stack, and assumptions – and survived

34

description

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.

Transcript of How we killed our process, technology stack, and assumptions – and survived

Page 1: How we killed our process, technology stack, and assumptions – and survived
Page 2: How we killed our process, technology stack, and assumptions – and survived

Jason  Lo(to  @  MeetMe  Corp.   2  

Page 3: How we killed our process, technology stack, and assumptions – and survived

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  (  =)  )  

 

Page 4: How we killed our process, technology stack, and assumptions – and survived

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  

Page 5: How we killed our process, technology stack, and assumptions – and survived

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  

Page 6: How we killed our process, technology stack, and assumptions – and survived

Jason  Lo(to  @  MeetMe  Corp.   6  

The  Project  

Page 7: How we killed our process, technology stack, and assumptions – and survived

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  

Page 8: How we killed our process, technology stack, and assumptions – and survived

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.  

 

Page 9: How we killed our process, technology stack, and assumptions – and survived

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  

Page 10: How we killed our process, technology stack, and assumptions – and survived

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  

Page 11: How we killed our process, technology stack, and assumptions – and survived

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.    

Page 12: How we killed our process, technology stack, and assumptions – and survived

Jason  Lo(to  @  MeetMe  Corp.   12  

Rule  #2:  Encourage  a  Minimal  Viable  Product  

Page 13: How we killed our process, technology stack, and assumptions – and survived

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.  

Page 14: How we killed our process, technology stack, and assumptions – and survived

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?  

Page 15: How we killed our process, technology stack, and assumptions – and survived

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  

Page 16: How we killed our process, technology stack, and assumptions – and survived

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?  

Page 17: How we killed our process, technology stack, and assumptions – and survived

Jason  Lo(to  @  MeetMe  Corp.   17  

GeVng  Lost  in  a  Changing  Process  

Page 18: How we killed our process, technology stack, and assumptions – and survived

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  

Page 19: How we killed our process, technology stack, and assumptions – and survived

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.  

Page 20: How we killed our process, technology stack, and assumptions – and survived

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  

Page 21: How we killed our process, technology stack, and assumptions – and survived

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  

Page 22: How we killed our process, technology stack, and assumptions – and survived

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.  

Page 23: How we killed our process, technology stack, and assumptions – and survived

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  

Page 24: How we killed our process, technology stack, and assumptions – and survived

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  

Page 25: How we killed our process, technology stack, and assumptions – and survived

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.  

Page 26: How we killed our process, technology stack, and assumptions – and survived

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  

Page 27: How we killed our process, technology stack, and assumptions – and survived

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  

Page 28: How we killed our process, technology stack, and assumptions – and survived

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!  

Page 29: How we killed our process, technology stack, and assumptions – and survived

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  

Page 30: How we killed our process, technology stack, and assumptions – and survived

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?  

Page 31: How we killed our process, technology stack, and assumptions – and survived

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  

Page 32: How we killed our process, technology stack, and assumptions – and survived

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.  

Page 33: How we killed our process, technology stack, and assumptions – and survived

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  

Page 34: How we killed our process, technology stack, and assumptions – and survived

Jason  Lo(to  @  MeetMe  Corp.   34  

Thank  you    

@jasonlo(to