SlideShare une entreprise Scribd logo
1  sur  124
Télécharger pour lire hors ligne
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Design Visualization: Smoke and Mirrors
Ruth Malan
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Imagine this slide is
M.C. Escher’s Day and Night
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Where To
• Architecture
• Visual (in) Design
• Design Intention:Reflection
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Smoke (Intention) and
Mirrors (Reflection)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Intention:Reflection
• INTENTION, n. The mind's sense of the prevalence
of one set of influences over another set; an effect
whose cause is the imminence, immediate or
remote, of the performance of an involuntary act.
• REFLECTION, n. An action of the mind whereby we
obtain a clearer view of our relation to the things of
yesterday and are able to avoid the perils that we
shall not again encounter.
• Ambrose Bierce (1842-1914)
Source: Devil’s Dictionary
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecture: W(h)at?
Software architecture refers to the high level
structures of a software system, the discipline of
creating such structures, and the documentation of
these structures. It is the set of structures needed to
reason about the software system. Each structure
comprises software elements, relations among them,
and properties of both elements and relations.
— wikipedia/Clements et al
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
System: What?
“A system is an
interconnected set of
elements that is
coherently organized in a
way that achieves
something”
-- Donella Meadows
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecture: What?
Software architecture refers to the high level
structures of a software system, the discipline of
creating such structures, and the documentation of
these structures. It is the set of structures needed to
reason about the software system. Each structure
comprises software elements, relations among them,
and properties of both elements and relations.
-- wikipedia/Clements et al
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
"All architecture is design but
not all design is architecture.
Architecture represents the
significant design decisions
that shape a system, where
significant is measured by cost
of change."
— Grady Booch, blog post,
March 2, 2006
Architecture: Again?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
from Olaf Zimmermann’s presentation at SATURN 2010
Architecture: Decisions!
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
"All architecture is design but
not all design is architecture.
Architecture represents the
significant design decisions
that shape a system, where
significant is measured by cost
of change."
-- Grady Booch, blog post,
March 2, 2006
Architecture: Again?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
"Everyone designs who
devises courses of action
aimed at changing existing
situations into preferred
ones."
-- Herbert Simon
Design?
Image source: Pittsburg Post Gazette Archives
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image source: Pittsburg Post Gazette Archives
@SoftArchConf #SoftwareArchitect2015
"The engineer, and more
generally the designer, is
concerned with how things
ought to be - how they
ought to be in order to
attain goals, and to
function."
-- Herbert Simon
Design?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
We design to get more
what we* want.
* For some value of we (tbd)
Design?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
"All architecture is design but
not all design is architecture.
Architecture represents the
significant design decisions that
shape a system, where
significant is measured by cost
of change."
-- @Grady_Booch, blog post,
March 2, 2006
Architecture: Again?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecturally Significant?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
@SoftArchConf #SoftwareArchitect2015
Is this the part where we get to talk
about Technical Wisdom?!
[insert obligatory Yoda image]
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image source: zoranphoto.deviantart.com
@SoftArchConf #SoftwareArchitect2015
Is this the part where we get to talk
about Technical Wisdom?!
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Source: HandbookOfSoftwareArchitecture.com
@SoftArchConf #SoftwareArchitect2015
"the architecture of a system
is the naming of the most
significant design decisions
that shape a system, where
we measure significant by cost
of change and by impact upon
use."
– @Grady_Booch
Architecturally Significant?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Decisions that shape a system
• give form to the system
• set direction; constrain; bring
integrity, consistency and unifying
aesthetic to the system
Cost of change
Impact upon use
Architecturally Significant?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Structurally significant
• Organizing structure
• Architecturally significant
mechanisms
• Structural integrity and sustainability
Strategically significant
• game shapers and game changers
Architecturally Significant?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecture
Architecture enables and
constrains
Minimalist
— Dana Bredemeyer
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Appeal to Authority
“The legitimate object of
government is to do for a
community of people
whatever they need to
have done, but can not do
at all, or can not so well
do, for themselves – in
their separate, and
individual capacities.”
– Abraham Lincoln
Image source: wikipedia
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecture
Decisions that must be made
from a system perspective
• across boundaries
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Intentional and Emergent
source: HandbookOfSoftwareArchitecture.com
@SoftArchConf #SoftwareArchitect2015
“Every software-intensive
system has an architecture.
In some cases that
architecture is intentional,
while in others it is
accidental. Most of the time
it is both, born of the
consequences of a myriad of
design decisions made by its
architects and its developers
over the lifetime of a system,
from its inception through its
evolution.” – @Grady_Booch
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image source: ibm.com
@SoftArchConf #SoftwareArchitect2015
Visual Design
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
An Engineer!
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Investigating and developing theory:
structure and dynamics
Leonardo Da Vinci Notebooks
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Capturing and exploring designs of
mechanisms
Leonardo Da Vinci Notebooks
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Copying
(a good thing)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Inventions —
By Thinking!
Image source: wikipedia.
@SoftArchConf #SoftwareArchitect2015
Among the inventions
credited with passing
into general practical
use are
• the strut bridge,
• the automated bobbin
winder,
• the rolling mill,
• the machine for testing the
tensile strength of wire and
• the lens-grinding machine
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Sketching
• To observe (more attentively)
• To study, think, reason,
to puzzle things out
• To record
• to think longer, harder
• to show, to teach
• To invent, to combine,
to make (new) connections
• To test ideas
• thought experiments
• To persuade
Leonardo Da Vinci Notebooks
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Eye Pencil
“The art of seeing has to be learned”
– Marguerite Duras
“Powers of observation can be
developed by cultivating the habit of
watching things with an active,
enquiring mind.” – WIB Beveridge
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Anatomy
“First of all, as a sculptor, engineer,
architect, he had an intuitive
understanding of form — when he
dissected a body, he could understand in a
very fluid way how the different parts of
the body fit together, worked together.
And then, having made that
understanding, as a supreme draftsman,
he was able to record his observations and
discoveries in drawings of such lucidity,
he’s able to get across the form, the
structure to the viewer”
-- Martin Clayton, Leonardo da Vinci:
Anatomist
Image source: Royal Collection © Her Majesty Queen Elizabeth II
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Visualization in Medicine Today
Brain Scans: peer inside
your head – while you’re
alive
Image source: Oxford Centre for Functional MRI of the Brain, Oxford University.
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Visualization in Medicine Today
Brain Scans: peer inside
your head – while you’re
alive and thinking!
[This fMRI scan shows the areas of
the brain active when you tell a
lie.]
Image source: http://www.sciencemuseum.org.uk/.
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Visualization in Medicine Today
Brain Scans: revealing
the brain’s pathways
Image source: Tyszka, et al. The Journal of Neuroscience 2011.
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image source: wikpedia
@SoftArchConf #SoftwareArchitect2015
Visual processing
Design for Visual Processing
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Source: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
@SoftArchConf #SoftwareArchitect2015
code is visual
Visual Design
;-)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Code is design!
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
"An airplane can contain some
six million lines of software
code
equivalent to a three-story-
high pile of books"
— Source: IBM Rational
Code as Design
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
“The code is the truth”
— Sam Guckenheim
“The code is the truth, but not
the whole truth”
— Grady Booch
3 stories, and it’s not even the
whole truth?!
Code as Design
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Hard to wrap our arms around
quite so much truth
- understanding
- communication
- change
- interactions
Code as Truth
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Missing key truths
- context
- big picture
- rationale
- alternatives (ruled out)
System properties
- emergent from relationships
- context dependent
Code is
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Code is design! But…
“we need good top level design”
www.developerdotstar.com/mag/articles/reeves_13yearslater.html
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Why We Model
• To abstract
• To reason
• To show
• To test
• To document
• To transform
To address wicked problems:
To deal with complexity
-- buffer overflow!
To work together
-- shared thought-space
To communicate
-- explain, defend, preserve
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Abstractions
“As programmers we deal
with abstractions all the time
and we have to invent them in
order to solve our problems”
Michael Feathers
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Cohesion
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Parts Flying in Formation
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
System: What?
“A system is an
interconnected set of
elements that is
coherently organized in a
way that achieves
something”
-- Donella Meadows
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Visual: Good for
Exploring Relationships
• Explore and express
relationships
• Structural
• Causal
• Temporal
• Make connections
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
At Heart of Architecture:
structure and relationships
Posit structure
Explore behavior
Revise structure
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
At Heart of Architecture:
structure and relationships
Posit
structure
Explore
behavior
Revise structure
Patterns
Metaphors
Experience
Existing stuff
Sequence,
Activity,
Communication
Diagrams,
State charts,
Ad hoc diagrams
How will this work?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
•Cohesive responsibilities (separation of concerns)
•Balanced distribution of responsibilities
Posit responsibilities
Refine as explore behavior
and different views
Patterns
Metaphors
Experience
Existing stuff
Factor and Refactor
“The responsibility of architecture is the
architecture of responsibility.”
-- Jan van Til
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecture: What?
Software architecture refers to the high level
structures of a software system, the discipline of
creating such structures, and the documentation of
these structures. It is the set of structures needed to
reason about the software system. Each structure
comprises software elements, relations among them,
and properties of both elements and relations.
-- wikipedia/Clements et al
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image source: stylonica.com
Technical Wisdom
Can haz?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Technical Wisdom
“A change of perspective is
worth 80 IQ points”
– Alan Kay
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
(Change) Perspective
http://www.xkcd.com/32/
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image source: stylonica.com
Programming
as Theory Building
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Design Arguments
“The Federalist Papers are
arguments that support
different parts of the design
of the Constitution. And the
Constitution itself is a set of
principles for building a very
complex dynamic structure
that should last for
centuries”
– Alan Kay
Source: Powerful Ideas Need Love Too!
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
“it seems to have been reserved to the
people of this country, [..], to decide the
important question, whether societies of
men are really capable or not, of
establishing good government from
reflection and choice, or whether they
are forever destined to depend, for their
political constitutions, on accident and
force.” Federalist No.1
Reflection and Choice
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Mechanisms?
The Federalist Papers,
No. 51 addresses
• checks and balances
• separation of powers
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
How does it even?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
LMAX Disruptor Mechanism
Source: Martin Fowler
http://martinfowler.com/articles/lmax.html
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Cockburn’s
Hexagonal Architecture
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image: Ferguson, Engineering and the Mind’s Eye
@SoftArchConf #SoftwareArchitect2015
Coincidence?
ABATIS, n. [1.] Rubbish in front of a
fort, to prevent the rubbish outside
from molesting the rubbish inside.
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
68
What do you do when you don’t
want a fox in your hen house?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
69
Watchdog
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Mechanism Designs
• Federalist Papers
• Da Vinci Notebooks
• Design Patterns
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecture is super hella important
decisions
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Technical Wisdom
Can haz?
Image source: stylonica.com
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image source: Pittsburg Post Gazette Archives
@SoftArchConf #SoftwareArchitect2015
"The engineer, and more
generally the designer, is
concerned with how things
ought to be - how they ought
to be in order
to attain goals, and
to function."
-- Herbert Simon
How things ought to be
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Technical Wisdom
More??
Image source: stylonica.com
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
“I confess that there are several
parts of this constitution which I do
not at present approve, but I am
not sure I shall never approve
them: For having lived long, I have
experienced many instances of
being obliged by better
information, or fuller
consideration, to change opinions
even on important subjects, which I
once thought right, but found to be
otherwise. It is therefore that the
older I grow, the more apt I am to
doubt my own judgment, and to
pay more respect to the judgment
of others.”
Benjamin Franklin
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Technical Wisdom
Please, oh please?
Image source: stylonica.com
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
“If you haven’t thought of
three possibilities, you
haven’t thought enough.”
– @JerryWeinberg
Rule of Three
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Extraordinary Moment
“What, at this extraordinary
moment, is the most
important thing for me to
be thinking about?”
— Buckminster Fuller
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
v
v v v
What
(system view)
How
What
(user view)
SYSTEM ARCHITECTURE
STRUCTURAL
BEHAVIORAL
CAPABILITIES
CONTEXT
Why How well
FUNCTIONAL QUALITIES
System Design Intent (what should be)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Design: Structure
• Elements and relationships
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Structure
“box and line”
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Structure
• Relation to host topology
• containers (Simon
Brown)
• deployment view in UML
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Behavior
Ad hoc
UML-ish
UML
• sequence
• communication
• activity
• timing
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
v
v v v
What
(system view)
How
What
(user view)
SYSTEM ARCHITECTURE
STRUCTURAL
BEHAVIORAL
CAPABILITIES
CONTEXT
Why How well
FUNCTIONAL QUALITIES
System Design Intent (what should be)
mechanisms
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Extraordinary Moment
“What, at this extraordinary
moment, is the most
important thing for me to be
thinking about?”
— Buckminster Fuller
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
System Design Intent
(what should be)
System Design Reflection
(what is)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Roundtrip Back to Roundtrip
Engineering?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Image: Michele Lanza, presentation on slideshare titled “Of Code and Change”
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Perhaps we were too literal
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
System Design Intent
(what should be)
System Design Reflection
(what is)
What’s architecturally significant??
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
System Design Intent
(what should be)
System Design Reflection
(what is)
But… what’s this??
What’s architecturally significant?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
v
v v v
What
(system view)
How
What
(user view)
SYSTEM ARCHITECTURE
STRUCTURAL
BEHAVIORAL
CAPABILITIES
CONTEXT
Why How well
FUNCTIONAL QUALITIES
System Design Intent (what should be)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Design Across
Context System-in-Context
(use, dev, ops)
System
(Ecosystem)
Architecture
structure and
mechanisms
“Requirements”
design of system
capabilities
Strategy
ecosystem interventions
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Code Wins
“Code wins arguments”
– Mark Zuckerberg
but are all arguments worth
having?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Experiment — on paper!
Sketch prototypes and
pretendotypes
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
But soon, and then often
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Imagine this slide is
M.C. Escher’s Magic Mirror
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
System Design Intent
(what should be)
System Design Reflection
(what is)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Cobbler’s Children
• Does the software
cobbler’s children
have any shoes, or are
they still in
“research”?
100
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Visualization
Shiny!
• but what’s it
good for?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
102
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
What How Who
SYSTEM
STATIC DYNAMIC
ORGANIZATION
semantic
dependency
hierarchy
Elements and relationships
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Nest Circles Layout
Flare on Flare
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Dependency Structure Matrix
Lattix
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Dependency Map
Structure101
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
What How Who
SYSTEM
STATIC DYNAMIC
ORGANIZATION
What is where?
Elements and relationships
How does it work?
Dependencies/coupling?
Coherence?
Behavior
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
How Well
Structural qualities Behavioral qualities Team qualities
(POLY)METRIC
/DASHBOARD
(reflective)
SIMULATIONS
/PROJECTIONS
(predictive)
experiment predict plan
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
How Well
Structural qualities Behavioral qualities Team qualities
(POLY)METRIC
(reflective)
SIMULATIONS
/PROJECTIONS
(predictive) experiment predict plan
City Map: spot structural
anomalies like “god” classes
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
How Well
Structural qualities Behavioral qualities Team qualities
DASHBOARD
(reflective)
SIMULATIONS
/PROJECTIONS
(predictive)
experiment predict plan
TuningFork: spot “hot spots” in
performance analysis
XRadar: spot anomalies in code
quality across packages
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
When
POINT-IN
-TIME
OVER TIME
Point-in-time versus Evolution
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
When
POINT-IN
-TIME
OVER TIME
Point-in-time versus Evolution: System Structure
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
When
POINT-IN
-TIME
AGE
-SENSITIVE
Point-in-time versus Evolution: System Structure
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
When
POINT-IN
-TIME
OVER TIME
Code Map
markers: Who is
working on what
right now
ConcernLinesConc
erns
over time
Point-in-time versus Evolution: Organization
DeveloperRivers
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Locating Tech Debt
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Code Looks Like…
a Pollock?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Architecturally Significant, Yes
“Developing a sense for
code going awry is not a
luxury.”
-- Yves Reynhout
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
It has a name?
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Illustration: @1957 Disney
@SoftArchConf #SoftwareArchitect2015
Code as a Crime Scene
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Illustration: @1957 Disney
@SoftArchConf #SoftwareArchitect2015
Code as a Crime Scene
hot spot analysis
— complexity
— change
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
@SoftArchConf #SoftwareArchitect2015
Smells?
Sensory Journeys (2009-10)
project by the artist Christian Nold
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Richard I. Cook
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
System Design Intent
(what should be)
System Design Reflection
(what is)
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
Join the conversation on Twitter:
@SoftArchConf #SoftwareArchitect2015
What is visualization in design good
for?

