THE LAYPERSON’S GUIDE TO SOFTWARE
ARCHITECTURE
Liauw Fendy
2
Ready to
make your
mark?
/careers
©ThoughtWorks 2019 Commercial in Confidence
ANNOUNCEMENTS
4
Agenda
©ThoughtWorks 2019 Commercial in Confidence 5
Motivations for this talk
Uncover:
● What is an architect?
● What is software architecture?
● How does design fit into architecture?
● When is the right time to make technical decisions?
● Who makes technical decisions?
● What should be the primary focus for technical decision making?
Why are you here?
6
ARCHITECT
WHAT IS AN ARCHITECT
Original diagram can be found in Design it! - From programmer to Software Architect, 1st Edition, Page 4
(Diagram removed)
There is a diagram here that shows an architect as
someone sitting in the intersection between
business, technology and users.
WHAT IS AN ARCHITECT
Investigator Butcher Tactician
Judge
Instructor Entrepreneur
WHAT IS AN ARCHITECT
An investigator
An architect interviews, investigates
and defines the problem.
“A problem well-defined is a problem half-solved.”
- Charles Kettering, Head of Research GM
WHAT IS AN ARCHITECT
A butcher
An architect splits / partitions the problem into smaller
discrete pieces.
“How do you eat an elephant? One bite at a time.”
- Creighton Abrams, US Army General
WHAT IS AN ARCHITECT
A tactician
An architect makes plans according to the big picture
and assigns responsibilities.
“Start small. Think Big.”
- Steve Jobs
WHAT IS AN ARCHITECT
A judge
An architect needs to understand trade-offs
and make trade-offs on quality attributes.
“There are no solutions. Only trade-offs.”
- Thomas Sowell, Economist, Social Theorist, Stanford University
THERE IS NO..
TRADE OFF
Taken from: https://www.cybera.ca/news-and-events/tech-radar/understanding-the-cap-theorem/
WHAT IS AN ARCHITECT
A mentor
An architect needs to grow architectural capabilities of others.
“A rising tide lifts all boats”
- Regional chamber of commerce - New England Council, or JFK
WHAT IS AN ARCHITECT
An entrepreneur
An architect needs to balance risk
and manage technical debt.
“He who is not courageous enough to take risks will
accomplish nothing in life.”
- Muhammad Ali
WHAT IS AN ARCHITECT
Architect responsibilities:
● Define the problem
● Partition the system and assign responsibilities
● Keep an eye on the bigger picture
● Decide trade-offs among Quality attributes (CFRs)
● Grow the team’s architecture skills
● Manage technical debt
Adapted from: Design it! - From programmer to Software Architect, 1st Edition, Page 4-7
1
8
SOFTWARE ARCHITECTURE
©ThoughtWorks 2019 Commercial in Confidence
- Grady Booch
Grady Booch. Taken from https://iasaglobal.org/architecture-vs-design/
©ThoughtWorks 2019 Commercial in Confidence
- Grady Booch
“All architecture is design
but not all design is architecture. ...”
Grady Booch. Taken from https://iasaglobal.org/architecture-vs-design/
©ThoughtWorks 2019 Commercial in Confidence
- Grady Booch
“...Architecture represents the
significant design decisions
that shape a system...”
Grady Booch. Taken from https://iasaglobal.org/architecture-vs-design/
©ThoughtWorks 2019 Commercial in Confidence
- Grady Booch
“...where significant is measured by
cost of change.”
Grady Booch. Taken from https://iasaglobal.org/architecture-vs-design/
©ThoughtWorks 2019 Commercial in Confidence
- Michael Keeling
Design it! - From programmer to Software Architect, 1st Edition, Page 7
©ThoughtWorks 2019 Commercial in Confidence
- Michael Keeling
“Software Architecture is a set of
significant design decisions about how the
software is organised to promote desired
quality attributes and other properties."
Design it! - From programmer to Software Architect, 1st Edition, Page 7
2
5
DESIGN THINKING
RULES OF DESIGN THINKING
RULES OF DESIGN THINKING
PRESERVE
AMBIGUITY
ALL DESIGN
IS REDESIGN
MAKE DESIGN
TANGIBLE
DESIGN FOR
HUMANS
Adapted from: Design it! - From programmer to Software Architect, 1st Edition, Page 16
RULES OF DESIGN THINKING
Process should serve people,
not people serve process
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
Taken from: https://www.sitepoint.com/feature-toggling-explained-with-qandidates-toggle/
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
Developers
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
RULES OF DESIGN THINKING
DESIGN FOR
HUMANS
Actionable checklist:
❏ Fill people’s needs?
❏ Easily understood?
❏ Collaborative process?
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
Delay decisions
to the last responsible moment
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
Past Future
Option C
Option B
Option A
Option C will no longer be viable
beyond this time
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
Delay in decision starts to have cost
(Blocked)
Past Future
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
Why delay:
❏ Change
❏ Information
❏ Pragmatism
❏ Budget?
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
©ThoughtWorks 2019 Commercial in Confidence
Manu Cornet. Taken from https://bonkersworld.net/organizational-charts
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
If I have seen further it is only by
standing on the shoulders of
giants.
-Isaac Newton
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
https://www.michielrook.nl/2016/11/strangler-pattern-practice/
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
One new report
One additional report
One new report
One additional report
Build from scratch
Create report engine
Build from scratch
Create report engine
ALL DESIGN
IS REDESIGN
RULES OF DESIGN THINKING
ARCHITECTURAL PATTERNS
https://gcp.solutions
https://azure.microsoft.com/en-au/solutions/architecture/
https://aws.amazon.com/architecture/
MAKE DESIGN
TANGIBLE
RULES OF DESIGN THINKING
We favor the visible, the embedded, the
personal, the narrated, and the tangible;
we scorn the abstract.
-Nassim Nicholas Taleb
MAKE DESIGN
TANGIBLE
RULES OF DESIGN THINKING
Abstract = Theoretical
Ambiguous = Not “locked in”
MAKE DESIGN
TANGIBLE
RULES OF DESIGN THINKING
Taken from: https://c4model.com/
MAKE DESIGN
TANGIBLE
RULES OF DESIGN THINKING
Taken from: https://medium.com/zenuml/zenuml-sequence-diagram-examples-4e54e3bdca3b
MAKE DESIGN
TANGIBLE
RULES OF DESIGN THINKING
Taken from: https://martinfowler.com/bliki/BoundedContext.html
MAKE DESIGN
TANGIBLE
RULES OF DESIGN THINKING
Taken from: http://www.bredemeyer.com/whatis.htm
7
4
DESIGN MINDSETS
DESIGN MINDSET
DESIGN MINDSET
DESIGN MINDSET
Taken from: Design it! - From programmer to Software Architect, 1st Edition, Page 19
The four design mindset according to the Design it! Book
(order does not matter):
- Understand
- Explore
- Make
- Evaluate
Original diagram in Design it! - From programmer to Software Architect, 1st Edition, Page 22
DESIGN MINDSET
(Diagram removed)
The diagram shows that you need to understand
business goals, explore technology, make
prototype and evaluate prototype against
business goals
DESIGN MINDSET: UNDERSTAND
● Empathy
○ Choose one thing / Trade-off slider
○ Empathy map
○ Stakeholder map
○ Interview stakeholders
○ CFR requirements gathering
Taken from: https://pragprog.com/book/mkdsa/design-it
DESIGN MINDSET: EXPLORE
● Vision / Big picture
○ Divide and Conquer
○ Group Poster
○ Round Robin Design
○ Whiteboard jam
○ Event Storming
○ Concept Map
Taken from: https://pragprog.com/book/mkdsa/design-it
DESIGN MINDSET: MAKE
● Concept to artefacts.
Models, prototypes, documents.
○ Architecture Decision Records
○ Greatest hits reading list (curated list)
○ Inception deck
○ Spike (prototype to learn / decide)
○ Sequence diagram
○ Modular decomposition diagram
Taken from: https://pragprog.com/book/mkdsa/design-it
DESIGN MINDSET: EVALUATE
● Risks analysis
○ Architecture Briefing
○ Code Review
○ Risk Storming
○ Decision Matrix
○ Sanity Check
○ Scenario Walkthrough
Taken from: https://pragprog.com/book/mkdsa/design-it
8
3
DECISION MAKING
WHO MAKES DECISIONS?
WHO MAKES DECISIONS?
R
A
C
I
Responsible Who is performing the task?
Accountable Who makes decisions and liable?
Consulted Who has information to help?
Informed Who needs to be updated on
progress?
WHO MAKES DECISIONS?
Accountable
Consulted
Responsible
©ThoughtWorks 2019 Commercial in Confidence
- Michael Keeling
“Software Architecture is a set of
significant design decisions about how the
software is organised to promote desired
quality attributes and other properties."
Design it! - From programmer to Software Architect, 1st Edition, Page 7
Quality Attributes
WHO MAKES WHAT DECISIONS?
Accountable
Consulted
Responsible
Inertia
WHO MAKES WHAT DECISIONS?
Accountable
Consulted
Responsible
Risk
WHO MAKES WHAT DECISIONS?
Accountable
Consulted
Responsible
ARCHITECTURAL GUARDRAIL
“Manual Fitness Functions”
SENSIBLE DEFAULTS
“f.a.q.”
DESIGN DECISIONS: HOW?
Quality attr.
Risk
Inertia
9
4
TIME INVESTMENT
TIME INVESTMENT
Original Equation can be found in Design it! - From programmer to Software Architect, 1st Edition, Page 29
(Equation removed)
There is an equation here that shows total project
time as a sum of architecture time, development
time and rework time.
Original diagram can be found in Design it! - From programmer to Software Architect, 1st Edition, Page 30
TIME INVESTMENT
(Diagram removed)
There is a diagram here that shows the sweet spot
of how much time you should spend on
architecting type activities.
The sweet spot really depends on the size of the
project. The larger the project, the more time
you should spend due to the reduction in
rework time.
TIME INVESTMENT
However, please consider:
● Cost of change:
○ Sunk cost of analysis effort
○ Sunk cost of existing work
● Wrench in the works:
○ Incomplete information “We did not know..”
○ Incorrect assumptions “We thought we knew..”
○ Changing environments “What we knew is obsolete..”
99
Let’s sum up
©ThoughtWorks 2019 Commercial in Confidence 100
Did you get what you came here for?
Did you uncover:
● What an architect is?
● What software architecture is?
● How design fits into architecture?
● When the right time to make technical decisions is?
● Who makes what technical decisions?
● What the primary focus for technical decision making is?
Was is worth your 45+ minutes?
WHAT IS AN ARCHITECT
Original diagram can be found in Design it! - From programmer to Software Architect, 1st Edition, Page 4
(Diagram removed)
There is a diagram here that shows an architect as
someone sitting in the intersection between
business, technology and users.
WHAT IS AN ARCHITECT
Investigator Butcher Tactician
Judge
Instructor Entrepreneur
WHAT IS
SOFTWARE ARCHITECTURE
Software architecture:
● Significant design decisions
○ Significant = cost of change
○ Design = intentional
● Software organisation (patterns)
● Quality attributes
RULES OF DESIGN THINKING
PRESERVE
AMBIGUITY
ALL DESIGN
IS REDESIGN
MAKE DESIGN
TANGIBLE
DESIGN FOR
HUMANS
Adapted from: Design it! - From programmer to Software Architect, 1st Edition, Page 16
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
Past Future
Option C
Option B
Option A
Option C will no longer be viable
beyond this time
PRESERVE
AMBIGUITY
RULES OF DESIGN THINKING
Delay in decision starts to have cost
(Blocked)
Past Future
DESIGN MINDSET
Taken from: Design it! - From programmer to Software Architect, 1st Edition, Page 19
The four design mindset according to the Design it! Book
(order does not matter):
- Understand
- Explore
- Make
- Evaluate
WHO MAKES WHAT DECISIONS?
Accountable
Consulted
Responsible
Quality attr.
Risk
Inertia
Design it! - From programmer to Software Architect, 1st Edition, Page 30
TIME INVESTMENT
(Diagram removed)
There is a diagram here that shows the sweet spot
of how much time you should spend on
architecting type activities.
The sweet spot really depends on the size of the
project. The larger the project, the more time
you should spend due to the reduction in
rework time.
SOURCE MATERIAL
111
Questions?
©ThoughtWorks 2019 Commercial in Confidence
Thank you
112
Liauw Fendy
lfendy@thoughtworks.com
@lfendy
113
Feedback..
bit.ly/2XcsWIx

The layperson's guide to software architecture