SlideShare a Scribd company logo
1 of 66
Ruth Malan
Visual Architecting
Ruth Malan
Talk Outline
’92
’03
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
@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
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
“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
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

The Product Owner Role
The Product Owner RoleThe Product Owner Role
The Product Owner RoleRoman Pichler
 
Product Owner vs Product Manager
Product Owner vs Product ManagerProduct Owner vs Product Manager
Product Owner vs Product ManagerAgileSparks
 
Agile Product Roadmaps
Agile Product RoadmapsAgile Product Roadmaps
Agile Product RoadmapsRoman Pichler
 
Agile Risk Management
Agile Risk ManagementAgile Risk Management
Agile Risk ManagementRowan Bunning
 
10 steps to a successsful enterprise agile transformation global scrum 2018
10 steps to a successsful enterprise agile transformation   global scrum 201810 steps to a successsful enterprise agile transformation   global scrum 2018
10 steps to a successsful enterprise agile transformation global scrum 2018Agile Velocity
 
Traditional vs Lean Portfolio Management, Agile PMO & Organisations
Traditional vs Lean Portfolio Management, Agile PMO & OrganisationsTraditional vs Lean Portfolio Management, Agile PMO & Organisations
Traditional vs Lean Portfolio Management, Agile PMO & OrganisationsBarry O'Reilly
 
Software Project Management: Change Control
Software Project Management: Change ControlSoftware Project Management: Change Control
Software Project Management: Change ControlMinhas Kamal
 
DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)Brad Appleton
 
Agile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily ReleasesAgile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily ReleasesLeadingAgile
 
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...Manuel Pais
 
Agile Kaizen: Agile Product Management - Course Slides
Agile Kaizen: Agile Product Management - Course SlidesAgile Kaizen: Agile Product Management - Course Slides
Agile Kaizen: Agile Product Management - Course SlidesProyectalis / Improvement21
 
Product Roadmapping Workshop
Product Roadmapping WorkshopProduct Roadmapping Workshop
Product Roadmapping WorkshopFresh Tilled Soil
 
Heart of Agile: What is Agile?
Heart of Agile: What is Agile?Heart of Agile: What is Agile?
Heart of Agile: What is Agile?Agile Tour Beirut
 
Creating Agile Product Roadmaps Everyone Understands
Creating Agile Product Roadmaps Everyone UnderstandsCreating Agile Product Roadmaps Everyone Understands
Creating Agile Product Roadmaps Everyone Understandsuxpin
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Amazon Web Services
 

What's hot (20)

The Product Owner Role
The Product Owner RoleThe Product Owner Role
The Product Owner Role
 
Product Owner vs Product Manager
Product Owner vs Product ManagerProduct Owner vs Product Manager
Product Owner vs Product Manager
 
Agile Product Roadmaps
Agile Product RoadmapsAgile Product Roadmaps
Agile Product Roadmaps
 
Jira training
Jira trainingJira training
Jira training
 
Agile Risk Management
Agile Risk ManagementAgile Risk Management
Agile Risk Management
 
10 steps to a successsful enterprise agile transformation global scrum 2018
10 steps to a successsful enterprise agile transformation   global scrum 201810 steps to a successsful enterprise agile transformation   global scrum 2018
10 steps to a successsful enterprise agile transformation global scrum 2018
 
Traditional vs Lean Portfolio Management, Agile PMO & Organisations
Traditional vs Lean Portfolio Management, Agile PMO & OrganisationsTraditional vs Lean Portfolio Management, Agile PMO & Organisations
Traditional vs Lean Portfolio Management, Agile PMO & Organisations
 
Software Project Management: Change Control
Software Project Management: Change ControlSoftware Project Management: Change Control
Software Project Management: Change Control
 
DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)DevOps - an Agile Perspective (at Scale)
DevOps - an Agile Perspective (at Scale)
 
Agile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily ReleasesAgile IT Operatinos - Getting to Daily Releases
Agile IT Operatinos - Getting to Daily Releases
 
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
 
Product Backlog Management
Product Backlog ManagementProduct Backlog Management
Product Backlog Management
 
Product Roadmap
Product RoadmapProduct Roadmap
Product Roadmap
 
Product Roadmap
Product RoadmapProduct Roadmap
Product Roadmap
 
Agile Kaizen: Agile Product Management - Course Slides
Agile Kaizen: Agile Product Management - Course SlidesAgile Kaizen: Agile Product Management - Course Slides
Agile Kaizen: Agile Product Management - Course Slides
 
Fundamentals of Agile Methodologies - Part I
Fundamentals of Agile Methodologies - Part IFundamentals of Agile Methodologies - Part I
Fundamentals of Agile Methodologies - Part I
 
Product Roadmapping Workshop
Product Roadmapping WorkshopProduct Roadmapping Workshop
Product Roadmapping Workshop
 
Heart of Agile: What is Agile?
Heart of Agile: What is Agile?Heart of Agile: What is Agile?
Heart of Agile: What is Agile?
 
Creating Agile Product Roadmaps Everyone Understands
Creating Agile Product Roadmaps Everyone UnderstandsCreating Agile Product Roadmaps Everyone Understands
Creating Agile Product Roadmaps Everyone Understands
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
 

Similar to Visual Architecting Talk Outline

Software Architecture Clues
Software Architecture CluesSoftware Architecture Clues
Software Architecture CluesRuth Malan
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and ArchitectureRuth Malan
 
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
 

Similar to Visual Architecting Talk Outline (20)

Software Architecture Clues
Software Architecture CluesSoftware Architecture Clues
Software Architecture Clues
 
Visual Design and Architecture
Visual Design and ArchitectureVisual Design and Architecture
Visual Design and Architecture
 
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
 

Recently uploaded

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 

Recently uploaded (20)

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 

Visual Architecting Talk Outline

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