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.
3. 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
(
=)
)
4. 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
5. 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
7. 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
8. 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.
9. 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
10. 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
11. 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.
12. Jason
Lo(to
@
MeetMe
Corp.
12
Rule
#2:
Encourage
a
Minimal
Viable
Product
13. 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.
14. 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?
15. 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
16. 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?
17. Jason
Lo(to
@
MeetMe
Corp.
17
GeVng
Lost
in
a
Changing
Process
18. 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
19. 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.
20. 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
21. 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
22. 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.
23. 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
24. 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
25. 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.
26. 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
27. 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
28. 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!
29. 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
30. 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?
31. 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
32. 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.
33. 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