Contenu connexe

Tendances

The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)Asanka Abeysinghe
 
BitCraft 2017 general presentation
BitCraft 2017 general presentationBitCraft 2017 general presentation
BitCraft 2017 general presentationMichal Wasilewski
 
The Vision of Computer Vision: The bold promise of teaching computers to unde...
The Vision of Computer Vision: The bold promise of teaching computers to unde...The Vision of Computer Vision: The bold promise of teaching computers to unde...
The Vision of Computer Vision: The bold promise of teaching computers to unde...ITCamp
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Creating Web and Mobile Apps with Angular 2 - George Saadeh
Creating Web and Mobile Apps with Angular 2 - George SaadehCreating Web and Mobile Apps with Angular 2 - George Saadeh
Creating Web and Mobile Apps with Angular 2 - George SaadehITCamp
 
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...apidays
 
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...apidays
 
apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...
apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...
apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...apidays
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura
 Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura
Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-IuraITCamp
 
DrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeDrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeAlejandro Moreno
 
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...apidays
 
Building Powerful Applications with AngularJS 2 and TypeScript - David Giard
Building Powerful Applications with AngularJS 2 and TypeScript - David GiardBuilding Powerful Applications with AngularJS 2 and TypeScript - David Giard
Building Powerful Applications with AngularJS 2 and TypeScript - David GiardITCamp
 
