Dealing
with
So.ware
Development
Ruben
Gonzalez
Blanco
[email protected];d.es
Telefonica
Digital
Product
Development
and
Innova;on
By
being
aware
of
so.ware
Agenda
1. Raising
Awareness
2. Understanding
So.ware
Development
3. Dealing
Effec;vely
with
So.ware
Following
are
a
set
of
personal
opinions
and
understandings
about
so.ware
development
and
so.ware
engineering
profession.
The
purpose
of
this
presenta;on
is
just
sharing
those
not
convincing
you
or
changing
your
mind.
DISCLAIMER
Cra.ing
or
Engineering?
So.ware
Development
seems
to
be
closer
to
Cra.ing
and
Ar;s;c
work
rather
than
pure
Engineering
work….
…but
some
good
prac;ces
of
Engineering
disciplines
can
s;ll
be
applied.
Cra.
or
Art?
Just
a
maPer
of
genius
and
talent
So.ware
code
wriPen
by
humans
can
have
“beauty”
in
the
way
is
wriPen,
run,
structured
and
how
collaborate/
interact
between
its
parts
Both
Itera;ve
and
Incremental
Itera;mental
• To
find
out
“what”
and
“how”
• To
improve
the
System
• To
release
func;onality
incrementally
• To
gradually
add
parts
to
the
System
when
“what”
and
“how”
are
known
From
Jeff
PaPon
:
hPp://www.agileproductdesign.com/blog/dont_know_what_i_want.html
ITERATIVE
INCREMENTAL
So.ware
emerges
and
grows
con;nuously
along
the
process
of
crea;on
(itera;ve
+
incremental)
System
“Specs”
Architecture
So#ware
System
Emergence
is
the
key
characteris;c
of
complex
systems.
Idea
Need
Problem
Inten;onal
Emergent
Requires
Understanding
“What”
and
“How”
at
mul;ple
levels
of
detail
What
How
What
How
What
How
User
System
Component
What
How
What
How
What
How
Domain
Team
Individuals
MulCple
Levels
of
IteraCmental
Cycles
MulCple
Disciplines
So.ware
Developers
work
at
the
highest
level
of
detail
and
complexity
Problem
Technical
SoluCon
User
Space
Level
of
Detail
So.ware
Space
Developers
work
here
Work
in
small
Short
Steps
• Each
Cycle
Delivering
“Working”
So.ware
– Measure
of
Progress
=
Working
So.ware
• Each
Cycle
Embraces
the
Change
naturally
Inten;on
Working
So.ware
IT1
IT2
Feedback
Team
Cycles
or
Sprints
(1-‐4
weeks)
Value
Driven
Synthesis
• New
Features
• Changes
• Enhancements
Adapt
IT3
• New
Features
• Changes
• Enhancements
Feedback
Adapt
Feedback
Adapt
Incremental
+
Itera;ve
Development
Cycles
=
IteraCmental
Cycles
Individuals
Cycles
(minutes,
hours,
day)
Be
Value
Driven
SOURCE
:
DSDM
BasedFrom
Dean
Leffingwell
Fixed
Scope
Time
Resources
Time
Scope
Plan
Driven
Value
Driven
The
Plan
creates
cost/ schedule
es1mates
feature
intent
&
commitment
to
deliver
the
max
value
Resources
Fixed
EsCmated
IntenConal
&
Max
Possible
Blend
a
Mul;ple
Disciplines
in
a
Team
Collabora;ng
together
Domain
Experts
Ux
Designers
Business
Analysts
Product
Managers
Developers
Testers
System
Engineers
Deployment
Engineers
Architects
Human
Factors
Users
Foster
Open
Communica;ons
and
Collabora;ons
Simplify
Essen;al
Complexity
Diminish
Accidental
Complexity*
EssenCal
complexity
is
caused
by
the
problem
to
be
solved,
and
nothing
can
remove
it.
Represents
the
difficulty
inherent
in
any
problem.
Accidental
complexity
grows
from
the
things
we
feel
we
must
build
to
mi;gate
essen;al
complexity.
Relates
to
problems
that
we
create
on
our
own
and
which
can
be
fixed.
*By
Neal
Ford
in
“97
things
every
architect
should
know”.
Cra.smanship
Manifesto
As
aspiring
So.ware
Cra.smen
we
are
raising
the
bar
of
professional
so.ware
development
by
prac;cing
it
and
helping
others
learn
the
cra..
Through
this
work
we
have
come
to
value:
That
is,
in
pursuit
of
the
items
on
the
le.
we
have
found
the
items
on
the
right
to
be
indispensable.
Not
only
working
so.ware,
but
also
well-‐cra#ed
so#ware
Not
only
responding
to
change,
but
also
steadily
adding
value
Not
only
individuals
and
interac;ons,
but
also
a
community
of
professionals
Not
only
customer
collabora;on,
but
also
producCve
partnerships
hPp://manifesto.so.warecra.smanship.org/