Design Visualization: Smoke and Mirrors (slides)

124
Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015 Design Visualization: Smoke and Mirrors Ruth Malan Join the conversation on Twitter: @SoftArchConf #SoftwareArchitect2015

Transcript of Design Visualization: Smoke and Mirrors (slides)

Page 1: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Design Visualization: Smoke and MirrorsRuth Malan

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Page 2: Design Visualization: Smoke and Mirrors (slides)

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

Page 3: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Where To• Architecture• Visual (in) Design• Design Intention:Reflection

Page 4: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Smoke (Intention) and Mirrors (Reflection)

Page 5: Design Visualization: Smoke and Mirrors (slides)

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

Page 6: Design Visualization: Smoke and Mirrors (slides)

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

Page 7: Design Visualization: Smoke and Mirrors (slides)

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

Page 8: Design Visualization: Smoke and Mirrors (slides)

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

Page 9: Design Visualization: Smoke and Mirrors (slides)

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?

Page 10: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

from Olaf Zimmermann’s presentation at SATURN 2010

Architecture: Decisions!

Page 11: Design Visualization: Smoke and Mirrors (slides)

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?

Page 12: Design Visualization: Smoke and Mirrors (slides)

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

Page 13: Design Visualization: Smoke and Mirrors (slides)

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?

Page 14: Design Visualization: Smoke and Mirrors (slides)

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?

Page 15: Design Visualization: Smoke and Mirrors (slides)

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?

Page 16: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Architecturally Significant?

Page 17: Design Visualization: Smoke and Mirrors (slides)

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]

Page 18: Design Visualization: Smoke and Mirrors (slides)

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?!

Page 19: Design Visualization: Smoke and Mirrors (slides)

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?

Page 20: Design Visualization: Smoke and Mirrors (slides)

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?

Page 21: Design Visualization: Smoke and Mirrors (slides)

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?

Page 22: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

ArchitectureArchitecture enables and constrains

Minimalist

— Dana Bredemeyer

Page 23: Design Visualization: Smoke and Mirrors (slides)

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

Page 24: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

ArchitectureDecisions that must be made from a system perspective• across boundaries

Page 25: Design Visualization: Smoke and Mirrors (slides)

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

Page 26: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Image source: ibm.com@SoftArchConf #SoftwareArchitect2015

Visual Design

Page 27: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

An Engineer!

Page 28: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Investigating and developing theory: structure and dynamics

Leonardo Da Vinci Notebooks@SoftArchConf #SoftwareArchitect2015

Page 29: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Capturing and exploring designs of mechanisms

Leonardo Da Vinci Notebooks@SoftArchConf #SoftwareArchitect2015

Page 30: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Copying (a good thing)

Page 31: Design Visualization: Smoke and Mirrors (slides)

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

Page 32: Design Visualization: Smoke and Mirrors (slides)

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

Page 33: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

i Pencil“That is right, a pencil is one of the best eyes” – Louis Agassiz

Page 34: Design Visualization: Smoke and Mirrors (slides)

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

Page 35: Design Visualization: Smoke and Mirrors (slides)

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

Page 36: Design Visualization: Smoke and Mirrors (slides)

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

Page 37: Design Visualization: Smoke and Mirrors (slides)

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

Page 38: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Image source: wikpedia@SoftArchConf #SoftwareArchitect2015

Visual processing

Design for Visual Processing

Page 39: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Source: https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition@SoftArchConf #SoftwareArchitect2015

code is visual

Visual Design

;-)

Page 40: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Code is design!

Page 41: Design Visualization: Smoke and Mirrors (slides)

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

Page 42: Design Visualization: Smoke and Mirrors (slides)

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

Page 43: Design Visualization: Smoke and Mirrors (slides)

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

Page 44: Design Visualization: Smoke and Mirrors (slides)

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

Page 45: Design Visualization: Smoke and Mirrors (slides)

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

Page 46: Design Visualization: Smoke and Mirrors (slides)

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

Page 47: Design Visualization: Smoke and Mirrors (slides)

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

Page 48: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Cohesion

Page 49: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Parts Flying in Formation

Page 50: Design Visualization: Smoke and Mirrors (slides)

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

Page 51: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Visual: Good forExploring Relationships

• Explore and express relationships

• Structural• Causal• Temporal

• Make connections

Page 52: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

At Heart of Architecture: structure and relationships

Posit structure

Explore behavior

Revise structure

Page 53: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

At Heart of Architecture: structure and relationships

Posit structure

Explore behavior

Revise structure

PatternsMetaphorsExperienceExisting stuff

Sequence,Activity,CommunicationDiagrams,State charts,Ad hoc diagramsHow will this work?

Page 54: Design Visualization: Smoke and Mirrors (slides)

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

PatternsMetaphorsExperienceExisting stuff

Factor and Refactor“The responsibility of architecture is the architecture of responsibility.” -- Jan van Til 

Page 55: Design Visualization: Smoke and Mirrors (slides)

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

Page 56: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Image source: stylonica.com

Technical WisdomCan haz?

Page 57: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Technical Wisdom“A change of perspective is worth 80 IQ points” – Alan Kay

Page 58: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

(Change) Perspective

http://www.xkcd.com/32/

Page 59: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Image source: stylonica.com

Programmingas Theory Building

Page 60: Design Visualization: Smoke and Mirrors (slides)

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!

Page 61: Design Visualization: Smoke and Mirrors (slides)

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

Page 62: Design Visualization: Smoke and Mirrors (slides)

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

Page 63: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

How does it even?

Page 64: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Page 65: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

LMAX Disruptor Mechanism

Source: Martin Fowlerhttp://martinfowler.com/articles/lmax.html

