Overview

3 Good enough architecture vs. perfect architecture

Architectural design is presented as a practical balance between an appealing ideal and the realities of delivery. Perfect architecture promises clean boundaries, elegant patterns, and a complete end state, but it usually assumes conditions that do not exist in real projects: unlimited time and budget, stable requirements, highly skilled teams, and flawless organizational discipline. In practice, architects must avoid drifting into overengineering by adding abstractions, services, or frameworks for hypothetical futures instead of real needs.

Good-enough architecture is not lower-quality architecture; it is design whose rigor matches the system’s actual constraints, risks, and expected lifespan. It solves the current problem, preserves room for evolution, and focuses extra care on decisions that are expensive to reverse, such as deployment, security, data ownership, and observability. The chapter emphasizes that architecture should evolve through small, evidence-based milestones, using feedback to strengthen the design only when real need appears, rather than trying to build the entire future upfront.

The chapter also frames architecture as an economic and risk-based decision. A design is only good enough if the value it creates justifies its cost in time, money, attention, and operational effort, and that value depends on the organization’s context. At the same time, some areas demand much higher rigor because failure would be costly, hidden, irreversible, or harmful, especially in security, data integrity, compliance, finance, and mission-critical resilience. The key test is whether the architecture meets the minimum acceptable floor while avoiding unnecessary complexity, with clear revisit triggers for when changing conditions require a different level of rigor.

Good-enough architecture is not a fixed end state. It emerges through repeated choices, visible trade-offs, feedback from reality, and deliberate adaptation.
Good-enough architecture emerges from balancing competing forces rather than maximizing a single quality attribute.
Designing for the ideal end state often delays first value and pushes feedback later, when reversal is more expensive. A good-enough and evolvable approach delivers an early slice, uses feedback sooner, and strengthens the architecture as evidence improves.
Not every architectural concern deserves the same level of rigor. Good architects distinguish between areas that can absorb compromise and those where failure is unacceptable.

Summary

  • Perfect architecture is aspirational, but good-enough architecture is what systems can actually ship, operate, and evolve.
  • Architects must balance ideal design against real constraints such as time, budget, team capability, shifting requirements, and organizational priorities.
  • Over-engineering, designing for hypothetical futures, and introducing patterns the team cannot sustain are common signs that architecture is drifting away from reality.
  • Good-enough architecture solves the current problem without unnecessary complexity, preserves room for evolution, and avoids paying the cost of future complexity too early.
  • Strong architectural decisions are often made at the last responsible moment, when enough is known to act without closing off future options too early.
  • Architecture has economic weight: elegant design matters only if it helps deliver value to the organization.
  • Some areas, such as security, data integrity, compliance, and mission-critical resilience, require far less compromise and much greater rigor.
  • Good architects judge what is necessary, sustainable, and valuable at a given moment.

FAQ

What is the main difference between perfect architecture and good-enough architecture?

Perfect architecture assumes near-ideal conditions and optimizes for elegance, purity, and a complete end state. Good-enough architecture is designed for real conditions, focuses on delivering and operating the current solution well, and preserves room for evolution.

Why is perfect architecture often unrealistic in real projects?

Real projects have deadlines, budget limits, changing requirements, evolving team capability, and shifting organizational priorities. Because of these constraints, an idealized design that looks great on paper often becomes too costly or too rigid in production.

What does it mean to “design for the current problem”?

It means building the simplest architecture that solves the known need well, instead of trying to anticipate and implement every possible future scenario. The goal is to avoid paying for hypothetical complexity before there is evidence that it is needed.

How can architects recognize perfection drift?

Perfection drift often shows up as early over-engineering, abstractions built “just in case,” patterns the team cannot maintain, or optimizing for an ideal end state instead of current value. A useful diagnostic question is whether the added complexity solves a real current problem.

When is it reasonable to delay an architectural abstraction?

It is reasonable to delay abstraction when there is little real variation today, the future need is only hypothetical, and the abstraction would add complexity without clear benefit. In many cases, it is better to wait until repeated patterns or evidence make the abstraction clearly worthwhile.

What are the key traits of good-enough architecture?

Good-enough architecture solves the current problem without unnecessary complexity, acknowledges real constraints such as time and cost, and leaves room for evolution. It also keeps expensive-to-reverse decisions visible and cheap-to-change decisions flexible.

How does good-enough architecture relate to economics?

Architecture is not good enough if its cost is not justified by the value it creates. The chapter emphasizes that technical elegance alone does not matter if the system consumes too much time, money, or attention while producing little measurable value.

When does perfection actually matter more than compromise?

Perfection matters in high-consequence areas where failure is expensive, invisible, hard to reverse, or dangerous. Examples include security boundaries, data integrity, regulatory compliance, financial calculations, and mission-critical resilience.

How can you tell if a design is good enough?

Test whether it meets the minimum acceptable floor of correctness, security, operability, understandability, and recoverability. Then ask whether more elaborate design would cost more than it is worth, whether the team can support it, and whether it can evolve as conditions change.

What should trigger revisiting a good-enough architecture decision?

A decision should be revisited when value, risk, scale, ownership, team capability, or uncertainty changes significantly. Triggers may include new consumers, higher availability needs, repeated integration patterns, compliance changes, or a shift from temporary to strategic use.

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
  • Software Architecture Decision-Making 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
  • Software Architecture Decision-Making ebook for free