Slide 1

Slide 1 text

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?

Slide 5

Slide 5 text

What is Architecture?

Slide 6

Slide 6 text

https://software-architektur.tv/2022/02/11/folge109.html

Slide 7

Slide 7 text

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/

Slide 50

Slide 50 text

https://software-architektur.tv/2024/03/27/folge209.html

Slide 51

Slide 51 text

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

Slide 53

Slide 53 text

https://software-architektur.tv/2024/01/26/folge199.html

Slide 54

Slide 54 text

https://software-architektur.tv/2025/04/11/episode260.html

Slide 55

Slide 55 text

Conclusion

Slide 56

Slide 56 text

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