Page 66: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Cockburn’sHexagonal Architecture

Page 67: Design Visualization: Smoke and Mirrors (slides)

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.

Page 68: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

68

What do you do when you don’t want a fox in your hen house?

Page 69: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

69

Watchdog

Page 70: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Mechanism Designs• Federalist Papers

• Da Vinci Notebooks

• Design Patterns

Page 71: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Architecture is super hella important decisions

Page 72: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Technical WisdomCan haz?

Image source: stylonica.com

Page 73: Design Visualization: Smoke and Mirrors (slides)

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

Page 74: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Technical WisdomMore??

Image source: stylonica.com

Page 75: Design Visualization: Smoke and Mirrors (slides)

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

Page 76: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Technical WisdomPlease, oh please?

Image source: stylonica.com

Page 77: Design Visualization: Smoke and Mirrors (slides)

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

Page 78: Design Visualization: Smoke and Mirrors (slides)

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

Page 79: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

vv v v

What(system view)

HowWhat(user view)

SYSTEM ARCHITECTURE

STRUCTURALBEHAVIORALCAPABILITIESCONTEXT

Why How well

FUNCTIONAL QUALITIES

System Design Intent (what should be)

Page 80: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Design: Structure• Elements and relationships

Page 81: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Structure“box and line”

Page 82: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Structure • Relation to host topology

• containers (Simon Brown)

• deployment view in UML

Page 83: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

BehaviorAd hocUML-ishUML• sequence• communication• activity• timing

Page 84: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

vv v v

What(system view)

HowWhat(user view)

SYSTEM ARCHITECTURE

STRUCTURALBEHAVIORALCAPABILITIESCONTEXT

Why How well

FUNCTIONAL QUALITIES

System Design Intent (what should be)

mechanisms

Page 85: Design Visualization: Smoke and Mirrors (slides)

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

Page 86: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

System Design Intent(what should be)

System Design Reflection(what is)

Page 87: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Roundtrip Back to Roundtrip Engineering?

Page 88: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Image: Michele Lanza, presentation on slideshare titled “Of Code and Change”

Page 89: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Perhaps we were too literal

Page 90: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

System Design Intent(what should be)

System Design Reflection(what is)

What’s architecturally significant??

Page 91: Design Visualization: Smoke and Mirrors (slides)

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?

Page 92: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

vv v v

What(system view)

HowWhat(user view)

SYSTEM ARCHITECTURE

STRUCTURALBEHAVIORALCAPABILITIESCONTEXT

Why How well

FUNCTIONAL QUALITIES

System Design Intent (what should be)

Page 93: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Design AcrossContext System-in-Context

(use, dev, ops)System

(Ecosystem)

Architecturestructure and mechanisms

“Requirements”design of system

capabilities

Strategyecosystem interventions

Page 94: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Page 95: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Code Wins“Code wins arguments”– Mark Zuckerberg

but are all arguments worth having?

Page 96: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Experiment — on paper!Sketch prototypes and pretendotypes

Page 97: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

But soon, and then often

Page 98: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Imagine this slide is M.C. Escher’s Magic Mirror

Page 99: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

System Design Intent(what should be)

System Design Reflection(what is)

Page 100: Design Visualization: Smoke and Mirrors (slides)

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

Page 101: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

VisualizationShiny!• but what’s it

good for?

Page 102: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015102

Page 103: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

What How Who

SYSTEM

STATIC DYNAMIC

ORGANIZATION

semantic

dependencyhierarchyElements and relationships

Page 104: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Nest Circles Layout

Flare on Flare

Page 105: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Dependency Structure Matrix

Lattix

Page 106: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Dependency Map

Structure101

Page 107: Design Visualization: Smoke and Mirrors (slides)

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

Page 108: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

How WellStructural qualities Behavioral qualities Team qualities

(POLY)METRIC/DASHBOARD

(reflective)

SIMULATIONS/PROJECTIONS

(predictive) experiment predict plan

Page 109: Design Visualization: Smoke and Mirrors (slides)

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

Page 110: Design Visualization: Smoke and Mirrors (slides)

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

Page 111: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

When

POINT-IN-TIME

OVER TIME

Point-in-time versus Evolution

Page 112: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

When

POINT-IN-TIME

OVER TIME

Point-in-time versus Evolution: System Structure

Page 113: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

When

POINT-IN-TIME

AGE-SENSITIVE

Point-in-time versus Evolution: System Structure

Page 114: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

When

POINT-IN-TIME

OVER TIME

Code Map markers: Who is working on what right now

ConcernLinesConcernsover time

Point-in-time versus Evolution: Organization

DeveloperRivers

Page 115: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Locating Tech Debt

Page 116: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Code Looks Like…

a Pollock?

Page 117: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Architecturally Significant, Yes“Developing a sense for code going awry is not a luxury.” -- Yves Reynhout

Page 118: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

It has a name?

Page 119: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Illustration: @1957 Disney@SoftArchConf #SoftwareArchitect2015

Code as a Crime Scene

Page 120: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Illustration: @1957 Disney@SoftArchConf #SoftwareArchitect2015

Code as a Crime Scene

hot spot analysis

— complexity

— change

Page 121: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

@SoftArchConf #SoftwareArchitect2015

Smells?

Sensory Journeys (2009-10) project by the artist Christian Nold

Page 122: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Richard I. Cook

Page 123: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

System Design Intent(what should be)

System Design Reflection(what is)

Page 124: Design Visualization: Smoke and Mirrors (slides)

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

Join the conversation on Twitter:@SoftArchConf #SoftwareArchitect2015

What is visualization in design good for?