The Great Lakes: How to Approach a Big Data Implementation
The Great Lakes: How to Approach a Big Data ImplementationThe Great Lakes: How to Approach a Big Data Implementation
The Great Lakes: How to Approach a Big Data ImplementationInside Analysis
 
System Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration MondaySystem Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration MondayBizTalk360
 
apidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuseapidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuseapidays
 
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglas
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglasapidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglas
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglasapidays
 
Case Study: Creating a DocOps/Docs-As-Code DevPortal for C3.ai
Case Study: Creating a DocOps/Docs-As-Code DevPortal for C3.aiCase Study: Creating a DocOps/Docs-As-Code DevPortal for C3.ai
Case Study: Creating a DocOps/Docs-As-Code DevPortal for C3.aiPronovix
 

Tendances (20)

The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)
 
BitCraft 2017 general presentation
BitCraft 2017 general presentationBitCraft 2017 general presentation
BitCraft 2017 general presentation
 
The Vision of Computer Vision: The bold promise of teaching computers to unde...
The Vision of Computer Vision: The bold promise of teaching computers to unde...The Vision of Computer Vision: The bold promise of teaching computers to unde...
The Vision of Computer Vision: The bold promise of teaching computers to unde...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Creating Web and Mobile Apps with Angular 2 - George Saadeh
Creating Web and Mobile Apps with Angular 2 - George SaadehCreating Web and Mobile Apps with Angular 2 - George Saadeh
Creating Web and Mobile Apps with Angular 2 - George Saadeh
 
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
apidays LIVE New York 2021 - Designing API's: Less Data is More! by Damir Svr...
 
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...
 
apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...
apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...
apidays LIVE Australia 2021 - Re-thinking Software Architecture Documentation...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura
 Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura
Migrating to Continuous Delivery with TFS 2017 - Liviu Mandras-Iura
 
E031202024029
E031202024029E031202024029
E031202024029
 
DrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeDrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low Code
 
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
apidays LIVE Australia 2021 - Tracing across your distributed process boundar...
 
Building Powerful Applications with AngularJS 2 and TypeScript - David Giard
Building Powerful Applications with AngularJS 2 and TypeScript - David GiardBuilding Powerful Applications with AngularJS 2 and TypeScript - David Giard
Building Powerful Applications with AngularJS 2 and TypeScript - David Giard
 
The Great Lakes: How to Approach a Big Data Implementation
The Great Lakes: How to Approach a Big Data ImplementationThe Great Lakes: How to Approach a Big Data Implementation
The Great Lakes: How to Approach a Big Data Implementation
 
System Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration MondaySystem Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration Monday
 
apidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuseapidays LIVE Paris - GraphQL meshes by Jens Neuse
apidays LIVE Paris - GraphQL meshes by Jens Neuse
 
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglas
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglasapidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglas
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglas
 
Case Study: Creating a DocOps/Docs-As-Code DevPortal for C3.ai
Case Study: Creating a DocOps/Docs-As-Code DevPortal for C3.aiCase Study: Creating a DocOps/Docs-As-Code DevPortal for C3.ai
Case Study: Creating a DocOps/Docs-As-Code DevPortal for C3.ai
 

Similaire à Design Visualization: Smoke and Mirrors (slides)

Mobile application architecture
Mobile application architectureMobile application architecture
Mobile application architectureChristos Matskas
 
Web components - The Future is Here
Web components - The Future is HereWeb components - The Future is Here
Web components - The Future is HereGil Fink
 
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...Kai Wähner
 
Building the Developer Experience Right - May The Force of API Be With You
Building the Developer Experience Right - May The Force of API Be With YouBuilding the Developer Experience Right - May The Force of API Be With You
Building the Developer Experience Right - May The Force of API Be With YouNabayan Roy
 
Kubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to ProductionKubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to ProductionRosemary Wang
 
Twitter Presentation: #APIConSF
Twitter Presentation: #APIConSFTwitter Presentation: #APIConSF
Twitter Presentation: #APIConSFRyan Choi
 
Modern Monitoring - devopsdays Cuba
Modern Monitoring - devopsdays CubaModern Monitoring - devopsdays Cuba
Modern Monitoring - devopsdays Cubabridgetkromhout
 
Mobile and Wearable Technologies in the Travel Industry
Mobile and Wearable Technologies in the Travel IndustryMobile and Wearable Technologies in the Travel Industry
Mobile and Wearable Technologies in the Travel IndustryAndrea Picchi
 
Rapid Product Design in the Wild - ProductTank
Rapid Product Design in the Wild - ProductTankRapid Product Design in the Wild - ProductTank
Rapid Product Design in the Wild - ProductTankMichele Ide-Smith
 
Building Responsible AI - London Oct 2019
Building Responsible AI - London Oct 2019Building Responsible AI - London Oct 2019
Building Responsible AI - London Oct 2019Ariadna Font Llitjos
 
Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02
Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02
Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02Naciones Unidas
 
