SlideShare a Scribd company logo
1 of 66
Download to read offline
Ruth Malan
Visual Architecting
Ruth Malan
Talk Outline
’92
’03
Visual Architecting
Title: short noun phrase
Context: describe the forces at play,
probably in tension
Decision: describe our response to these
forces
Status: proposed, accepted, deprecated or
superseded
Consequences: describe the resulting
context, after applying the decision
— Michael Nygard, Documenting
Architecture Decisions, Nov 2011
Decision Template
Architecturally Significant Decisions!
@RuthMalan
#SATURN17
Visual Architecting
@RuthMalan
#SATURN17
“If you think good architecture is
expensive, try bad architecture”
– Brian Foote
Big Ball of Mud Architecture
“Big Ball of Mud”, Brian Foote and Joseph Yoder
http://www.laputan.org/mud/
@RuthMalan
#SATURN17
Big Ball of Mud Architecture
“You reach for the
banana, and get the
entire gorilla”
– Michael Stahl
Actually, it looks more like this
• Isolate impact of change
• Isolate arenas of uncertainty and experiment
• Increase reversibility, replaceability,
• Increase responsiveness/adaptability
• Reduce complexity
– Divide and conquer
– we have to keep it crisp, disentangled, and simple
if we refuse to be crushed by the complexities of
our own making...” – Dijkstra
Modular Structure(s):  Cost of Change!
’03
’92
@RuthMalan
#SATURN17
Software architecture refers to the high level
structures of a software system [..] Each
structure comprises software elements,
relations among them, and properties of both
elements and relations.
— wikipedia/Clements et al
“Everything that needs to be said
has already been said. But since no
one was listening, everything must
be said again.
— André Gide
@RuthMalan
#SATURN17
Visual Architecting
Visual Architecting
We design to
get more what
we want!
So about those
elements and
relations
and those (much
maligned) box and
line diagrams… How do we
design (Better)
Boxes?
“I go along with the natural makeup”…
“when I come to the tricky parts, I slow
down”
— Chuang Tzu: “The Dexterous Butcher”
@RuthMalan
#SATURN17
Finding the (Natural) Shape
— Ambrose Bierce, Devil’s Dictionary
ABATIS, n. [1.] Rubbish in front of a
fort, to prevent the rubbish outside
from molesting the rubbish inside.
Image: Engineering and the Mind’s Eye
“Design things to make their
performance as insensitive to the
unknown or uncontrollable
external influence as practical.” —
Eb Rechtin
Image: alistair.cockburn.us/Hexagonal+architecture
Separation of Concerns
Hexagonal Architecture
Ports and
adapters
As programmers we deal
with abstractions all the
time and we have to
invent them in order to
solve our problems
— Michael Feathers
Abstractions
Image: martinfowler.com/bliki/BoundedContext.html
Bounded Contexts in DDD
Separation of Concerns
Components and Responsibilities
27
@RuthMalan
#SATURN17
Factor and Refactor
“The responsibility of architecture
is the architecture of responsibility.”
— Jan van Til/Tom Graves
@RuthMalan
#SATURN17
Does this component have a
cohesive identity or purpose — a
single responsibility at the level of
abstraction of the abstraction?
The architect’s SCARS:
• Separation of Concerns
• crisp and resilient
Abstractions
• balanced distribution of
Responsibilities
• strive to Simplify — Grady Booch
Booch
#SATURN16Fundamentals that remain fundamental
“disorder is easier and more
permanent than order, which is
difficult and temporary”
— Jeremy Campbell
Separate Concerns — and keep separate
Boundaries: Conway’s Law
“Any organization that designs a
system (defined broadly) will
produce a design whose structure
is a copy of the organization's
communication structure.”
—Melvyn Conway (in 1968!)
Keep Concerns Separate
Visual Architecting
“The defining properties
of any system, are
properties of the whole,
which none of the parts
have. If you take the
system apart, it loses its
essential properties”
— Russell Ackoff
trying to be an airplane”
— Wim Roelandts
Minimalist
Architecture
35
Decisions that must be made
from a system perspective
• system outcomes
• across boundaries
Dana Bredemeyer
Structure and Behavior
Posit structure
Explore behavior
Revise structure
Structure and Behavior
Posit structure
Explore behavior
Revise structure
How will this
work?
What is it made
(up) of?
How does this
contribute to/inhibit
desired properties?
Remember! Responsibilities!
38
Posit responsibilities
Refine as explore
behavior and
different views
Patterns
Metaphors
Experience
Existing stuff
“at least they’re looking at it”
• sketch prototype
• try alternatives on
the cheap
• “mob modeling”
• “test drive”
@RuthMalan
#SATURN17
Visual models
“Architects must have
self-repairing egos”
— Dana Bredemeyer
@RuthMalan
#SATURN17
“A change of
perspective is worth
80 IQ points”
— Alan Kay
“You don't understand
something until you
understand it more
than one way”
— Marvin Minsky
Image:
en.wikipedia.org/wiki/Marvin_Minsky#/media/File:Marvin_Minsky_at_OLPC
b.jpg
“If you haven’t thought of
three possibilities, you
haven’t thought enough.”
— Jerry Weinberg
Rule of Three
What
ARCHITECTURE
STRUCTURE
Logical
Conceptual
Execution
Design across
“Design is not just what it
looks like and feels like.
Design is how it works.”
— Steve Jobs
What
ARCHITECTURE
STRUCTURE
interfaces
elements and
relationships
How
BEHAVIOR
Logical
Conceptual
What
(system view)
HowWhat
(user view)
SYSTEM ARCHITECTURE
STRUCTURALBEHAVIORAL
CAPABILITIESCONTEXT
Why
v v
How well
FUNCTIONAL PROPERTIES
architecturally significant mechanisms
“Design quality is not a property of the code. It's a joint property of the code and the
context in which it exists.” – Sarah Mei
Architecturally significant?
The demands (forces, properties, …)
on the system that are challenging,
push the limits, require design
attention
Source: Martin Fowler
http://martinfowler.com/articles/lmax.html
LMAX Disruptor Mechanism
Challenges:
A trading platform
needs very low latency -
trades have to be
processed quickly
because the market is
moving rapidly.
A retail platform adds
complexity because it
has to do this for lots of
people.
“The Federalist Papers are
arguments that support
different parts of the design
of the Constitution.”
– Alan Kay, 1995
Federalist 51
addresses
• separation of powers
• checks and balances
52
53
Take note(s)!
Leonardo da Vinci’s
notebooks
Develop and share theory
• of operation (interactions,
resolution of forces,
outcomes)
• of relation of structure to
function/properties
55
System Design Intention
(what should be)
System Design Reflection
(what is)
Static structure
from Pollock
to Kandinsky?
Your Code as a Crime Scene
http://www.adamtornhill.com
Your Code as a Crime Scene
http://www.adamtornhill.com
61
System Design Intention
(what should be)
System Design Reflection
(what is)
Context System-in-Context
(use, dev, ops)
System
(Ecosystem)
Architecture
structure and
mechanisms
“Requirements”
design of system
capabilities
Strategy
ecosystem interventions
"Always design a thing by considering it in its next larger context"
—Eliel Saarinen
Visual Architecting
Architecturally Significant — also:
Structurally significant
• Organizing structure
• Architecturally significant
mechanisms
• Structural integrity and sustainability
Strategically significant
• game shapers and game changers
What is make or
break?
What impacts
how we
compete?
"I wasn't the one pushing things in the wrong direction, but I should have been the one to stop it." — Chad Fowler
Just enough
• Not “big design” that we just spread out over time
• using judgment, assessing what’s architecturally significant
• where do we need “cognitive assist”
• to “see,” to draw out (assumptions, relationships,…)
• try out alternatives cheaply to decide where to run code experiments
to test out ideas
• where do we need to work together
• involve others, convey and persuade, inform and coach by showing
how we resolve interplay of forces and context to create solutions, …
SATURN 2017
Visual Architecting
@RuthMalan
Bredemeyer Consulting

