What is software architecture? (nuancing our view, to inform our views)
What role does visual play in design?
What is the landscape of visual design in software, and how are we doing?
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
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
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
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?
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?
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
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?
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?