Rapid Product Design in the Wild - Agile Iceland
Rapid Product Design in the Wild - Agile IcelandRapid Product Design in the Wild - Agile Iceland
Rapid Product Design in the Wild - Agile IcelandMichele Ide-Smith
 
Agile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse DuttileAgile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse DuttileFelice Pescatore
 
Design meets presentation November 2013
Design meets presentation November 2013Design meets presentation November 2013
Design meets presentation November 2013laurawesley
 
IoT Day 2016: Cloud Services for IoT Semantic Interoperability
IoT Day 2016: Cloud Services for IoT Semantic InteroperabilityIoT Day 2016: Cloud Services for IoT Semantic Interoperability
IoT Day 2016: Cloud Services for IoT Semantic InteroperabilityMark Underwood
 
LavaCon: What is Information Architecture?
LavaCon: What is Information Architecture?LavaCon: What is Information Architecture?
LavaCon: What is Information Architecture?uxhow
 
Moving Renewable Energy Embedded Systems into the Cloud
Moving Renewable Energy Embedded Systems into the CloudMoving Renewable Energy Embedded Systems into the Cloud
Moving Renewable Energy Embedded Systems into the CloudMark Heckler
 
PuppetConf track overview: Culture
PuppetConf track overview: CulturePuppetConf track overview: Culture
PuppetConf track overview: CulturePuppet
 
Semantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsSemantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsJie Bao
 

Similaire à Design Visualization: Smoke and Mirrors (slides) (20)

Mobile application architecture
Mobile application architectureMobile application architecture
Mobile application architecture
 
Web components - The Future is Here
Web components - The Future is HereWeb components - The Future is Here
Web components - The Future is Here
 
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
IoT Architectures for a Digital Twin with Apache Kafka, IoT Platforms and Mac...
 
Building the Developer Experience Right - May The Force of API Be With You
Building the Developer Experience Right - May The Force of API Be With YouBuilding the Developer Experience Right - May The Force of API Be With You
Building the Developer Experience Right - May The Force of API Be With You
 
Kubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to ProductionKubernetes: Learning from Zero to Production
Kubernetes: Learning from Zero to Production
 
Twitter Presentation: #APIConSF
Twitter Presentation: #APIConSFTwitter Presentation: #APIConSF
Twitter Presentation: #APIConSF
 
Modern Monitoring - devopsdays Cuba
Modern Monitoring - devopsdays CubaModern Monitoring - devopsdays Cuba
Modern Monitoring - devopsdays Cuba
 
Mobile and Wearable Technologies in the Travel Industry
Mobile and Wearable Technologies in the Travel IndustryMobile and Wearable Technologies in the Travel Industry
Mobile and Wearable Technologies in the Travel Industry
 
Rapid Product Design in the Wild - ProductTank
Rapid Product Design in the Wild - ProductTankRapid Product Design in the Wild - ProductTank
Rapid Product Design in the Wild - ProductTank
 
Building Responsible AI - London Oct 2019
Building Responsible AI - London Oct 2019Building Responsible AI - London Oct 2019
Building Responsible AI - London Oct 2019
 
Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02
Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02
Rapidproductdesigninthewildagileiceland 141106135407-conversion-gate02
 
Rapid Product Design in the Wild - Agile Iceland
Rapid Product Design in the Wild - Agile IcelandRapid Product Design in the Wild - Agile Iceland
Rapid Product Design in the Wild - Agile Iceland
 
Agile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse DuttileAgile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse Duttile
 
Design meets presentation November 2013
Design meets presentation November 2013Design meets presentation November 2013
Design meets presentation November 2013
 
IoT Day 2016: Cloud Services for IoT Semantic Interoperability
IoT Day 2016: Cloud Services for IoT Semantic InteroperabilityIoT Day 2016: Cloud Services for IoT Semantic Interoperability
IoT Day 2016: Cloud Services for IoT Semantic Interoperability
 
LavaCon: What is Information Architecture?
LavaCon: What is Information Architecture?LavaCon: What is Information Architecture?
LavaCon: What is Information Architecture?
 
PSFK Conference 2014 Connect The Unexpected
PSFK Conference 2014 Connect The UnexpectedPSFK Conference 2014 Connect The Unexpected
PSFK Conference 2014 Connect The Unexpected
 
Moving Renewable Energy Embedded Systems into the Cloud
Moving Renewable Energy Embedded Systems into the CloudMoving Renewable Energy Embedded Systems into the Cloud
Moving Renewable Energy Embedded Systems into the Cloud
 
PuppetConf track overview: Culture
PuppetConf track overview: CulturePuppetConf track overview: Culture
PuppetConf track overview: Culture
 
Semantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsSemantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer Apps
 

Plus de Ruth Malan

Decisions and Technical Leadership
Decisions and Technical LeadershipDecisions and Technical Leadership
Decisions and Technical LeadershipRuth Malan
 
Design Leadership presented at SATURN19
Design Leadership presented at SATURN19 Design Leadership presented at SATURN19
Design Leadership presented at SATURN19 Ruth Malan
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and ArchitectureRuth Malan
 
Software Architecture Clues
Software Architecture CluesSoftware Architecture Clues
Software Architecture CluesRuth Malan
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software ArchitectureRuth Malan
 
Visual Architecting
Visual Architecting Visual Architecting
Visual Architecting Ruth Malan
 
The Architect's Clue Bucket
The Architect's Clue BucketThe Architect's Clue Bucket
The Architect's Clue BucketRuth Malan
 

Plus de Ruth Malan (8)

Visual Design
Visual DesignVisual Design
Visual Design
 
Decisions and Technical Leadership
Decisions and Technical LeadershipDecisions and Technical Leadership
Decisions and Technical Leadership
 
Design Leadership presented at SATURN19
Design Leadership presented at SATURN19 Design Leadership presented at SATURN19
Design Leadership presented at SATURN19
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and Architecture
 
