Till
the
Desired
Working
So2ware
Emerges
Inten%on' Realiza%on' Feedback' Synthesis' Inten%on' Realiza%on' Feedback' Synthesis' Inten%on' Realiza%on' Feedback' Synthesis' Inten%on' Realiza%on' Feedback' Synthesis' Inten%on' Realiza%on' Feedback' Synthesis' Compile
Failed
Run
Failed
Test
Failed
Test
Passed
Enhance
Idea/Design
Test
Failed
Inten%on' Realiza%on' Feedback' Synthesis' Test
Passed
WORKING
SOFTWARE
IntenFonal
Emergent
Emergence
is
the
key
characterisOc
of
complex
systems.
In
some
sense
is
a
kind
of
Art
or
Cra-
Problem
&
Programming
Idea
Code,
Run
&
Test
Review
Outcome
Programmer
Scene
&
PainOng
Idea
Paint
Review
Outcome
Painter
Digital
Experience
Creators
Visual
Experience
Creators
Perhaps
Programming
So-ware
is
like
Jazz
Original
Dixieland
Jass
Band
Melodies
are
improvised/created
on
top
of
a
shared
Harmony
created
by
a
composer
Everybody
is
a
Composer
The
Harmony
provides
consistency
So-ware
Harmony
is
about
Conceptual
Integrity
Anywhere
you
look
in
your
system,
you
can
tell
that
the
design
is
part
of
the
same
overall
design
style,
theme,
mood
…is
about
Design
and
Style
Consistency
in
all
dimensions
of
the
system
Fed
Brooks:
“It
is
be>er
to
have
a
system...reflect
one
set
of
design
ideas,
than
to
have
one
that
contains
many
good
but
independent
and
uncoordinated
ideas”
User
interface,
technologies,
coding
styles,
naming
convenFons,
directory
structures,
classes,
components,
interfaces,
internal
and
external
behavior,
deployment…
Conceptual
Integrity
tries
to
limit
the
system
complexity
Conceptual
Integrity
simplifies
collaboraOon
when
creaOng
so-ware
The
Mythical
Man-‐Month
Conceptual
Integrity
examples
• Unix
• based
on
the
noOon
of
a
"file”
(e.g.
directories,
devices,
filesystems,
named
pipes
and
sockets
are
all
sort-‐of
files)
• Smalltalk
• "everything
is
an
object",
and
the
small
set
of
other
accompanying
principles
• SQL
• "all
data
is
in
tables",
with
keys
and
constraints
• Lisp
• "everything
is
a
list”
h>p://c2.com/cgi/wiki?ConceptualIntegrity
Achieving
Conceptual
Integrity
FredBrooks:
"Conceptual
integrity
in
turn
dictates
that
the
design
must
proceed
from
one
mind,
or
from
a
very
small
number
of
agreeing
resonant
minds"
Aristocracy
vs
Democracy?
“TradiOonal”
So-ware
Architect
architect
derives
from
the
LaOn
architectus,
which
derives
from
the
Greek
arkhitekton
(arkhi-‐,
chief
+
tekton,
builder),
i.e.,
chief
builder
So-ware
Harmonist
=
Technical
Leader
or
Development
Leader
• Keeps
Conceptual
Integrity
and
Unity
across
the
system
and
teams,
while
limiOng
complexity
• Retains
the
final
say
in
technical
disputes
or
arguments
within
the
team(s)
Small
teams
with
resonant
minds
could
not
need
an
specific
tech
leader
From
IntenOonal
to
Emerging
Initial team Agile Project Kickoff Management team Architecture team time Initial project team Prototyping team I1 I2 I3 Initial team Agile Project Kickoff Management team Architecture team time Initial project team Prototyping team I1 I2 I3 Feature 1 Team Feature2 Team Infraestructure Team I4 I5 Prototyping team • IntenOonal
harmony
(architecture)
is
explicitly
idenOfied
and
then
implemented
• Accidental
harmony
(architecture)
emerges
from
the
mulOtude
of
individual
design
decisions
that
occur
during
development,
only
a-er
which
can
we
name
that
architecture
Process Dimension Deployment ( Dimension Logical( (Dimension External Dimension Implementation Dimension Classes,'Modules,'Design'' Components,'Interfaces Use'Cases'/'User'Stories' UX'Guidelines' Run=me'Processes,'Threads'' Protocols,''InterAprocess' Communica=on' Implementa=on'Structure' and'Components' Frameworks,'Libraries' Base'Technologies,' Programming'Languages Infrastructure,'Hardware'and' Network'Topology' Data Dimension Environment Dimension Environments' Tools' Development'Process,' Methods'and'Prac=ces' Data'En==es' Data'Messages' INTENTIONAL
EMERGENT
GROWING
So-ware
Harmony(architecture)
is
Elaborated,
Built,
Used
and
Executed
Architecture=Harmony
is
created
as
set
of
subopOmal
design
decisions
that
can
be
re-‐factor
later
on
SP1 SP2 SP3 SP4 SP5 SP6 SP7 SP8 Sprint0 SP9 Building
the
Harmony
Using
Building
….. Using
IntenOonal
Emergent
IntenOonal
Emergent
The
Dilemma
Solu%on
:
Assuring
Conceptual
Integrity
via
Capacity
Alloca%on
to
architecture
=
Harmony
Source:
Dean
Leffinweel
,
h>p://scaledagileframework.com/guidance/assuring-‐architectural-‐integrity-‐via-‐capacity-‐ allocaFon/
Desired
A/ributes
of
a
So-ware
Work
High
Cohesion
each
part/element
is
narrowed
focused
in
its
primary
task
Low
Coupling
each
part
is
self-‐contained/orthogonal
achieved
thru
separaOon
of
concerns
and
encapsulaOon
Conceptual
Integrity
there
is
a
consistent
design*
and
style
across
all
so-ware
dimensions
(*)
programming
is
design
Source:
“The
Art
in
Computer
Programming”,
By
Andrew
Hunt
and
David
Thomas