Overview

2 Understanding the problem

Engineers are naturally drawn to solutions, but the chapter argues that strong architectural decisions begin by understanding the problem first. It uses search as a recurring example to show how teams often jump too quickly to familiar answers such as a CRM, a message queue, or full-text search, when the real need may be simpler and better served another way. The key habit is to stay with the underlying job, listen directly to users when possible, and treat engineering as an active participant in shaping requirements rather than a downstream recipient of them.

From there, the chapter explains how to identify the requirements that truly shape architecture. These architecturally significant requirements are the ones that would force a redesign if missed, because they introduce major complexity, new infrastructure, or whole new components. Non-functional needs are handled through service tiers for availability, durability, latency, load, and volatility, which help teams discuss trade-offs in practical terms instead of abstract numbers. The same capability can sit in very different tiers depending on context, and that context should drive whether the team chooses simplicity, scaling, redundancy, caching, or decoupling.

The chapter also treats compliance as a distinct kind of constraint. Legal requirements are usually binary and should be separated from the specific controls used to satisfy them, while security should be framed through threat modelling and risk-based controls. The practical message is to involve legal, security, product, and engineering early, document the link between requirements and controls, and avoid overengineering when a lighter control is sufficient. When the problem is clear, the architecturally important requirements are identified, and the non-functional and compliance constraints are understood, the team is ready to have a solution discussion with fewer surprises and better trade-offs.

Architecture changes required to add full-text search requirement.
Response time boundaries.
Spider diagrams placing search systems in different service tiers.
Threats lead to identification of security requirements and controls.
Steps to cover before moving to the solution conversation.

Summary

  • The quality of the decision is bounded by the quality of our understanding of the problem. Requirements gathering is the work of building that understanding, an essential part of the decision lifecycle
  • Engineers who rush to solutions risk to solve the wrong problem, or the right problem in the wrong way, because they missed a constraint, an assumption, or an expectation.
  • Jobs-to-Be-Done framing or a simple alternative set of questions is a useful lens to ensure staying with the problem long enough to not shortcut to the solutions space.
  • Direct exposure to user research changes the shape of architectural decisions. People who have seen the workflow tend to optimize for the problem as it actually exists.
  • Architecturally significant requirements (ASRs) are the requirements where, if we miss them, the architecture itself needs to change. The "What would break this" test asks which additional functional requirement would force us to abandon the current design, and it is how we separate ASRs from requirements that merely shape implementation.
  • ASRs deserve architectural-level attention. Most other requirements can be settled at implementation time, where the cost of changing course is much lower.
  • Non-functional requirements are rarely clearly defined. Translating expectations into tiered options gives stakeholders a shared vocabulary and a set of commitments we can design against – Basic through Critical for availability, Minimal through Very High for durability, Instant through Background for latency.
  • Availability and durability are best discussed together, because they are achieved through the same topology decisions.
  • Latency tiers track human perception thresholds that operate whether we acknowledge them or not.
  • Throughput is context-dependent, but the tier idea still applies – different components of the same system live at different scales.
  • Volatility is a property of how often the implementation is expected to change. Different parts of a system belong at different tempos – Foundational, Seasonal, Campaign, or Ephemeral.
  • Compliance is different in shape from the other non-functional dimensions. Legal obligations are mostly binary, security is risk-and-control rather than tiered.
  • Both are best handled by engaging the relevant experts while architectural options are still open, and by keeping requirements separate from controls.
  • A problem description is ready for solution discussion when the job is identified independently of the system, the ASRs have been found jointly, each non-functional dimension has a tier, the compliance constraints are on the table.

FAQ

What is the main risk of jumping to a solution too early?We may solve the wrong problem, or solve the right problem in a way that later violates an important constraint.
Why should engineers participate in understanding the problem instead of leaving it only to product or business roles?Engineers can spot unnecessary complexity, challenge assumptions, and suggest simpler or more cost-effective approaches because they understand the business and technical implications.
What is an architecturally significant requirement (ASR)?An ASR is a requirement that directly affects the system’s architecture; if it is missed or wrong, the architecture itself may need to change.
How can you tell whether a functional requirement is an ASR?Ask: “What would break this design?” If a requirement would force you to redraw the architecture, add major infrastructure, or introduce a new core component, it is likely an ASR.
Why is full-text search used as an example in this chapter?Because it looks like a simple feature request, but in many systems it can force major architectural changes such as adding a dedicated search engine and synchronization pipeline.
What does the chapter mean by thinking in service tiers for non-functional requirements?It means grouping expectations like availability, durability, latency, load, and volatility into named tiers so teams can discuss architecture in practical terms instead of debating exact numbers too early.
What is the difference between availability and durability?Availability asks whether the system is up; durability asks whether the data survives failures. A system can be available again quickly and still have lost recent writes.
Why are compliance requirements treated differently from performance requirements?Compliance requirements are often binary and come from legal, security, or regulatory obligations, while performance dimensions are more naturally expressed as tiers with architectural implications.
What is the difference between a requirement and a control in compliance work?A requirement states what the system must achieve, while a control is the specific implementation chosen to satisfy that requirement. The control can change over time without changing the requirement.
When is a problem ready for a solution discussion?When the job is clear, ASRs are identified, non-functional requirements are tiered, compliance constraints are understood, and the team knows which areas are defined well enough to move forward even if some details remain open.

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Decision Engineering ebook for free
choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • renews monthly, pause or cancel renewal anytime
  • renews annually, pause or cancel renewal anytime
  • Decision Engineering ebook for free