Software Architecture Clues
Software Architecture CluesSoftware Architecture Clues
Software Architecture Clues
 
Introduction to Software Architecture
Introduction to Software ArchitectureIntroduction to Software Architecture
Introduction to Software Architecture
 
Visual Architecting
Visual Architecting Visual Architecting
Visual Architecting
 
The Architect's Clue Bucket
The Architect's Clue BucketThe Architect's Clue Bucket
The Architect's Clue Bucket
 

Dernier

Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainAbdul Ahad
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 

Dernier (20)

Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 

Design Visualization: Smoke and Mirrors (slides)

  • 1. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Design Visualization: Smoke and Mirrors Ruth Malan Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015
  • 2. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Imagine this slide is M.C. Escher’s Day and Night
  • 3. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Where To • Architecture • Visual (in) Design • Design Intention:Reflection
  • 4. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Smoke (Intention) and Mirrors (Reflection)
  • 5. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Intention:Reflection • INTENTION, n. The mind's sense of the prevalence of one set of influences over another set; an effect whose cause is the imminence, immediate or remote, of the performance of an involuntary act. • REFLECTION, n. An action of the mind whereby we obtain a clearer view of our relation to the things of yesterday and are able to avoid the perils that we shall not again encounter. • Ambrose Bierce (1842-1914) Source: Devil’s Dictionary
  • 6. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecture: W(h)at? Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. It is the set of structures needed to reason about the software system. Each structure comprises software elements, relations among them, and properties of both elements and relations. — wikipedia/Clements et al
  • 7. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 System: What? “A system is an interconnected set of elements that is coherently organized in a way that achieves something” -- Donella Meadows
  • 8. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecture: What? Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. It is the set of structures needed to reason about the software system. Each structure comprises software elements, relations among them, and properties of both elements and relations. -- wikipedia/Clements et al
  • 9. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 "All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change." — Grady Booch, blog post, March 2, 2006 Architecture: Again?
  • 10. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 from Olaf Zimmermann’s presentation at SATURN 2010 Architecture: Decisions!
  • 11. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 "All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change." -- Grady Booch, blog post, March 2, 2006 Architecture: Again?
  • 12. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 "Everyone designs who devises courses of action aimed at changing existing situations into preferred ones." -- Herbert Simon Design? Image source: Pittsburg Post Gazette Archives @SoftArchConf #SoftwareArchitect2015
  • 13. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image source: Pittsburg Post Gazette Archives @SoftArchConf #SoftwareArchitect2015 "The engineer, and more generally the designer, is concerned with how things ought to be - how they ought to be in order to attain goals, and to function." -- Herbert Simon Design?
  • 14. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 We design to get more what we* want. * For some value of we (tbd) Design?
  • 15. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 "All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change." -- @Grady_Booch, blog post, March 2, 2006 Architecture: Again?
  • 16. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecturally Significant?
  • 17. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 @SoftArchConf #SoftwareArchitect2015 Is this the part where we get to talk about Technical Wisdom?! [insert obligatory Yoda image]
  • 18. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image source: zoranphoto.deviantart.com @SoftArchConf #SoftwareArchitect2015 Is this the part where we get to talk about Technical Wisdom?!
  • 19. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Source: HandbookOfSoftwareArchitecture.com @SoftArchConf #SoftwareArchitect2015 "the architecture of a system is the naming of the most significant design decisions that shape a system, where we measure significant by cost of change and by impact upon use." – @Grady_Booch Architecturally Significant?
  • 20. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Decisions that shape a system • give form to the system • set direction; constrain; bring integrity, consistency and unifying aesthetic to the system Cost of change Impact upon use Architecturally Significant?
  • 21. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Structurally significant • Organizing structure • Architecturally significant mechanisms • Structural integrity and sustainability Strategically significant • game shapers and game changers Architecturally Significant?
  • 22. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecture Architecture enables and constrains Minimalist — Dana Bredemeyer
  • 23. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Appeal to Authority “The legitimate object of government is to do for a community of people whatever they need to have done, but can not do at all, or can not so well do, for themselves – in their separate, and individual capacities.” – Abraham Lincoln Image source: wikipedia @SoftArchConf #SoftwareArchitect2015
  • 24. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecture Decisions that must be made from a system perspective • across boundaries
  • 25. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Intentional and Emergent source: HandbookOfSoftwareArchitecture.com @SoftArchConf #SoftwareArchitect2015 “Every software-intensive system has an architecture. In some cases that architecture is intentional, while in others it is accidental. Most of the time it is both, born of the consequences of a myriad of design decisions made by its architects and its developers over the lifetime of a system, from its inception through its evolution.” – @Grady_Booch
  • 26. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image source: ibm.com @SoftArchConf #SoftwareArchitect2015 Visual Design
  • 27. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 An Engineer!
  • 28. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Investigating and developing theory: structure and dynamics Leonardo Da Vinci Notebooks @SoftArchConf #SoftwareArchitect2015
  • 29. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Capturing and exploring designs of mechanisms Leonardo Da Vinci Notebooks @SoftArchConf #SoftwareArchitect2015
  • 30. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Copying (a good thing)
  • 31. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Inventions — By Thinking! Image source: wikipedia. @SoftArchConf #SoftwareArchitect2015 Among the inventions credited with passing into general practical use are • the strut bridge, • the automated bobbin winder, • the rolling mill, • the machine for testing the tensile strength of wire and • the lens-grinding machine
  • 32. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Sketching • To observe (more attentively) • To study, think, reason, to puzzle things out • To record • to think longer, harder • to show, to teach • To invent, to combine, to make (new) connections • To test ideas • thought experiments • To persuade Leonardo Da Vinci Notebooks @SoftArchConf #SoftwareArchitect2015
  • 33. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Eye Pencil “The art of seeing has to be learned” – Marguerite Duras “Powers of observation can be developed by cultivating the habit of watching things with an active, enquiring mind.” – WIB Beveridge
  • 34. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Anatomy “First of all, as a sculptor, engineer, architect, he had an intuitive understanding of form — when he dissected a body, he could understand in a very fluid way how the different parts of the body fit together, worked together. And then, having made that understanding, as a supreme draftsman, he was able to record his observations and discoveries in drawings of such lucidity, he’s able to get across the form, the structure to the viewer” -- Martin Clayton, Leonardo da Vinci: Anatomist Image source: Royal Collection © Her Majesty Queen Elizabeth II @SoftArchConf #SoftwareArchitect2015
  • 35. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Visualization in Medicine Today Brain Scans: peer inside your head – while you’re alive Image source: Oxford Centre for Functional MRI of the Brain, Oxford University. @SoftArchConf #SoftwareArchitect2015
  • 36. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Visualization in Medicine Today Brain Scans: peer inside your head – while you’re alive and thinking! [This fMRI scan shows the areas of the brain active when you tell a lie.] Image source: http://www.sciencemuseum.org.uk/. @SoftArchConf #SoftwareArchitect2015
  • 37. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Visualization in Medicine Today Brain Scans: revealing the brain’s pathways Image source: Tyszka, et al. The Journal of Neuroscience 2011. @SoftArchConf #SoftwareArchitect2015
  • 38. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image source: wikpedia @SoftArchConf #SoftwareArchitect2015 Visual processing Design for Visual Processing
  • 39. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Source: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition @SoftArchConf #SoftwareArchitect2015 code is visual Visual Design ;-)
  • 40. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Code is design!
  • 41. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 "An airplane can contain some six million lines of software code equivalent to a three-story- high pile of books" — Source: IBM Rational Code as Design
  • 42. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 “The code is the truth” — Sam Guckenheim “The code is the truth, but not the whole truth” — Grady Booch 3 stories, and it’s not even the whole truth?! Code as Design
  • 43. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Hard to wrap our arms around quite so much truth - understanding - communication - change - interactions Code as Truth
  • 44. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Missing key truths - context - big picture - rationale - alternatives (ruled out) System properties - emergent from relationships - context dependent Code is
  • 45. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Code is design! But… “we need good top level design” www.developerdotstar.com/mag/articles/reeves_13yearslater.html
  • 46. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Why We Model • To abstract • To reason • To show • To test • To document • To transform To address wicked problems: To deal with complexity -- buffer overflow! To work together -- shared thought-space To communicate -- explain, defend, preserve
  • 47. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Abstractions “As programmers we deal with abstractions all the time and we have to invent them in order to solve our problems” Michael Feathers
  • 48. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Cohesion
  • 49. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Parts Flying in Formation
  • 50. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 System: What? “A system is an interconnected set of elements that is coherently organized in a way that achieves something” -- Donella Meadows
  • 51. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Visual: Good for Exploring Relationships • Explore and express relationships • Structural • Causal • Temporal • Make connections
  • 52. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 At Heart of Architecture: structure and relationships Posit structure Explore behavior Revise structure
  • 53. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 At Heart of Architecture: structure and relationships Posit structure Explore behavior Revise structure Patterns Metaphors Experience Existing stuff Sequence, Activity, Communication Diagrams, State charts, Ad hoc diagrams How will this work?
  • 54. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 •Cohesive responsibilities (separation of concerns) •Balanced distribution of responsibilities Posit responsibilities Refine as explore behavior and different views Patterns Metaphors Experience Existing stuff Factor and Refactor “The responsibility of architecture is the architecture of responsibility.” -- Jan van Til
  • 55. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecture: What? Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. It is the set of structures needed to reason about the software system. Each structure comprises software elements, relations among them, and properties of both elements and relations. -- wikipedia/Clements et al
  • 56. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image source: stylonica.com Technical Wisdom Can haz?
  • 57. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Technical Wisdom “A change of perspective is worth 80 IQ points” – Alan Kay
  • 58. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 (Change) Perspective http://www.xkcd.com/32/
  • 59. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image source: stylonica.com Programming as Theory Building
  • 60. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Design Arguments “The Federalist Papers are arguments that support different parts of the design of the Constitution. And the Constitution itself is a set of principles for building a very complex dynamic structure that should last for centuries” – Alan Kay Source: Powerful Ideas Need Love Too!
  • 61. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 “it seems to have been reserved to the people of this country, [..], to decide the important question, whether societies of men are really capable or not, of establishing good government from reflection and choice, or whether they are forever destined to depend, for their political constitutions, on accident and force.” Federalist No.1 Reflection and Choice
  • 62. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Mechanisms? The Federalist Papers, No. 51 addresses • checks and balances • separation of powers
  • 63. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 How does it even?
  • 64. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015
  • 65. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 LMAX Disruptor Mechanism Source: Martin Fowler http://martinfowler.com/articles/lmax.html
  • 66. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Cockburn’s Hexagonal Architecture
  • 67. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image: Ferguson, Engineering and the Mind’s Eye @SoftArchConf #SoftwareArchitect2015 Coincidence? ABATIS, n. [1.] Rubbish in front of a fort, to prevent the rubbish outside from molesting the rubbish inside.
  • 68. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 68 What do you do when you don’t want a fox in your hen house?
  • 69. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 69 Watchdog
  • 70. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Mechanism Designs • Federalist Papers • Da Vinci Notebooks • Design Patterns
  • 71. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecture is super hella important decisions
  • 72. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Technical Wisdom Can haz? Image source: stylonica.com
  • 73. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image source: Pittsburg Post Gazette Archives @SoftArchConf #SoftwareArchitect2015 "The engineer, and more generally the designer, is concerned with how things ought to be - how they ought to be in order to attain goals, and to function." -- Herbert Simon How things ought to be
  • 74. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Technical Wisdom More?? Image source: stylonica.com
  • 75. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 “I confess that there are several parts of this constitution which I do not at present approve, but I am not sure I shall never approve them: For having lived long, I have experienced many instances of being obliged by better information, or fuller consideration, to change opinions even on important subjects, which I once thought right, but found to be otherwise. It is therefore that the older I grow, the more apt I am to doubt my own judgment, and to pay more respect to the judgment of others.” Benjamin Franklin
  • 76. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Technical Wisdom Please, oh please? Image source: stylonica.com
  • 77. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 “If you haven’t thought of three possibilities, you haven’t thought enough.” – @JerryWeinberg Rule of Three
  • 78. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Extraordinary Moment “What, at this extraordinary moment, is the most important thing for me to be thinking about?” — Buckminster Fuller
  • 79. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 v v v v What (system view) How What (user view) SYSTEM ARCHITECTURE STRUCTURAL BEHAVIORAL CAPABILITIES CONTEXT Why How well FUNCTIONAL QUALITIES System Design Intent (what should be)
  • 80. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Design: Structure • Elements and relationships
  • 81. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Structure “box and line”
  • 82. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Structure • Relation to host topology • containers (Simon Brown) • deployment view in UML
  • 83. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Behavior Ad hoc UML-ish UML • sequence • communication • activity • timing
  • 84. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 v v v v What (system view) How What (user view) SYSTEM ARCHITECTURE STRUCTURAL BEHAVIORAL CAPABILITIES CONTEXT Why How well FUNCTIONAL QUALITIES System Design Intent (what should be) mechanisms
  • 85. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Extraordinary Moment “What, at this extraordinary moment, is the most important thing for me to be thinking about?” — Buckminster Fuller
  • 86. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 System Design Intent (what should be) System Design Reflection (what is)
  • 87. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Roundtrip Back to Roundtrip Engineering?
  • 88. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Image: Michele Lanza, presentation on slideshare titled “Of Code and Change”
  • 89. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Perhaps we were too literal
  • 90. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 System Design Intent (what should be) System Design Reflection (what is) What’s architecturally significant??
  • 91. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 System Design Intent (what should be) System Design Reflection (what is) But… what’s this?? What’s architecturally significant?
  • 92. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 v v v v What (system view) How What (user view) SYSTEM ARCHITECTURE STRUCTURAL BEHAVIORAL CAPABILITIES CONTEXT Why How well FUNCTIONAL QUALITIES System Design Intent (what should be)
  • 93. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Design Across Context System-in-Context (use, dev, ops) System (Ecosystem) Architecture structure and mechanisms “Requirements” design of system capabilities Strategy ecosystem interventions
  • 94. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015
  • 95. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Code Wins “Code wins arguments” – Mark Zuckerberg but are all arguments worth having?
  • 96. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Experiment — on paper! Sketch prototypes and pretendotypes
  • 97. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 But soon, and then often
  • 98. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Imagine this slide is M.C. Escher’s Magic Mirror
  • 99. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 System Design Intent (what should be) System Design Reflection (what is)
  • 100. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Cobbler’s Children • Does the software cobbler’s children have any shoes, or are they still in “research”? 100
  • 101. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Visualization Shiny! • but what’s it good for?
  • 102. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 102
  • 103. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 What How Who SYSTEM STATIC DYNAMIC ORGANIZATION semantic dependency hierarchy Elements and relationships
  • 104. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Nest Circles Layout Flare on Flare
  • 105. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Dependency Structure Matrix Lattix
  • 106. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Dependency Map Structure101
  • 107. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 What How Who SYSTEM STATIC DYNAMIC ORGANIZATION What is where? Elements and relationships How does it work? Dependencies/coupling? Coherence? Behavior
  • 108. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 How Well Structural qualities Behavioral qualities Team qualities (POLY)METRIC /DASHBOARD (reflective) SIMULATIONS /PROJECTIONS (predictive) experiment predict plan
  • 109. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 How Well Structural qualities Behavioral qualities Team qualities (POLY)METRIC (reflective) SIMULATIONS /PROJECTIONS (predictive) experiment predict plan City Map: spot structural anomalies like “god” classes
  • 110. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 How Well Structural qualities Behavioral qualities Team qualities DASHBOARD (reflective) SIMULATIONS /PROJECTIONS (predictive) experiment predict plan TuningFork: spot “hot spots” in performance analysis XRadar: spot anomalies in code quality across packages
  • 111. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 When POINT-IN -TIME OVER TIME Point-in-time versus Evolution
  • 112. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 When POINT-IN -TIME OVER TIME Point-in-time versus Evolution: System Structure
  • 113. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 When POINT-IN -TIME AGE -SENSITIVE Point-in-time versus Evolution: System Structure
  • 114. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 When POINT-IN -TIME OVER TIME Code Map markers: Who is working on what right now ConcernLinesConc erns over time Point-in-time versus Evolution: Organization DeveloperRivers
  • 115. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Locating Tech Debt
  • 116. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Code Looks Like… a Pollock?
  • 117. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Architecturally Significant, Yes “Developing a sense for code going awry is not a luxury.” -- Yves Reynhout
  • 118. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 It has a name?
  • 119. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Illustration: @1957 Disney @SoftArchConf #SoftwareArchitect2015 Code as a Crime Scene
  • 120. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Illustration: @1957 Disney @SoftArchConf #SoftwareArchitect2015 Code as a Crime Scene hot spot analysis — complexity — change
  • 121. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 @SoftArchConf #SoftwareArchitect2015 Smells? Sensory Journeys (2009-10) project by the artist Christian Nold
  • 122. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Richard I. Cook
  • 123. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 System Design Intent (what should be) System Design Reflection (what is)
  • 124. Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 What is visualization in design good for?