Be Software Architecture Wise
Be Wise Apps

Leer en español · Lire en français · Auf Deutsch lesen

Chapter 1 of 12 · Beginner to intermediate

What Software Architecture Is

This chapter explains what software architecture is and why it matters. It compares the standard definitions, separates architecture from design, shows through real incidents how structural decisions drive cost, quality and risk, and describes what architects do. It then covers stakeholders and their concerns, decisions and trade-offs, technical debt and erosion, and where architecture fits in modern iterative delivery. It is written for developers moving towards architectural responsibility and for anyone who works with architects, and it assumes only the building blocks from Chapter 0.

Video introduction to Chapter 1

6 min · narrated, with captions
Listen only (audio)
Read the transcript

Welcome to Chapter 1: What Software Architecture Is. Chapter zero gave you the building blocks. This chapter steps back and asks what it means to arrange those blocks deliberately, who does it, and why it is worth the effort. It gives you the vocabulary the rest of the course depends on, and a way of thinking you can apply to any system, from a small booking app to a national payments platform.

Every software system has an architecture, whether anyone designed it or not. It is the set of fundamental structures that make up the system, and the significant decisions that produced them. Those structures decide far more than most people realise: how fast and reliable the system is, how much it costs to run, and how many teams can work on it at once. Above all, they decide how expensive the system will be to change next year. Features are what a system does. Architecture largely decides how well it does them, and what it costs to do something different.

This chapter is written for developers who are moving towards architectural responsibility. It is also for anyone who works with architects and wants to understand what they do, and why. It builds on the building blocks from Chapter zero: components, data stores, networks and APIs. If you are comfortable with those, you are ready. And it leads into Chapter 2, which takes the goals of an architecture and makes them precise and measurable, as quality attributes.

The chapter has eight sections. Section one point one compares the definitions that matter, from the international standard and from the Software Engineering Institute, or SEI, to practitioners who stress shared understanding and decisions that are expensive to change. Section one point two tackles the most common confusion: where architecture ends and design begins. The answer is that there is no wall, only a continuum ordered by significance. Section one point three makes the case for caring, grounded in three real cases: the Knight Capital trading loss of twenty twelve, the troubled HealthCare dot gov launch of twenty thirteen, and a twenty twenty-three change at Amazon Prime Video.

This diagram from Section one point one shows the ideas the definitions share, using a food-delivery system. The dashed line is the system's boundary. The boxes inside it are elements: a mobile app, an order service, an orders database, a courier service and a payment module. The arrows are relations. The app calls the order service over HTTPS. The order service queries the database with SQL, and sends an event to the courier service. Small labels record properties. The order service, for example, is stateless, with three copies running. Outside the boundary is the environment: the customers, couriers and restaurants, and the card payment provider. And the environment is more than other systems. It also includes law, budget, the organisation and its teams, and the cloud platform. You cannot understand an architecture without them.

Section one point four looks at the people: what architects actually do, the different kinds of architect, why architecture is a role before it is a job title, and the long-running debate about whether architects should still write code. Section one point five widens the lens to stakeholders, everyone with an interest in the system, from users and developers to regulators. It shows how conflicting concerns are made explicit, rather than settled by whoever shouts loudest. Section one point six turns to decisions and trade-offs: what a good decision contains, which decisions can easily be reversed and which cannot, and the idea of deciding at the last responsible moment.

The last two sections are about time. Section one point seven explains technical debt as Ward Cunningham originally meant it, how it differs from mere mess, and how architectures erode and drift away from their intended shape. Section one point eight places architecture in the delivery lifecycle, between big design up front and purely emergent design, and shows a practical middle ground: just enough architecture, at the right time, checked continually.

This diagram from Section one point two shows how to tell architecture from design. Decisions towards the left are more architectural; towards the right, more a matter of design and code. The first test is the cost of reversing a decision: months of work for many teams at one end, minutes for one person at the other. The second is scope of impact: the whole system or organisation, or just one function or class. The third is the effect on key qualities. The dots place one real decision, the choice of message format, on each line, and on all three it leans towards the architectural end.

