Guerrilla programming
• This
talk
is
about
a
pa$ern.
• It
is
not
about
design
paAerns.
• It’s
about
how
our
industry
(“so#ware
engineering”)
moves
• Problems
go
through
three
stages:
• Discovery
• Experimenta9on
• Synthesis
• For
example,
speaking
of
the
Hollywood
image
of
hackers...
Warning
• The
following
material
is
probably
not
right
for
your
case.
• It’s
right
for
some
people,
in
some
specific
situa9ons
and
at
some
specific
9mes.
• Object
oriented
analysis
• Find
the
objects
• Organize
the
objects
• Describe
how
the
objects
interact
• Define
the
behavior
of
the
objects
• Rela9onal
data
analysis
• Find
the
en99tes
• Normaliza9on
&
schema
• Queries
• Indexes
• Constraints
OOP
is
about
taming
complexity
through
modeling,
but
we
have
not
mastered
this
yet,
possibly
because
we
have
difficulty
dis9nguishing
real
and
accidental
complexity.
I
believe
that
to
make
further
progress
we
must
focus
on
change
and
how
OOP
can
facilitate
change.
A#er
all
these
years,
we
are
s9ll
in
the
early
days
of
OOP
and
understanding
what
it
has
to
offer
us.
Oscar
Nierstrasz
[Banquet
speech
given
at
ECOOP
2010.
Maribor,
June
24,
2010]
“Amazon is on record as making changes to production every 11.6 seconds on average in May of 2011. Facebook releases to production twice a day. Many Google services see releases multiple times a week, and almost everything in Google is developed on mainline.” Jez Humble - The Case for Continuous Delivery hAp://www.thoughtworks.com/insights/blog/case-‐con9nuous-‐delivery
“SQL
databases
are
fundamentally
non-‐scalable,
and
there
is
no
magical
pixie
dust
that
we,
or
anyone,
can
sprinkle
on
them
to
suddenly
make
them
scale.”
Adam
Wiggins
-‐
SQL
Databases
Don't
Scale
hAp://adam.herokuapp.com/past/2009/7/6/sql_databases_dont_scale/
Agile Manifesto
• Individuals
and
interac9ons
over
processes
and
tools
• Working
so#ware
over
comprehensive
documenta9on
• Customer
collabora9on
over
contract
nego9a9on
• Responding
to
change
over
following
a
plan