Jason Lo is giving a presentation to discuss lessons learned from rewriting an existing product profile page at MeetMe Corp. The presentation covers 5 rules for successful product changes and rewrites: 1) Develop one product at a time, 2) Encourage a minimal viable product, 3) Don't adopt an "Agile" process blindly, 4) Recognize that you are not the center of the world and involve the whole team, and 5) Don't make things up as you go along. The profile page rewrite project involved changing various technologies and processes while maintaining legacy features and systems.
3. Jason
Lo(to
§ Applica(on
Architect
@
MeetMe
§ jasonlo(to
everywhere!
§ Spent
10
years
doing
credit
card
processing
(
PCI
=(
)
§ Now
I’m
in
social
(
=)
)
Jason
Lo(to
@
MeetMe
Corp.
3
4. So
why
are
we
here?
Learn
how
and
when
to
change
your
§ Processes
§ Technologies
When
you
have
to
change
your
§ Product
Jason
Lo(to
@
MeetMe
Corp.
4
5. Goals
§ Learn
ways
to
successfully
apply
change
§ Save
yourself
pain
and
suffering
§ Spot
warning
signs
before
they
become
a
problem
§ Dodge
bullets
Jason
Lo(to
@
MeetMe
Corp.
5
7. New
Profile
Page
Overview
§ 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
Jason
Lo(to
@
MeetMe
Corp.
7
8. Rule
#1:
Develop
One
Product
At
A
Time
A
new
product
is
just
1
new
product.
A
rewrite
is
2
products.
Jason
Lo(to
@
MeetMe
Corp.
8
9. Samuel
L.
Jackson
said
it
best…
“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
Jason
Lo(to
@
MeetMe
Corp.
9
10. Rule
#1:
Develop
One
Product
At
A
Time
“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
Jason
Lo(to
@
MeetMe
Corp.
10
11. Rule
#1:
Develop
One
Product
At
A
Time
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.
Jason
Lo(to
@
MeetMe
Corp.
11
12. Rule
#2:
Encourage
a
Minimal
Viable
Product
Jason
Lo(to
@
MeetMe
Corp.
12
13. The
Not-‐So
Minimal
Viable
Product
So,
you’ve
been
given
a
spec
for
an
“MVP”,
which
apparently
stands
for
a
Mountain
of
Vexing†
Paper.
†
Thank
you
Thesaurus
for
helping
me
come
up
with
vexing
so
I
could
make
a
joke
with
MVP
using
Mountain
and
Paper
13
14. Rule
#2:
Encourage
a
Minimal
Viable
Product
If
you
want
all
the
features
of
your
old
product,
why
are
you
rewri(ng
it?
Jason
Lo(to
@
MeetMe
Corp.
14
15. Rule
#2:
Encourage
a
Minimal
Viable
Product
Less
is
More
More
opportunity
to
adapt
to
new
processes
More
(me
to
learn
new
technologies
Jason
Lo(to
@
MeetMe
Corp.
15
16. Rule
#2:
Encourage
a
Minimal
Viable
Product
Need
help
pruning
features?
If
a
feature
takes
1-‐month
to
build,
would
you
delay
product
launch
to
get
it
in?
Jason
Lo(to
@
MeetMe
Corp.
16
17. GeVng
Lost
in
a
Changing
Process
Jason
Lo(to
@
MeetMe
Corp.
17
18. Rule
#3:
Don’t
Adopt
an
“Agile”
Process
“If
ader
15
minutes,
you
are
s(ll
in
your
standup,
here’s
your
sign.”
–
if
Jeff
Foxworthy
was
a
programmer
Jason
Lo(to
@
MeetMe
Corp.
18
19. Rule
#3:
Don’t
Adopt
an
“Agile”
Process
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.
Jason
Lo(to
@
MeetMe
Corp.
19
20. Rule
#3:
Don’t
Adopt
an
“Agile”
Process
Don’t
throw
out
JIRA
Have
a
reason
for
change
Mee(ng
my
contractual
obliga(ons
=)
20
21. Rule
#4:
You
Aren’t
the
Center
of
the
World
“You
are
not
special.
You
are
not
a
beau(ful
or
unique
snowflake.”
-‐
Tyler
Durden,
Fight
Club
Jason
Lo(to
@
MeetMe
Corp.
21
22. Rule
#4:
You
Aren’t
the
Center
of
the
World
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.
Jason
Lo(to
@
MeetMe
Corp.
22
23. Rule
#4:
You
Aren’t
the
Center
of
the
World
Involve
the
team
from
the
beginning.
Share
responsibili(es.
Automate
Everything
&
DRY
Jason
Lo(to
@
MeetMe
Corp.
23
24. Rule
#5:
Don’t
make
it
up
as
you
go
along
“We’ll
make
it
up
as
we
go
along.”
-‐
Me,
at
some
point
before
the
project
started
Jason
Lo(to
@
MeetMe
Corp.
24
25. Rule
#5:
Don’t
make
it
up
as
you
go
along
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.
Jason
Lo(to
@
MeetMe
Corp.
25
26. Rule
#5:
Don’t
make
it
up
as
you
go
along
“There’s
never
enough
(me
to
do
it
right,
but
there’s
always
enough
(me
to
do
it
over.”
–
Jack
Bergman
Jason
Lo(to
@
MeetMe
Corp.
26
27. Changes
in
Technology
“Some
people,
when
confronted
with
a
problem,
think
"I
know,
I'll
use
regular
expressions."
Now
they
have
two
problems.”
-‐
Jason
Lo(to
@
MeetMe
Corp.
Jamie
Zawinski
27
28. Rule
#6:
Treat
Technology
Change
as
an
Op(miza(on
Your
exis(ng
stack
got
you
there
It’s
not
old,
it’s
bagle-‐tested!
Jason
Lo(to
@
MeetMe
Corp.
28
29. Rule
#6:
Treat
Technology
Change
as
an
Op(miza(on
Validate
Changes
You
do
it
for
Product
You
do
it
for
Process
You
do
it
for
Code
We
should
do
it
for
Technology
Choices
Jason
Lo(to
@
MeetMe
Corp.
29
30. Rule
#6:
Treat
Technology
Change
as
an
Op(miza(on
“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?
Jason
Lo(to
@
MeetMe
Corp.
30
31. Rule
#7:
Prefer
Proven
Technologies,
Seek
New
Solu(ons
“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
Jason
Lo(to
@
MeetMe
Corp.
31
32. Rule
#7:
Prefer
Proven
Technologies,
Seek
New
Solu(ons
What
problem
does
the
new
solu(on
solve
that
the
proven
technology
not?
Is
that
problem
real?
Adopt
new
technology
with
small
steps.
Jason
Lo(to
@
MeetMe
Corp.
32
33. Rules
Recap
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
Jason
Lo(to
@
MeetMe
Corp.
33
34. Thank
you
@jasonlo(to
Jason
Lo(to
@
MeetMe
Corp.
34
35. Rate this Talk
How We Killed Our Process, Technology Stack,
and Assumptions - and Survived
Text code below to 22333
or visit http://bit.ly/1azpIF5
MEH = 1S
NOT BAD = 1T
PRETTY GOOD = 1U
AWESOME = 1V
To join this session, send text 136888 to 22333