Devoxx Belgium 2025 - Making significant Software Architecture decisions
BertJanSchrijver
0 views
51 slides
Oct 08, 2025
Slide 1 of 51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
About This Presentation
Making significant Software Architecture decisions - presented at Devoxx Belgium 2025.
Size: 26.67 MB
Language: en
Added: Oct 08, 2025
Slides: 51 pages
Slide Content
[email protected]
Making significant software architecture decisions
Bert Jan Schrijver
@bjschrijver.dev
Bert Jan Schrijver
L e t ’ s m e e t
@bjschrijver.dev
Let’s talk about software.
What is software architecture?
Software architecture == making decisions
It depends.Source: https://static.wikia.nocookie.net/matrix/images/f/fb/Architect.png/revision/latest?cb=20110515094801
On what?!!
•”We’ve always done it like this”
•“We don’t want to do depend on <x>”
•“We need to be future proof”
•Because the product owner wants it
•Because the architect wants it
Bad (reasons for) architecture decisions
Source: https://7216-presscdn-0-76-pagely.netdna-ssl.com/wp-content/uploads/2011/12/confused-man-single-good-men.jpg So how do you make architecture decisions?
It depends.Source: https://static.wikia.nocookie.net/matrix/images/f/fb/Architect.png/revision/latest?cb=20110515094801
On what?!!
•Start with the 5 W’s
•Why are we even here as architects?
•To enable one or more teams to build something
•Why?
•To help a business reach their goals
•Why?
•Because that’s why we even have a job !
➡ Every architecture decision has a business component
Input for architecture decisionsBackground source: GR Stocks on Unsplash
•Requirements
•Functional
•Non-functional / quality attributes
•(Business) constraints
•Which of these impact our architecture the most?
•But: we can never fully fulfil them all
•So we always need to consider
trade-offs between requirements & constraints
Input for architecture decisionsSource: https://medium.com/@jeffwhelpley/the-problem-with-shared-code-124a20fc3d3b
Quality attributes (non functionals)
•Also known as “the ilities”
•Which quality attributes do you now?
•Performance, security, availability, reliability
•In general: ISO 25010
ISO 25010
Which requirements or constraints
are the most important?
It depends.Source: https://static.wikia.nocookie.net/matrix/images/f/fb/Architect.png/revision/latest?cb=20110515094801
On what?!!
On your business.
But how do you prioritise?
Trade-off analysis for software architectureSource: https://images.unsplash.com/photo-1515611926865-4fcb1c2ce28d?ixlib=rb-4.0.3&dl=kelly-sikkema-kxtB2TFBF2g-unsplash.jpg&q=80&fm=jpg&crop=entropy&cs=tinysrgb
•Gather requirements,
quality attributes & constraints
•Select potential solutions
•Discover and weigh trade-offs
•Pick the best fitting solution
•Document decision
•Validate afterwards
Described in “Software Architecture:
The Hard Parts” by Ford, Richards et al
Source: https://images.unsplash.com/photo-1515611926865-4fcb1c2ce28d?ixlib=rb-4.0.3&dl=kelly-sikkema-kxtB2TFBF2g-unsplash.jpg&q=80&fm=jpg&crop=entropy&cs=tinysrgb What is a trade-off?Source: Michael Carducci’s presentation “A Model for Holistic Software Architecture” at Dev2Next, Colorado, october 2025
•Security vs. usability
•Configurability vs. maintainability
•Availability vs. cost
•Performance vs. cost
•Performance vs. maintainability
•Runtime configuration vs. robustness
Examples of trade-offsBackground source: DALL·E
Every architecture decision is a trade-off
24
Trade-off analysis example
Example: tradeoff analysisSource: Neal Ford - Modern Trade-off Analysis for Software Architecture - DDD Europe
Example: tradeoff analysisSource: Neal Ford - Modern Trade-off Analysis for Software Architecture - DDD Europe
Example: tradeoff analysisSource: Neal Ford - Modern Trade-off Analysis for Software Architecture - DDD Europe
It depends.Source: https://static.wikia.nocookie.net/matrix/images/f/fb/Architect.png/revision/latest?cb=20110515094801
On what?!!
Example: tradeoff analysisSource: Neal Ford - Modern Trade-off Analysis for Software Architecture - DDD Europe
Which requirements
and tradeoffs
should you consider?
•Relevant quality attributes
•See ISO 25010
Technical factorsSource: http://www.nasa.gov/images/content/218652main_STOCC_FS_img_lg.jpg
•Developer experience
•Learning curve
•Tool & IDE support
•Documentation &
support
•Integration with current
landscape
•Conway’s law
Organisational factors
•Adoption, popularity &
expertise:
•own team
•industry
•Long-term viability
(Active development,
community & ecosystem)
Business factorsBackground source: DALL·E
•Cost
•Infrastructure
•Licenses
•Support
•Engineers
•TCO
•Time-to-market
•Migration cost vs
benefits after
migration
•Productivity
•Regulatory reqs, legal,
IP risk
•Exit strategy
How to figure out which tradeoffs matter?
•Talk to business / stakeholders
•Force them to choose / prioritise
•Ride the architect elevator
•(Gregor Hohpe - https://architectelevator.com/)
•Figure out what matters to them
When not to compromise?
When risking irreversible damage
to your business.Photo: Dave Lehl
Documenting
architecture decisions
•Project documentation vs system
documentation
•What happens when you don’t document?
Documenting architecture decisions
•Describes:
•Title
•Context
•Status
•Decision
•Options considered
•Consequences
Architecture decision record (ADR)
•Write ADR’s for "architecturally significant"
decisions
•Store them in a central place (Git, for example)
•ADRs are immutable!
•Encourage others to read (& write) ADR’s
•Templates & tools:
•https://adr.github.io
•https://github.com/npryce/adr-tools
•https://github.com/thomvaill/log4brains
Working with ADRs
Validating your architecture
•Once development starts, how do you know the
system stays in conformance with the architecture?
•This is where Fitness functions come in
•Coined by Rebecca Parsons
•Defined as:
An architectural fitness function provides an objective
integrity assessment of some architectural
characteristic(s).
Validating your architecture
•Examples of Fitness function evaluation:
•“We have 17 violations of <x> which is within our
tolerable range of up to 20 violations. So we're good
for now. Let's talk about changing the tolerable range
to allow only 10 violations for the next iteration”
•“We found two unwanted dependencies between the
modules. We must remove these dependencies.”
Architectural fitness functions
•Automating Fitness functions:
•ArchUnit tests
•Load tests
•Alerts on metrics / monitoring
•.. and more
•A failing fitness function is a conversation starter
with the development team ( -Neal Ford)
Architectural fitness functions
Summary
•Gather requirements & constraints
•Brainstorm for possible solutions
•Consider technical, organisational and business
factors
•Discover and weigh trade-offs
•Pick the best fitting solution
•Document the decision (via ADR’s)
•Validate afterwards (via Fitness functions)
Significant software architecture decisions
How to make architecture decisions?
It depends.
On the informed
trade-offs you make.Source: https://images.unsplash.com/photo-1515611926865-4fcb1c2ce28d?ixlib=rb-4.0.3&dl=kelly-sikkema-kxtB2TFBF2g-unsplash.jpg&q=80&fm=jpg&crop=entropy&cs=tinysrgb
Source: https://cdn2.vox-cdn.com/thumbor/J9OqPYS7FgI9fjGhnF7AFh8foVY=/148x0:1768x1080/1280x854/cdn0.vox-cdn.com/uploads/chorus_image/image/46147742/cute-success-kid-1920x1080.0.0.jpg THAT’S IT.
NOW GO KICK SOME ASS!
Questions?
@bjschrijver.dev
Thanks for your time.
Don’t forget to rate this talk!
All pictures belong
to their respective
authors
@bjschrijver.dev
meetup.com/isaqb-nl