If you remember one thing from this chapter, make it this. Architecture is the set of decisions that are expensive to get wrong. The architect's job is to identify those decisions, make them deliberately with the right people, record why, and keep them under review, while making as many other decisions as possible cheap to change. The rest of the course applies that idea.

You can read the sections in order, which is best if the ideas are new, or dip into the ones you need. The whole chapter takes about two and a half hours to read. Each section ends with a few self-check questions. Try to answer them in your head before you look, so you can see what has stuck. When you are ready, there is an optional chapter test, with twenty multiple-choice questions and two written answers. Allow about forty five minutes. The pass mark is eighty per cent, the same as for every chapter test in the course.

That is the map of Chapter 1. Begin with Section one point one, where we compare the standard definitions of software architecture and find what they have in common. See you there.

Download chapter (PDF)Read in the app

At a glance

You will learn to

  • Explain the ISO/IEC/IEEE 42010:2022 and SEI definitions of software architecture and the ideas they share.
  • Distinguish module, component-and-connector and allocation structures, and an architecture from its description.
  • Classify decisions as architectural or design using reversibility, scope and effect on quality attributes.
  • Analyse how structural decisions contributed to real incidents such as Knight Capital and HealthCare.gov.
  • Describe the responsibilities, skills and kinds of architect, and how architects stay hands-on.
  • Identify stakeholders and their concerns, and make conflicting concerns explicit.
  • Evaluate architectural decisions as trade-offs, considering reversibility and timing.
  • Explain technical debt, erosion and drift, and how to detect and manage them across the lifecycle.

Before you start

Chapter 0, or a working knowledge of components, databases, APIs, networks and the cloud.

Time

About 2½ hours to read; 45 minutes for the test.

Key terms

Software architecture · Architecture description · Structure · Architecturally significant · Quality attribute · Cost of change · Stakeholder · Concern · Trade-off · Reversibility · Technical debt · Architecture erosion · Fitness function · Conway's law

Why this chapter comes first

Every software system has an architecture, whether anyone designed it or not. It is the set of fundamental structures that make up the system (its main parts, how they connect and what properties they have) and the significant decisions that produced them. Those structures decide far more than most people realise: how fast and reliable the system is, how much it costs to run, how many teams can work on it at once, and, above all, how expensive it will be to change next year. Features are what a system does; architecture largely decides how well it does them and what it costs to do something different.

Chapter 0 introduced the building blocks: programs, data stores, networks, APIs, servers and the cloud. This chapter steps back and asks what it means to arrange those blocks deliberately, who does it, and why it is worth the effort. It gives you the vocabulary that the rest of the course depends on, and a way of thinking that you can apply to any system, from a small booking app to a national payments platform.

What architecture is, and what it is not

The first two sections are about definitions, because muddled definitions lead to muddled work. Section 1.1 compares the definitions that matter: the international standard ISO/IEC/IEEE 42010:2022, which speaks of the fundamental concepts or properties of a system in its environment and the principles that govern its evolution; the Software Engineering Institute's definition, which speaks of the structures needed to reason about a system, made of elements, relations and their properties; and practitioners' definitions that stress shared understanding and decisions that are expensive to change. It shows what they have in common, and introduces three kinds of structure every system has: how its code is divided, what runs and talks to what, and how software maps onto infrastructure and teams.

Section 1.2 then tackles the most common confusion: where architecture ends and design begins. The answer is that there is no wall, only a continuum ordered by significance. A decision is architecturally significant when it is costly to reverse, wide in scope or decisive for a key quality, which is why a humble convention such as how money amounts are stored can be more architectural than a large box on a diagram. The section also separates the levels at which the word is used: enterprise, solution and software architecture, with data, security and infrastructure architecture cutting across them.

Why it matters and who does it

