The Architect
Tension
Diagrams & Documents
Encapsulation & Modularity
Real Options
Architecture Options
Slide 3
Slide 3 text
The Architect
Slide 4
Slide 4 text
Doesn’t code
Covers every detail
Their word is law
Most effort up front
Slide 5
Slide 5 text
Doesn’t code
Covers every detail
Their word is law
Most effort up front
Slide 6
Slide 6 text
Vision & Expertise
Guides evolution
and technical direction
Creates and investigates
options for implementation
✓
Slide 7
Slide 7 text
Tension
Slide 8
Slide 8 text
Predictability vs
reacting to change
Independence vs
duplication of effort
Slide 9
Slide 9 text
BDUF Pains:
Over-Engineering
Unnecessary Features
Premature Commitment
Slide 10
Slide 10 text
‘Integrated Problem Solving’
1. Understanding and solving the
problem happen at the same time
2. Information released early
3. Information released frequently
4. Information flows in 2 directions
5. Prefer face-to-face over documents
Slide 11
Slide 11 text
Refactoring is continuous
local design improvement
Enable easy sharing
(knowledge & code)
Slide 12
Slide 12 text
Build for today
Architect for next week
(not next year)
Do you have all of these
on your project?
Are they all up to date?
Do people actually use them?
Slide 16
Slide 16 text
Unused documentation is
at best a waste
Consider the need behind
the documentation
Slide 17
Slide 17 text
Tests are definitely needed
Documentation may be needed
Tests = Documentation?
Slide 18
Slide 18 text
Appropriate documentation
Documentation should be
valuable to someone
Documents don’t come first
Slide 19
Slide 19 text
Diagram as formal as needed
Diagram as detailed as needed
Diagrams are a snapshot
Slide 20
Slide 20 text
Encapsulation
& Modularity
Slide 21
Slide 21 text
Minimise responsibilities
Hide the internal
implementation details
Expose the behaviours
Slide 22
Slide 22 text
From OOP to SOA
Applications
Services
Components
Classes
Slide 23
Slide 23 text
‚
EXAMPLE
Slide 24
Slide 24 text
Typical MVC App
Slide 25
Slide 25 text
Getting
harder
to grow
Slide 26
Slide 26 text
Decompose
into services
Slide 27
Slide 27 text
Extend easily
Reuse features
Slide 28
Slide 28 text
Real Options
Slide 29
Slide 29 text
An Option is the right,
but not obligation
to do something
Slide 30
Slide 30 text
Options are used to defer
commitment until more
is known about the situation
Slide 31
Slide 31 text
Real
Options
Options
have
value
Options
expire
Never
commit
early
unless
you
know
why
Slide 32
Slide 32 text
‚
EXAMPLE
Slide 33
Slide 33 text
Working
in
London
on-‐site
full
time
Need
accommodation
this
week
Apartment
lease
might
be
signed
on
Monday
Apartment
lease
might
fall
through
Slide 34
Slide 34 text
Could
pay
for
the
hotel
for
the
whole
week
We
won’t
know
until
Monday
if
lease
is
signed
Need
to
create
an
option
Slide 35
Slide 35 text
We
want
to
delay
the
decision
until
we
have
more
knowledge
So
we
pay
a
deposit
for
a
hotel
reservation
for
the
week
If
lease
signed,
we
cancel
If
not,
we
stay
in
hotel
Slide 36
Slide 36 text
For
the
price
of
the
option,
we
can
delay
the
decision
and
make
a
more
informed
choice
Slide 37
Slide 37 text
The
option
has
a
value
The
option
will
expire
Don’t
commit
until
we
know
for
sure
about
the
lease
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
Architecture Options
Slide 40
Slide 40 text
Use Real Options to reduce risk
in technical decision making
Slide 41
Slide 41 text
Identify areas of risk
Look for big assumptions
Make options to defer decisions
Slide 42
Slide 42 text
‚
EXAMPLE
Slide 43
Slide 43 text
MongoDB or MySQL?
Assume or delay work?
Slide 44
Slide 44 text
Defer the decision & keep
working on concrete needs
Slide 45
Slide 45 text
Commit later when more
knowledge has been gained
Slide 46
Slide 46 text
Value: later decision based on
more knowledge
Expiry: may eventually need
to have persistent storage
Avoid early commitment:
unless there is a real need