More Related Content

What's hot

Continuous Delivery of Agile Architecture
Continuous Delivery of Agile ArchitectureContinuous Delivery of Agile Architecture
Continuous Delivery of Agile ArchitectureBrad Appleton
 
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...Susanne Kaiser
 
Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...Matthew Skelton
 
Introducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineIntroducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineVMware Tanzu
 
Agile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago Griffo
Agile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago GriffoAgile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago Griffo
Agile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago GriffoTiago Griffo
 
Agile Leaders and Agile Managers
Agile Leaders and Agile ManagersAgile Leaders and Agile Managers
Agile Leaders and Agile ManagersLuca Sturaro
 
Product Owner & Product Manager Training
Product Owner & Product Manager TrainingProduct Owner & Product Manager Training
Product Owner & Product Manager TrainingRob Betcher
 
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWSEnd-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWSBhuvaneswari Subramani
 
Are You Being Agile or Doing Agile?
Are You Being Agile or Doing Agile?Are You Being Agile or Doing Agile?
Are You Being Agile or Doing Agile?Brad Appleton
 
Clean architecture
Clean architectureClean architecture
Clean architectureLieven Doclo
 
Agile Leadership - Beyond the Basics
Agile Leadership - Beyond the BasicsAgile Leadership - Beyond the Basics
Agile Leadership - Beyond the BasicsMark Levison, CST
 
5 Practices for an Agile Mindset
5 Practices for an Agile Mindset5 Practices for an Agile Mindset
5 Practices for an Agile MindsetMichael Sahota
 
Beyond the Scrum Master - Becoming an Agile Coach
Beyond the Scrum Master - Becoming an Agile CoachBeyond the Scrum Master - Becoming an Agile Coach
Beyond the Scrum Master - Becoming an Agile CoachCprime
 