Section 1.3 makes the case for caring. It shows how quality attributes such as availability and performance emerge from structure rather than from individual lines of code, how the cost of change grows as more is built on a decision, and how architecture shapes risk, team organisation (through Conway's law), communication and estimation. Three real cases, told from primary sources, ground the argument: the Knight Capital trading loss of August 2012, the troubled HealthCare.gov launch of October 2013, and Amazon Prime Video's 2023 decision to move one monitoring service from distributed serverless steps to a single process, which reportedly cut its cost by over 90% and illustrates that architecture is about fit, not fashion.

Section 1.4 looks at the people. It describes what architects actually do, using the eight expectations set out by Mark Richards and Neal Ford and the tasks in the iSAQB Foundation curriculum; the different kinds of architect; why architecture is a role before it is a job title; why architects value breadth of knowledge; and the long-running debate about whether architects should still write code.

Section 1.5 widens the lens to stakeholders (everyone with an interest in the system, from users and developers to operations staff, data protection officers and regulators) and their concerns, and shows how conflicting concerns are made explicit rather than settled by whoever shouts loudest. Section 1.6 turns to decisions and trade-offs: the anatomy of a good decision, the difference between decisions that can easily be reversed and those that cannot, the idea of deciding at the last responsible moment, and the cognitive traps that lead capable people astray.

Architecture over time

The last two sections are about time. Section 1.7 explains technical debt as Ward Cunningham originally meant it in 1992, how it differs from mere mess, and how architectures erode and drift away from their intended shape; it shows how to detect the damage and how to explain it in business terms. Section 1.8 places architecture in the delivery lifecycle: the old argument between big design up front and purely emergent design, and the practical middle ground of risk-driven, continuous and evolutionary architecture in which a team does just enough architecture, at the right time, and keeps checking that it still fits.

The one idea to take away

If you remember one thing from this chapter, make it this: architecture is the set of decisions that are expensive to get wrong, and the architect's job is to identify those decisions, make them deliberately with the right people, record why, and keep them under review, while making as many other decisions as possible cheap to change. Everything else in this course, from quality attributes in Chapter 2 to the design of AI-enabled systems in Chapter 12, is an application of that idea.

The 8 sections

1.1 · Beginner · 18 minDefining architectureThe international standard, the SEI and leading practitioners define software architecture differently. Learn the main definitions, what they share, and the three kinds of structure every system has.Read →1.2 · Beginner · 17 minArchitecture versus designArchitecture and design are one continuum of decisions. Learn what makes a decision architecturally significant, how strategic and tactical decisions differ, and how enterprise, solution and software architecture relate.Read →1.3 · Beginner · 19 minWhy it mattersArchitecture decides a system's qualities, the cost and speed of every future change, its risks and how teams can work. Real cases from Knight Capital, HealthCare.gov and Prime Video show why.Read →1.4 · Beginner · 18 minThe architect's roleWhat architects actually do day to day, the eight expectations described by Richards and Ford, the kinds of architect, breadth versus depth, and whether architects should still write code.Read →1.5 · Beginner · 18 minStakeholders and concernsWho has a stake in a system, what ISO/IEC/IEEE 42010 means by a concern, how to map and engage stakeholders, and how conflicting concerns become explicit requirements, decisions and views.Read →1.6 · Intermediate · 20 minDecisions and trade-offsWhy every architectural choice is a trade-off, how a well-formed decision is structured, one-way and two-way doors, the last responsible moment, designing for reversibility, cognitive traps and the weighted decision matrix.Read →1.7 · Intermediate · 20 minTechnical debtWhat Ward Cunningham's debt metaphor really meant, principal and interest, Fowler's debt quadrant, why architectural debt costs most, erosion and drift, and how to detect, manage and explain debt in business terms.Read →1.8 · Intermediate · 19 minArchitecture in the lifecycleBig design up front versus emergent design, what the Agile Manifesto really says, Fairbanks' risk-driven model, intentional architecture and the runway, continuous architecture, walking skeletons, spikes, and architecture in DevOps.Read →

Chapter test

Test your understanding of Chapter 1

Optional: 20 multiple-choice questions and 2 short written answers, drawn afresh from a bank of 72 questions. Pass mark 80%. Passing every chapter test, then the final assessment, earns the Be Wise Certificate of Completion.

Take the Chapter 1 test in the app

Further reading