Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Is Software Architecture Really Necessary?

Is Software Architecture Really Necessary?

Software architecture often feels like an unnecessary burden—introducing complexity and slowing down the process of just writing code. Why not skip it altogether? This talk explores whether it’s possible to develop software without architecture and examines the implications of doing so. We’ll uncover why architecture inevitably emerges, whether explicitly designed or not. We’ll discuss the relationship between architecture and qualities like performance, maintainability, and usability, and how these qualities shape the success of any project. Finally, we’ll reflect on the balance needed in architecture—avoiding both overengineering and the pitfalls of "architecture theater"—to focus on solving real-world problems effectively. Whether you are a seasoned architect or a skeptical developer, this session will challenge your perspective on what software architecture truly means and how much of it your project really needs.

Avatar for Eberhard Wolff

Eberhard Wolff

May 12, 2025
Tweet

More Decks by Eberhard Wolff

Other Decks in Technology

Transcript

  1. 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?
  2. What is Software Architecture? “Architecture is about the important stuff.

    Whatever that is.” Ralph Jonson https://martinfowler.com/architecture/
  3. 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.
  4. Architecture: Alternative Definition Architecture Structure Technology decision Quality requirement a.k.a.

    non-functional requirements e.g. performance, maintainability, security, user friendliness, …
  5. Back to the Example •Why is the importer rewritten? •Lack

    of maintainability? •Lack of performance? •Other reasons?
  6. Architecture: Alternative Definition Architecture Structure Technology decision Quality requirement Quality

    requirement not reached Revise to reach quality attributes Revise to reach quality attributes
  7. 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
  8. 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.
  9. 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.
  10. 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…
  11. 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?
  12. More Priorities •When is the last responsible moment? •Later means

    more information and better decisions. •Subjective – and depends on courage
  13. 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.
  14. 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.
  15. Traditional Architect •Most Experienced Person •For every detail? •For every

    technology? •Unrealistic •Making all important decisions •Puts enormous pressure on the architect. Architects
  16. Most Experienced Person •Quite sad •Use the technical expertise of

    the team •...and grow the team Architects Team
  17. 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
  18. 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
  19. 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.
  20. 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
  21. Decisions •Moderate, listen, convince •Don’t enforce •Make your expertise usable

    •General rule for managing self-organization Architects Team
  22. Why Opt-out Seems Possible •Architecture always exists. •But it might

    not be explicit. •No documentation •Not too complex
  23. Why Opt-out Seems Great •Architecture and architect might be disconnected

    from reality. •Ivory tower •Result: Resistance
  24. 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?
  25. Too Little vs. Too Much •Too little: You end up

    with an architecture mess. •Too much: Bureaucracy
  26. 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/
  27. 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
  28. 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
  29. 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.
  30. 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