What's hot (20)

Continuous Delivery of Agile Architecture
Continuous Delivery of Agile ArchitectureContinuous Delivery of Agile Architecture
Continuous Delivery of Agile Architecture
 
Agile Estimation
Agile EstimationAgile Estimation
Agile Estimation
 
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
 
Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...Team Topologies in action - early results from industry - DOES London Virtual...
Team Topologies in action - early results from industry - DOES London Virtual...
 
Model storming
Model stormingModel storming
Model storming
 
Introducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineIntroducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring Statemachine
 
Agile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago Griffo
Agile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago GriffoAgile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago Griffo
Agile Australia 2017 Hypothesis-Driven COTS Software Selection Tiago Griffo
 
Agile by Sun Tzu
Agile by Sun TzuAgile by Sun Tzu
Agile by Sun Tzu
 
Agile Leaders and Agile Managers
Agile Leaders and Agile ManagersAgile Leaders and Agile Managers
Agile Leaders and Agile Managers
 
Product Owner & Product Manager Training
Product Owner & Product Manager TrainingProduct Owner & Product Manager Training
Product Owner & Product Manager Training
 
Agile 101
Agile 101Agile 101
Agile 101
 
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWSEnd-to-End CI/CD at scale with Infrastructure-as-Code on AWS
End-to-End CI/CD at scale with Infrastructure-as-Code on AWS
 
Are You Being Agile or Doing Agile?
Are You Being Agile or Doing Agile?Are You Being Agile or Doing Agile?
Are You Being Agile or Doing Agile?
 
Agile Planning and Estimation
Agile Planning and EstimationAgile Planning and Estimation
Agile Planning and Estimation
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Scrum Product Owner
Scrum Product OwnerScrum Product Owner
Scrum Product Owner
 
Agile Metrics
Agile MetricsAgile Metrics
Agile Metrics
 
Agile Leadership - Beyond the Basics
Agile Leadership - Beyond the BasicsAgile Leadership - Beyond the Basics
Agile Leadership - Beyond the Basics
 
5 Practices for an Agile Mindset
5 Practices for an Agile Mindset5 Practices for an Agile Mindset
5 Practices for an Agile Mindset
 
Beyond the Scrum Master - Becoming an Agile Coach
Beyond the Scrum Master - Becoming an Agile CoachBeyond the Scrum Master - Becoming an Agile Coach
Beyond the Scrum Master - Becoming an Agile Coach
 

Similar to Visual Architecting

Decisions and Technical Leadership
Decisions and Technical LeadershipDecisions and Technical Leadership
Decisions and Technical LeadershipRuth Malan
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeGary Pedretti
 
Design as Leadership: Exploring the Terrain
Design as Leadership: Exploring the TerrainDesign as Leadership: Exploring the Terrain
Design as Leadership: Exploring the TerrainRick Fox
 
Agile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayAgile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayGary Pedretti
 
The Allure of Gothic Markup
The Allure of Gothic MarkupThe Allure of Gothic Markup
The Allure of Gothic MarkupSimon St.Laurent
 
Design Patterns from 10K feet
Design Patterns from 10K feetDesign Patterns from 10K feet
Design Patterns from 10K feetNaresha K
 
Making sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designersMaking sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designersjohanna kollmann
 
What is Systemic Design
What is Systemic DesignWhat is Systemic Design
What is Systemic DesignAlex Ryan
 
Balancing Design and Systems Thinking for Greater Impact
Balancing Design and Systems Thinking for Greater ImpactBalancing Design and Systems Thinking for Greater Impact
Balancing Design and Systems Thinking for Greater ImpactMaRS_SolutionsLab
 
Favoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile ScaffoldingFavoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile ScaffoldingEmiliano Soldi
 
What (Else) Can Agile Learn From Complexity
What (Else) Can Agile Learn From ComplexityWhat (Else) Can Agile Learn From Complexity
What (Else) Can Agile Learn From ComplexityJurgen Appelo
 
Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...
Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...
Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...Galala University
 
Agile Architecture Tech And Patterns
Agile Architecture   Tech And PatternsAgile Architecture   Tech And Patterns
Agile Architecture Tech And Patternspragkirk
 
Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...CA API Management
 
Design Tools for Systems Thinking
Design Tools for Systems ThinkingDesign Tools for Systems Thinking
Design Tools for Systems ThinkingPeter Vermaercke
 
Published Article: Integrating Systems & Design Thinking
Published Article: Integrating Systems & Design ThinkingPublished Article: Integrating Systems & Design Thinking
Published Article: Integrating Systems & Design ThinkingEricaWexler
 
