The document provides an overview of software architecture concepts for laypersons. It defines an architect as someone who investigates problems, partitions systems, makes plans while considering the big picture, decides tradeoffs, grows team skills, and manages technical debt. Software architecture is described as significant design decisions that shape a system based on cost of change. Key aspects of design thinking discussed are preserving ambiguity, recognizing that all design requires redesign, making designs tangible, and designing for humans. The document also covers who makes decisions, with architects accountable for quality attributes and risk, and discusses investing optimal time in architecture upfront to reduce long-term rework costs.
7. 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.
8. WHAT IS AN ARCHITECT
Investigator Butcher Tactician
Judge
Instructor Entrepreneur
9. 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
10. 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
11. WHAT IS AN ARCHITECT
A tactician
An architect makes plans according to the big picture
and assigns responsibilities.
“Start small. Think Big.”
- Steve Jobs
12. 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
14. TRADE OFF
Taken from: https://www.cybera.ca/news-and-events/tech-radar/understanding-the-cap-theorem/
15. 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
16. 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
17. 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
27. 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
28. RULES OF DESIGN THINKING
Process should serve people,
not people serve process
DESIGN FOR
HUMANS
64. 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
67. 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
76. 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
77. 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
84. 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?
94. 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.
95. 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.
96. 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..”
100. 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.
101. WHAT IS AN ARCHITECT
Investigator Butcher Tactician
Judge
Instructor Entrepreneur
102. WHAT IS
SOFTWARE ARCHITECTURE
Software architecture:
● Significant design decisions
○ Significant = cost of change
○ Design = intentional
● Software organisation (patterns)
● Quality attributes
103. 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
106. 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
107. WHO MAKES WHAT DECISIONS?
Accountable
Consulted
Responsible
Quality attr.
Risk
Inertia
108. 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.