Before you design, understand
Lesson 1 established that a solution architect is accountable for fit. But fit to what? You cannot design a solution that fits requirements you have not surfaced, and the requirements that matter most are usually the ones nobody stated.
This lesson is about extracting them. It is the least glamorous part of architecture and the highest-leverage, because a design built on wrong or missing requirements is not a fixable mistake, it is the wrong building.
Requirements come in two fundamentally different kinds, and confusing them is a classic failure:
- Functional requirements: what the system does. "Customers can reset their password." "The system generates a monthly invoice." Features and behaviors.
- Non-functional requirements (NFRs): how well it must do it. "Handle 10,000 concurrent users." "Be available 99.9 percent of the time." "Respond in under 200 milliseconds." Qualities and constraints.
Here is the counterintuitive truth this lesson builds toward: the non-functional requirements usually drive the architecture more than the functional ones. What the system does often has many possible designs. How well it must do it narrows those designs brutally, and often to one. Two systems with identical features can need completely different architectures purely because of their NFRs.
So the architect's central skill is not listing features. It is uncovering, and pinning down, the qualities the system must have, which is where most of the design pressure comes from.