Theoretical and Practical Aspects of Knowledge Representation and Reasoning
Theoretical and Practical Aspects of Knowledge Representation and ReasoningTheoretical and Practical Aspects of Knowledge Representation and Reasoning
Theoretical and Practical Aspects of Knowledge Representation and Reasoningdiannepatricia
 
Optionality: Synthesizing and exercising attractive options during your next ...
Optionality: Synthesizing and exercising attractive options during your next ...Optionality: Synthesizing and exercising attractive options during your next ...
Optionality: Synthesizing and exercising attractive options during your next ...Mark Hart
 

Similar to Visual Architecting (20)

Decisions and Technical Leadership
Decisions and Technical LeadershipDecisions and Technical Leadership
Decisions and Technical Leadership
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New Hope
 
Design as Leadership: Exploring the Terrain
Design as Leadership: Exploring the TerrainDesign as Leadership: Exploring the Terrain
Design as Leadership: Exploring the Terrain
 
Agile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayAgile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we Today
 
The Allure of Gothic Markup
The Allure of Gothic MarkupThe Allure of Gothic Markup
The Allure of Gothic Markup
 
Design Patterns from 10K feet
Design Patterns from 10K feetDesign Patterns from 10K feet
Design Patterns from 10K feet
 
SAF - architecture framework
SAF - architecture frameworkSAF - architecture framework
SAF - architecture framework
 
Making sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designersMaking sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designers
 
What is Systemic Design
What is Systemic DesignWhat is Systemic Design
What is Systemic Design
 
Balancing Design and Systems Thinking for Greater Impact
Balancing Design and Systems Thinking for Greater ImpactBalancing Design and Systems Thinking for Greater Impact
Balancing Design and Systems Thinking for Greater Impact
 
Favoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile ScaffoldingFavoring the Emergence through Agile Scaffolding
Favoring the Emergence through Agile Scaffolding
 
What (Else) Can Agile Learn From Complexity
What (Else) Can Agile Learn From ComplexityWhat (Else) Can Agile Learn From Complexity
What (Else) Can Agile Learn From Complexity
 
Managing Complexity
Managing ComplexityManaging Complexity
Managing Complexity
 
Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...
Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...
Architectural Design Concepts Approaches - كونسيبت التصميم المعمارى و الفكرة ...
 
Agile Architecture Tech And Patterns
Agile Architecture   Tech And PatternsAgile Architecture   Tech And Patterns
Agile Architecture Tech And Patterns
 
Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...
 
Design Tools for Systems Thinking
Design Tools for Systems ThinkingDesign Tools for Systems Thinking
Design Tools for Systems Thinking
 
Published Article: Integrating Systems & Design Thinking
Published Article: Integrating Systems & Design ThinkingPublished Article: Integrating Systems & Design Thinking
Published Article: Integrating Systems & Design Thinking
 
Theoretical and Practical Aspects of Knowledge Representation and Reasoning
Theoretical and Practical Aspects of Knowledge Representation and ReasoningTheoretical and Practical Aspects of Knowledge Representation and Reasoning
Theoretical and Practical Aspects of Knowledge Representation and Reasoning
 
Optionality: Synthesizing and exercising attractive options during your next ...
Optionality: Synthesizing and exercising attractive options during your next ...Optionality: Synthesizing and exercising attractive options during your next ...
Optionality: Synthesizing and exercising attractive options during your next ...
 

Recently uploaded

Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridMathew Thomas
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfICS
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startMaxim Salnikov
 
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...Maxim Salnikov
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...telebusocialmarketin
 
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurMinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurPriyadarshini T
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...MyFAA
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptxAGATSoftware
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfMind IT Systems
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevpmgdscunsri
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tipsmichealwillson701
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityRandy Shoup
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Inc
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...jackiepotts6
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJpolinaucc
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial FrontiersRaphaël Semeteys
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxBarakaMuyengi
 

Recently uploaded (20)

Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM Grid
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdf
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to start
 
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
 
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurMinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
 
20140812 - OBD2 Solution
20140812 - OBD2 Solution20140812 - OBD2 Solution
20140812 - OBD2 Solution
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tips
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJ
 
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
 

Visual Architecting

