Is Software Architecture
Really Necessary?
Eberhard Wolff
Head of Architecture
https://swaglab.rocks/
https://ewolff.com/
Slide 2
Slide 2 text
Yes?
You do software
architecture?
Wow!
Probably you do it,
too…
Slide 3
Slide 3 text
An Example
Slide 4
Slide 4 text
Example
•Sitting at the computer
•Writing some code
•Reimplementing an importer for some data
•Just one person
•Looks simple
•This is basic software development.
•Surely, I am not doing architecture?
What is Software Architecture?
“Architecture is about the important stuff.
Whatever that is.”
Ralph Jonson
https://martinfowler.com/architecture/
Slide 8
Slide 8 text
Architecture = Important Stuff
•There is always something important.
•So, there is always architecture.
•But what is important?
•Is this definition helpful?
•Almost chauvinistic:
Architecture is important.
The rest isn’t.
Slide 9
Slide 9 text
Architecture: Alternative Definition
Architecture
Structure
Technology
decision
Quality
requirement
a.k.a. non-functional
requirements
e.g. performance,
maintainability,
security, user
friendliness, …
Slide 10
Slide 10 text
Back to the Example
•Why is the importer rewritten?
•Lack of maintainability?
•Lack of performance?
•Other reasons?
Slide 11
Slide 11 text
Architecture: Alternative Definition
Architecture
Structure
Technology
decision
Quality
requirement
Quality requirement
not reached
Revise to reach
quality attributes
Revise to reach
quality attributes
Slide 12
Slide 12 text
Rewriting the Importer
•Quality requirements not matched
•Architecture decision: rewrite
Ruled-out options: e.g. improve just a part of the code
•Must decide about technologies
•Must decide about structure
•Should reach quality requirement after rewrite
Slide 13
Slide 13 text
Rewriting the importer is an
architecture exercise!
Slide 14
Slide 14 text
What Does That Mean for Architecture?
•Developer does architecture in this case.
•There is not really anything magic about it.
•There are some pretty weird ideas about what
architecture is.
Slide 15
Slide 15 text
Probably you do
architecture, too…
Slide 16
Slide 16 text
Is software architecture really
necessary?
Slide 17
Slide 17 text
Can we opt out of software
architecture?
Slide 18
Slide 18 text
Architecture: Alternative Definition
Architecture
Structure
Technology
decision
Quality
requirement
Slide 19
Slide 19 text
Can We Opt Out of Software Architecture?
•There will be quality requirements.
•There will be a structure of the system.
•There will technology decisions.
•You can’t opt out of software architecture.
Slide 20
Slide 20 text
Can We Opt Out of Software Architecture?
•You can just ignore software architecture
…i.e. make random decisions
…without thinking too deeply about it
…which is probably not “opt out”.
•And the results will probably be unpleasant…
Slide 21
Slide 21 text
What Now?
•Opt in to software architecture!
•Lots of decisions
•Make them explicit!
Slide 22
Slide 22 text
Decisions
•Lots of decisions!
•Even more options!
•Each decision is the death of all options but one.
Slide 23
Slide 23 text
First Decision
•First decision: Priorities
•E.g. whatever caused the rewrite – you better fix it!
•E.g. performance
•So make sure performance is met.
•Understand why the current solution is too slow
•Load tests?
Slide 24
Slide 24 text
More Priorities
•When is the last responsible moment?
•Later means more information and better decisions.
•Subjective – and depends on courage
Slide 25
Slide 25 text
Decisions
•Might be intuitive
•Might need to be documented
•Might need to be revised
Slide 26
Slide 26 text
Architecture Decision Record
(ADRs)
Status
Context
Decision
Consequences
Michael Nygard
We have several clients who
are stabilizing their current
systems, …
but looking toward a larger
rearchitecture in the not-too-
distant future.
By writing these intentions
down, we don't
inadvertently make those
future changes harder.
Slide 27
Slide 27 text
Architecture
•Architecture is a means to an end
(a successful project)
•As little architecture work as possible
•But how little is enough?
•For an importer one persons writes, no document
might be needed.
Slide 28
Slide 28 text
Team
Slide 29
Slide 29 text
Team
•More developers
…or your future self
•Documentation becomes more important.
•Process becomes more important.
Slide 30
Slide 30 text
Traditional Architect
•Most Experienced Person
•For every detail?
•For every technology?
•Unrealistic
•Making all important decisions
•Puts enormous pressure on the architect.
Architects
Slide 31
Slide 31 text
Most Experienced Person
•Quite sad
•Use the technical
expertise of the team
•...and grow the team
Architects
Team
Slide 32
Slide 32 text
Understanding the System
•Architects need to understand
the system.
•Systems too large for one
person.
•Use expertise of the team!
•Each one will understand
some part.
Architects
Team
Slide 33
Slide 33 text
Traditional Architect
•Define the architecture
•i.e. make all relevant decisions
•Enforce the architecture
Architects
Slide 34
Slide 34 text
Decisions
•Understand the team’s problems
•Seek feedback about
possible decision
•Communicate decisions
Architects
Team
Slide 35
Slide 35 text
Quality of Decision vs Autonomy
•Decisions have two levels:
•Quality of the decision
•How the decision is made impacts autonomy
•E.g. let the team decide or push a decision through
Slide 36
Slide 36 text
Quality of Decision vs Autonomy
JavaScript Framework: Architect pushes decision through
Quality of the
Architecture
Autonomy
Architect probably
thinks the
decision is great
Team might
actually have
some expertise.
Slide 37
Slide 37 text
Quality of Decision vs Autonomy
Quality of the
Decision
Autonomy
Team might
actually have
some expertise.
Even if it is great
– is it worth it?
Architect probably
thinks the
decision is great
JavaScript Framework: Architect pushes decision through
Slide 38
Slide 38 text
Quality of Decision vs Autonomy
JavaScript Framework: Let the team decide
Quality of the
Decision
Autonomy
Slide 39
Slide 39 text
Decisions
•Moderate, listen, convince
•Don’t enforce
•Make your expertise usable
•General rule for
managing
self-organization
Architects
Team
Slide 40
Slide 40 text
Why seems an opt-out of
software architecture possible?
Slide 41
Slide 41 text
Why Opt-out Seems Possible
•Architecture always exists.
•But it might not be explicit.
•No documentation
•Not too complex
Slide 42
Slide 42 text
Why Opt-out Seems Great
•Architecture and architect might
be disconnected from reality.
•Ivory tower
•Result: Resistance
Slide 43
Slide 43 text
Why Opt-out Seems Great
•Architecture might be bureaucracy
•Unnecessary documentation
Slide 44
Slide 44 text
Can you have too much
architecture?
Slide 45
Slide 45 text
Too Much Architecture?
•Too much effort for too little result
•i.e. too much documentation for too little code
•How much documentation would you write for the
importer?
Slide 46
Slide 46 text
Too Little Architecture?
•Not thinking about quality goals
•Not deciding about a great structure
Slide 47
Slide 47 text
What is typical? Too little or
too much architecture?
Slide 48
Slide 48 text
Too Little vs. Too Much
•Too little: You end up with an architecture mess.
•Too much: Bureaucracy
Slide 49
Slide 49 text
Do We Do Too Little or Too Much?
•Crossovers: Software engineers who used to be
engineers in other fields
•Crossovers seem to think we should use a more
methodical process.
https://hillelwayne.com/post/what-we-can-learn/
Architecture Theatre
•Kevlin Henney
•Can there be too much architecture?
•Hierarchical, bureaucratic, committee-driven approach
opposes to the very idea of actually developing software
example of 'not enough architecture’
'pure architecture theatre'
https://mastodon.social/@kevlin/112003129757159797
Slide 52
Slide 52 text
Architecture and AI
•LLM generate an architecture documentation
= “architecture theatre”?
•Lots of text
…but no thought process
…and probably no real decisions
…or open questions
Is Software Architecture Really Necessary?
•Software architecture =
structure + technical decisions
•Driver: Quality requirements
•You can‘t opt-out of software architecture!
•But you can give it too little thought
…or play architecture theatre.
Slide 57
Slide 57 text
DRINK A
VIRTUAL COFFEE
WITH ME!
https://calendly.com/eberhard-wolff-swaglab/
Slide 58
Slide 58 text
Download here!
Send email to [email protected]
Slides
+ more
Powered by Amazon Lambda & Microservices
Email address logged for 14 days,
wrong addressed emails handled manually