Editor's Notes

  1. I can only say that in accepting this award, I am standing in for and on behalf of everyone who partnered and worked with me over the years I In particular, share this recognition with Dana Bredemeyer, and with everyone who recommended me for this award, for each has worked with me, and so contributed immensely to my experience and what I bring to others.
  2. we’re going to talk about architecture from the inside out — defining concerns at center of how we think about architecture — and while 30 minutes is way too long to listen to me talk, it’s also not nearly long enough to back out to a fully encompassing view of architecture and what architects do, especially since I also promised to relate our discussion to visual architecting and how we give ourselves a visual boost to our embodied cognition and team cognition in the wild wind back time to 1992
  3. asks Ralph Johnson
  4. we know what to do with decisions — or we will after Michael Keeling and Joe Runde’s talk at 1:00 very much like the patterns template that Chris Richardson described so well yesterday
  5. <sumptuous emoluments> and if you want to know how much the software community cares about architects and/or architecturally significant decisions, we see it quantified there — it’s 35 retweets
  6. significant — cost of change — Kevlin drew our attention to this in the opening keynote on Tuesday
  7. if you haven’t read it, go there, print it off — leave it conspicuously on
  8. protect by not naming the source!
  9. isolation zones — uncertainty and experiment "The price of reliability is the pursuit of the utmost simplicity” – Hoare
  10. “I define architecture as a word we use …when we want to puff it up to sound important” — Martin Fowler Ralph Johnson: architecture is shared understanding among the developers which includes Sometimes we just need to get a clue, and this talk has a bucket full. Ruth Malan explores the playful idea of a clue bucket (so that we can reach in and get a clue when we need one). Ruth considers sources of design inspiration—along with a collection of design guides, principles, tips, and heuristics—which she contextualizes by outlining the kinds of challenges the architect addresses.
  11. Sometimes we just need to get a clue, and this talk has a bucket full. Ruth Malan explores the playful idea of a clue bucket (so that we can reach in and get a clue when we need one). Ruth considers sources of design inspiration—along with a collection of design guides, principles, tips, and heuristics—which she contextualizes by outlining the kinds of challenges the architect addresses.
  12. That’s an accent, honey
  13. more than we get by default; when we aren’t paying attention; don’t bring experience to bear
  14. Boxes — how we render abstractions that are key building blocks / architectural elements or significant chunks or components that give shape to our system one design will meet a set of goals better than another design
  15. better design intuition natural structures — like rivers and mountains, or organs like heart and lungs — don’t give us “obvious boundaries” — we have to invent them… but there are clues … where the landscape or terrain shifts … Maps... navigation; location; planning But we are designing; shaping; deciding Not simply cartographers of a landscape; deciding where to create boundaries -- sure, trying to find the natural contours; but we're assessing alternatives and thinking them up! Natural fit - to context (seams and cleavages in host systems; looking at distribution -- physical world is real af ,.. latency, intruders; failures…. Zhuang Zhou, often known as Zhuangzi, was an influential Chinese philosopher who lived around the 4th century BC during the Warring States period, a period corresponding to the summit of Chinese philosophy, the Hundred Schools of Thought. leading philosopher representing the Taoist strain in Chinese thought. Cook Ting was cutting up an ox for Lord Wen-hui. As every touch of his hand, every heave of his shoulder, every move of his feet, every thrust of his knee — zip! zoop! He slithered the knife along with a zing, and all was in perfect rhythm, as though he were performing the dance of the Mulberry Grove or keeping time to the Ching-shou music. “Ah, this is marvelous!” said Lord Wen-hui. “Imagine skill reaching such heights!” Cook Ting laid down his knife and replied, “What I care about is the Way, which goes beyond skill. When I first began cutting up oxen, all I could see was the ox itself. After three years I no longer saw the whole ox. And now — now I go at it by spirit and don’t look with my eyes. Perception and understanding have come to a stop and spirit moves where it wants. I go along with the natural makeup, strike in the big hollows, guide the knife through the big openings, and following things as they are. So I never touch the smallest ligament or tendon, much less a main joint. “A good cook changes his knife once a year — because he cuts. A mediocre cook changes his knife once a month — because he hacks. I’ve had this knife of mine for nineteen years and I’ve cut up thousands of oxen with it, and yet the blade is as good as though it had just come from the grindstone. There are spaces between the joints, and the blade of the knife has really no thickness. If you insert what has no thickness into such spaces, then there’s plenty of room — more than enough for the blade to play about it. That’s why after nineteen years the blade of my knife is still as good as when it first came from the grindstone. “However, whenever I come to a complicated place, I size up the difficulties, tell myself to watch out and be careful, keep my eyes on what I’m doing, work very slowly, and move the knife with the greatest subtlety, until — flop! the whole thing comes apart like a clod of earth crumbling to the ground. I stand there holding the knife and look all around me, completely satisfied and reluctant to move on, and then I wipe off the knife and put it away.” “Excellent!” said Lord Wen-hui. “I have heard the words of Cook Ting and learned how to care for life!”
  16. “Yeah -- best case you have 1 place to change instead of N, worst case you have N + 1 places ;-)” -- @schmonz on adapters Fort design evolved as canon firing range and other weapons capabilities evolved… and with each advance in one, pressure was on to advance the other, to gain advantage… why resilience is a watch word for us… ability to sense recover respond and out maneuver
  17. Our Abstractions are well abstract… so we draw them as boxes and these boxes get their meaning from what we mean by them “Programming is the breaking of one big impossible task into several very small possible tasks.” - Jazzwant “Software is built on abstractions. Pick the right ones, and programming will flow naturally from design; modules will have small and simple interfaces; and new functionality will more likely fit in without extensive reorganization. Pick the wrong ones, and programming will be a series of nasty surprises” — Daniel Jackson
  18. ddd domain driven design how do we do that? Look for the natural structure, the natural interstices — and “when I come to the tricky parts, I slow down” As you try to model a larger domain, it gets progressively harder to build a single unified model. Different groups of people will use subtly different vocabularies in different parts of a large organization. The precision of modeling rapidly runs into this, often leading to a lot of confusion. Typically this confusion focuses on the central concepts of the domain. Early in my career I worked with a electricity utility - here the word "meter" meant subtly different things to different parts of the organization: was it the connection between the grid and a location, the grid and a customer, the physical meter itself (which could be replaced if faulty). These subtle polysemes could be smoothed over in conversation but not in the precise world of computers. Time and time again I see this confusion recur with polysemes like "Customer" and "Product". DDD recognizes that we've learned that "total unification of the domain model for a large system will not be feasible or cost-effective" [1]. So instead DDD divides up a large system into Bounded Contexts, each of which can have a unified model - essentially a way of structuring MultipleCanonicalModels. -- Martin Fowler Implementing Domain-Driven Design(Hardcover) by Vaughn Vernon http://martinfowler.com/bliki/BoundedContext.html Sun Tsu Art of War
  19. Our Abstractions are well abstract… so we draw them as boxes and these boxes get their meaning from what we mean by them so we need to write down what we mean by them amazed that we think we agree, when we use a named abstractions, but our assumptions and mental model can differ substantively… CRCs 89 Beck and Cunningham
  20. fundamentals remain fundamental mne·mon·ic — scars SCARS — what we get from experience, “You have a point, you can take it out of my back now!” and in particular, architecting impacts many people, who’ll all have a better idea In 1982, Edsger Dijkstra wrote another classic paper entitled On the role of scientific thought. in which he introduced the term: The Separation of Concerns. http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD447.PDF
  21. Jeremy Campbell, GRAMMATICAL MAN: Information, Entropy, Language and Life Systems evolve – we’re constantly adapting them. Complexity from accrual Complexity from mess Accidental complexity Versus inherent complexity
  22. paraphrase as “if the org arch and the system arch are at odds, the org architecture wins — overrides architect’s intent and determines actual structure of the system let your team boundaries underscore the natural and determined/imposed boundaries of the system; if you want to separate and keep them separate, give them to different teams Isolation is the most important trait. It is the foundation for many of the high-level benefits in microservices. But it is probably also the trait that has the biggest impact on your design and architecture. It will, and should, slice up the whole architecture, and therefore it needs to be considered from day one. It will even impact the way you break up and organize the teams and their responsibilities, as Melvyn Conway discovered and was later turned into Conway’s Law in 1967 https://www.oreilly.com/ideas/defining-a-reactive-microservice “in technology we rarely start from zero. The choices we make persist in the software we create.  As long as that software exists, it’s organizational memory. It makes some things easy and other things hard. Software isn’t a mechanical thing. In an odd way it’s alive. It grows. When we modify it, it reacts to us. Because of its presence, its value, and its constraints, we react to it.   I see our relationship to software as a symbiotic relations” —Michael Feathers Homomorphism? “The odd thing about this split between business and development is that you can see it in the code. One of the key insights in software development is Conway’s Law. It states that the structure of what we produce ends up mirroring the structure of the organizations that produce it. Conway’s Law is a deep insight and there is much more to say about it but with regard to the business/development split it tells us that we should expect poor quality software when there’s a handoff or any gap in knowledge between groups. Once you understand the Conway’s Law many things that seem surprising about software development make sense. When many teams work in the same code base, able to touch any part of it, there’s a tendency toward the Tragedy of the Commons. When individual teams concentrate on their own area of the code, the code reacts by modularizing over time.  Process impacts code too. Frankly, everything does. This makes it important for us to have awareness of these effects. “ http://www.r7krecon.com/#!provocation/gfqa5 Code adjusts to us and we adjust to code. Code tends to mirror our team structure, and we create structures to deal with the effects of code - we create customer support, quality assurance and maintenance organizations. If code and organization interact at this deep level, the way we form teams and the way we work are vitally important.   When we ask what the code needs, we arrive at the insight that it needs different expertise at different times. http://www.r7krecon.com/#!implications/t2tbw “You always ship your organization” — feathers
  23. you for example are a system, a biological organism, and you consist of parts, your heart, your lungs, stomach, pancreas, and so on, each of which can affect your behavior or your property each part of the system, when it affects the system, is dependent for its effect on some other part, in other words, the parts are interdependent no part of a system, or collection of parts of a system, has an independent effect on it. the way the heart affects you depends on what the lungs are doing and the brain and so forth. the parts are all interconnected. Therefore, the system is a whole that cannot be divided into independent parts very important implications that are generally overlooked the essential or defining properties of a system are properties of the whole which none of its parts have for example, car — essential property is it can carry you from one place to another; not part of a car can do that — the wheel can’t, the axle can’t, the motor can’t even carry itself from one place to another, but the car can you have life, none of your parts live; you can write, your hand can’t write — that’s easy to demonstrate — cut off your hand and see if it can write when a system is taken apart, it loses its essential properties if disassemble car in this room, even though have every part, its not a car, because system isn’t sum of behavior of its parts, it’s a product of their interaction and properties emerge from parts and interactions
  24. “Defining identity not in any one of parts” — Russell Ackoff If achieve a nirvana of decoupling and independence, we dont have a system — or you have micro services that have grown into their ambitions to be systems Laugh at microservices integrated at enterprise database but Ddd 360 view of customer--because we had independently evolving views of "the customer" which flommuxes customers
  25. trying to get more what we want, while doing as little as possible!! Why? Enable; teams; cognitive traction; organizational traction; isolation zones - experiment; scale; fail; Address challenges; desired outcomes - how are we going to do that? How do we convince ourselves it is worth trying? How do we make it better? What even is better? What do we have to give up to get that? Is it worth it? How will we convince ourselves? How will we know? What forces do we need to take into account? How do they shape space? Resolve tensions; balance; tradeoffs How does this change across contexts? How do we make it simpler? Do we need to do this? What if we just not? If we do this, what could we remove?
  26. stake in ground — revisit and refactor and revise and try out other alternatives when assemble IKEA or potter Barn shelves or what have you, don’t tighten first screw put in; put a set in and move to fit before tighten, and tighten all somewhat rather than just one design across the views; we’re just looking at a simplified pass through architecting here, but we’ll come back and update as we learn from other views, too
  27. When to Model? To support reasoning: limitations of the human mind/complexity of the subject of inquiry difficult to keep track of all dimensions/variables at the same time make relationships among factors/variables explicit reveal the structure explore and illuminate dynamics draw on analogies and models or theories from other domains To support collaboration: facilitate understanding lead more structured discussions discuss specifics in the context of the "big picture" To support experimentation: modeling effort is small, in comparison with the magnitude of the outcome perform sensitivity analysis test assumptions/beliefs To support persuasion and influence (visual rhetoric): improves confidence (team: "we can do it"; stakeholders: "they demonstrate they know what they're up against/need to do") the power has influenced our idiom: "I see what you mean," "it draws people in" interesting 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
  28. “Good judgment comes from experience, and experience comes from bad judgment.”  -- Rita Mae Brown (The same or a closely similar quote is attributed to too many earlier writers to list, including Will Rogers.)
  29. What do we do — selective attention and bubbles? move to different PoV — value of the process! not to be a big framework thing but scaffolding; and reminder of where we can go (next) to take a different look, etc. Also, a matter of discipline — self-discipline, and discipline of engineering — probe, criticism, come up with alternatives, model, reason, come up with counter arguments pick another property as driving requirement,pick a trend and see what new requirements come up, change an assumption, switch views bring on other people — diversity; also stakeholders outside team sequence to communication diagram — emphasizes/punches up topology
  30. We see things not as they are, but as we are” — Anais Nin
  31. Commitment to making other people successful
  32. Simon Brown’s components and containers in context Simon: By "container" I mean something like a web server, application server, desktop application, mobile app, database, file system, etc. Essentially, what I call a container is anything that can host code or data.
  33. Neely cartoon — used by Richard Cook at Velocity
  34. Neely cartoon — used by Richard Cook at Velocity
  35. LMAX is a retail financial trading platform. Its business innovation is that it is a retail platform - allowing anyone to trade in a range of financial derivative products Challenges: A trading platform like this needs very low latency - trades have to be processed quickly because the market is moving rapidly. A retail platform adds complexity because it has to do this for lots of people. So the result is more users, with lots of trades, all of which need to be processed quickly. Given the shift to multi-core thinking, this kind of demanding performance would naturally suggest an explicitly concurrent programming model - and indeed this was their starting point. But the thing that got people's attention at QCon was that this wasn't where they ended up. In fact they ended up by doing all the business logic for their platform: all trades, from all customers, in all markets - on a single thread. A thread that will process 6 million orders per second using commodity hardware. Although the business logic occurs in a single thread, there are a number tasks to be done before we can invoke a business object method. The original input for processing comes off the wire in the form of a message, this message needs to be unmarshaled into a form convenient for Business Logic Processor to use. Event Sourcing relies on keeping a durable journal of all the input events, so each input message needs to be journaled onto a durable store. Finally the architecture relies on a cluster of Business Logic Processors, so we have to replicate the input messages across this cluster. Similarly on the output side, the output events need to be marshaled for transmission over the network. Figure 2: The activities done by the input disruptor (using UML activity diagram notation) The replicator and journaler involve IO and therefore are relatively slow. After all the central idea of Business Logic Processor is that it avoids doing any IO. At a crude level you can think of a Disruptor as a multicast graph of queues where producers put objects on it that are sent to all the consumers for parallel consumption through separate downstream queues. http://martinfowler.com/articles/lmax.html CQRS ( Command Query Responsibility Segregation)
  36. Powerful Ideas need love too, Alan Kay
  37. The Structure of the Government Must Furnish the Proper Checks and Balances Between the Different Departments, is an essay by James Madison, the fifty-first of The Federalist Papers. In this Federalist Paper, James Madison explains and defends the checks and balances system in the Constitution. Each branch of government is framed so that its power checks the power of the other two branches; additionally, each branch of government is dependent on the people, who are the source of legitimate authority. “It may be a reflection on human nature, that such devices [checks and balances] should be necessary to control the abuses of government. But what is government itself, but the greatest of all reflections on human nature? If men were angels, no government would be necessary. — Billofs=RightsInstitute.org
  38. Theory of Operation How does it work (together) to create system capabilities (function and properties) illuminates relationships about building a theory of how things work — how forces impinge; presenting the design in terms of forces and outcomes — our reasoning, connecting dots to goals and drivers, identifying constraints, etc in so presenting the design (fragment), communicate — inform and coach— help others build up theory of this system — intent and realization; and bag theory for next system
  39. notes — what we intend and reflection of code Da vinci with notebook -- always learning; share notes; Draw -- use uml; umlish; ad hoc; annotate/accompanying notes; model to learn/see (better); to inform; to create shared thoughtspace; modelstorm; model out loud; in pairs and mobs... to explore... to test!! To try ideas out; to "run" changes across existing system and see what is impacted; to try alternatives and see which are promising enough to try in code. Can we afford to? Can we afford not to??! recall these are make or break! Can we afford to only try things in code??? Cheapest experiments to decide which experiments! Not just diverge and converge with "requirements"
  40. "But the brain does much more than just recollect It inter-compares, it synthesizes, it analyzes it generates abstractions ... The brain has it's own language For testing the structure and consistency of the world” — Carl Sagan -- Carl Sagan 'A Glorious Dawn' ft Stephen Hawking (Cosmos Remixed) by John Boswell
  41. A hotspot is complicated code that you have to work with often. Hotspots are calculated from two different data sources: 1 We use the lines of code as a simple proxy for complexity. 2 We calculate the change frequency of each file by mining their version-control history. As you see in the picture above, the prioritized Hotspots only make up 2-3% of the total code size. Yet there’s a disproportional amount of development activity in that small part with 11-16% of all commits touching those Hotspots. This means any code improvement to a prioritized Hotspot is time well-invested.
  42. Changing; evolving; reflection of design as built; check code against models; throw changes at evolving models; probes in code -- operational concerns; scale; attacks; also code health monitoring; code counting -- not nirvana but not going to lie to itself… Not just what it looks like; how it works -- at every scope and scale... not just early. Throughtout... not just ci/cd ... lifecycle ...,
  43. All design -- system in its context? That's design too.... what does it offer? What "job" does it do? How does it relate to other systems? Outcomes -- capabilities and properties; Trans contextual Does architect do this? In building architecture but not generally in software....What do we gain when architect is involved? Feasibility/viable/desirable -- customer/technology/business(ecosysyems; value flows; differentiation) Better decisions -- product/outward design and system/internal design; innovation Evolutionary landscape -- capabilities evolve; landscapes are co-evolving; shifts in one can send ripples and waves of change; smart phones and uber; what does machine learning/ai unleash? 3x explore expand extract Pioneer settler city planner Ecosystems that coevolve; Throw away good ideas – p28, p26 of 101 Things Say No – steve jobs "#Microservice architecture moves complexity to the area we are good at automating: operations“ https://www.oreilly.com/ideas/microservices-shift-complexity-to-where-it-belongs Chad Fowler https://twitter.com/chadfowler/status/646624348028190720
  44. what will break in production? break code? break user experience? make viable, feasible, desirable Make -- pressure to make it can warp integrity Uber - gaming the ecosystem in some sinister ways But can be strategic and steer away from doing active harm -- ecosystem and notions of commons Win by any means -- breaking laws; intentionally misleading/betraying public trust; -- ecosystem health is not optional Study ecosystem for what need to put in place to make system viable/healthy; some of that is business relationships; some is technology ... good to have architects as technical strategists and designers involved So architect has a foot in where system is and how to do that better... business and tech... strategy and tactics; culture snd conversation/attention And from time to time... heads up? What's changing? What does that mean for system? So how about those emoluments?? :) Fractals and scopes of influence and "authority" (feather) Kodak -- booch -- future depends on people in this room We build it -- the future, that is We better get more strategic about it! The people we lead are responsible for all the good they build, but we, leaders, shape direction/enable and constrain... so we need to feel responsible, to feel responsible for, where that goes... What is better? How do we get more of that? What is integrity? Structural and design? Sustainability ... in all its forms