Skip to content

1.5 Decision-making and governance

Overview and motivation

Every software system is the sum of thousands of decisions: which database, which architecture, which library, whether to build or buy, when to take on debt and when to pay it down. Governance is how you make these decisions well and consistently, involve the right people without creating bottlenecks, and preserve the reasoning so future teams are not doomed to relearn it. In a small team, decisions happen in conversation and live in shared memory. At scale, that memory evaporates. People leave, teams reorganize, and the "why" behind a critical choice is lost, leaving successors to either cargo-cult it or rip it out blindly. Good governance is the machinery that makes decisions visible, deliberate, and durable across a large and changing organization.

The central challenge for large teams is balancing autonomy against alignment. Push all decisions up to a central board, and you get consistency, but at the cost of crippling bottlenecks and disempowered teams. Push all decisions down, and you get speed, but at the cost of chaos: incompatible technologies, duplicated effort, and repeated mistakes. The mature answer is neither centralization nor anarchy. It is a layered model. Teams decide most things locally within a well-marked "paved road," while a lightweight, transparent process governs the genuinely cross-cutting and hard-to-reverse choices. The goal is to make good decisions the easy default, and to spend scarce governance attention only where it truly matters.

Enterprises and government carry heightened stakes. They must satisfy auditors, regulators, and oversight bodies who demand documented, defensible decisions. They work on long time horizons, where a poor architectural choice or an unmanaged pile of technical debt can burden them for a decade. And their procurement and compliance obligations make build-versus-buy decisions especially consequential and hard to reverse. For these organizations, disciplined, well-recorded decision-making is not bureaucracy for its own sake. It is risk management, institutional memory, and the foundation of accountability.

Key principles

  • Record decisions and their reasoning; a decision without a rationale is a liability.
  • Push decisions to the lowest level that has the context, within clear guardrails.
  • Match the weight of the process to the weight and reversibility of the decision.
  • Distinguish reversible ("two-way door") from irreversible ("one-way door") decisions and govern them differently.
  • Prefer paved roads and defaults over case-by-case approvals.
  • Treat technical debt as a managed portfolio, not a moral failing to hide.
  • Make governance transparent; hidden decision-making breeds distrust and rework.

Recommendations

Adopt Architecture Decision Records and a right-sized RFC process

An Architecture Decision Record (ADR) is a short, immutable document capturing one significant decision: its context, the options considered, the choice made, and the consequences. Store ADRs in version control alongside the code, so the reasoning travels with the system. For decisions that need input before they are made, use a lightweight RFC (request for comments) process: circulate a proposal, invite comment for a bounded period, then decide and record. Keep both lightweight. The value is in the thinking and the durable record, not in elaborate templates. Together, ADRs and RFCs turn tacit, forgotten reasoning into a searchable institutional memory.

Govern through paved roads, not gatekeepers

Rather than reviewing every decision one by one, invest in a "paved road": a set of blessed, well-supported defaults, approved languages, frameworks, deployment pipelines, and patterns, that teams can adopt with little friction and plenty of support. Teams that stay on the paved road need little governance, because the safe, compliant choice is also the easy one. Teams with a genuine reason to leave it can, but they take on the extra responsibility and a lightweight review. This "golden path" model scales far better than a central board approving everything, because it shifts governance from case-by-case gatekeeping to well-designed defaults.

Use architecture review boards sparingly and transparently

An architecture review board, or its equivalent, has a legitimate role for the largest, most cross-cutting, or most irreversible decisions, and for setting the standards that define the paved road. Keep its scope narrow, its criteria published, and its process fast and advisory, not a mandatory bottleneck for routine work. The board's job is to steward coherence and share knowledge, not to approve every choice. When a board becomes a queue that every project must wait in, it has failed. Delegate aggressively, and reserve central review for the few decisions that genuinely warrant it.

Make build-versus-buy-versus-adopt a deliberate analysis

For any significant capability, weigh three paths: build it in-house, buy a commercial product, or adopt an open-source solution. Build when the capability is a genuine differentiator and core to your mission. Buy or adopt the undifferentiated capabilities that others do better. Count total cost of ownership (TCO), not just up-front price. Buying incurs licensing, integration, and lock-in costs. Building incurs perpetual maintenance and staffing. Adopting open source incurs support and security-tracking obligations. Record the decision and its assumptions as an ADR, so you can revisit it when circumstances change.

Manage technical debt as a portfolio

Technical debt is not inherently bad. Sometimes taking it on to ship sooner is the right call. What is bad is unmanaged, invisible, forgotten debt. Keep an explicit inventory of significant debt. For each item, note the cost it imposes (the ongoing "interest") and the cost to fix it. Then manage it like a financial portfolio. Pay down high-interest debt that slows the team every day. Tolerate low-interest debt in stable corners. Make debt decisions consciously rather than by accident. Set aside a standing fraction of capacity to pay down debt, so it never compounds into a crisis.

Distinguish reversible from irreversible decisions

Not all decisions deserve equal deliberation. Reversible "two-way door" decisions are easily undone, so make them fast and local, by the team, with a bias toward action. Agonizing over them wastes time and slows learning. Irreversible or costly-to-reverse "one-way door" decisions, a public API contract, a data model at scale, a multi-year vendor commitment, deserve slow, careful, senior deliberation and a recorded rationale. Classifying decisions this way is one of the highest-leverage governance habits you have. It aims scarce scrutiny where it pays off, and unblocks everything else.

Trade-offs: pros and cons

Governance approach Pros Cons
Central review board for all Maximum consistency and oversight Severe bottleneck; disempowers teams; slow
Paved road with local autonomy Scales, fast, safe default, empowers teams Requires up-front platform investment; some drift off-road
Full team autonomy, no governance Fast, high ownership Fragmentation, duplication, repeated mistakes
ADRs / RFCs Durable memory, better decisions, transparency Writing overhead; ignored if not maintained
Sourcing choice Pros Cons
Build Full control, fits exactly, can differentiate Perpetual maintenance and staffing cost
Buy Fast, supported, someone else maintains it Licensing cost, lock-in, imperfect fit
Adopt (open source) No license fee, inspectable, community Support and security burden falls on you

The unifying trade-off is control versus speed, and central consistency versus local autonomy. Every governance choice sits on this spectrum. The recommended posture, paved roads plus reversibility-based delegation, deliberately buys most of the speed of autonomy while keeping the consistency that matters. It does this by making the aligned choice the easy one, and reserving heavyweight process for the rare irreversible decision.

Examples

Startup. A four-person startup makes most decisions in minutes across a shared desk, and for reversible two-way-door choices that speed is a real advantage, so they resist any governance overhead. But when they pick a database and a data model that will be painful to change later (a one-way door), they pause to write a single-paragraph note: the options, the choice, and the assumptions behind it. A year later, hitting scaling limits, that one note saves them from relitigating the question from scratch. They govern almost nothing, and reserve their one lightweight habit for the few decisions that are genuinely costly to reverse.

Enterprise. A large enterprise's platform teams were paralyzed by an architecture review board that had to approve every technology choice, creating multi-week queues. The enterprise restructured governance around a paved road: a curated catalog of approved, fully supported languages, data stores, and pipelines that teams could adopt instantly. ADRs recorded any decision to deviate, and a fast, advisory review handled only off-road choices. The board's scope shrank to standards-setting and the handful of truly cross-cutting decisions. Delivery accelerated sharply. Consistency actually improved, because the easy path was now the compliant one. And the ADR archive gave the organization a searchable record of why things were built as they were.

Government. A government department faced a major build-versus-buy decision for a case-management platform under strict procurement and audit rules. Rather than deciding by preference, it ran a documented total-cost-of-ownership analysis across three options: building custom, buying a commercial product, and adopting an open-source base. It weighed licensing, integration, long-term maintenance, staffing, and lock-in, and recorded the decision and its assumptions as an ADR. Years later, when a vendor's terms changed, the department revisited that ADR, found its original assumptions no longer held, and re-decided with full knowledge of the prior reasoning, avoiding a blind and costly migration. The recorded rationale was also exactly the defensible evidence auditors required.

Business case: motivations, ROI, and TCO

Decisions are the highest-leverage and lowest-visibility cost in software. A single poor, irreversible architectural or sourcing choice can impose years of drag or a nine-figure remediation. Governing it well, a few hours of deliberation and a written record, costs almost nothing by comparison. The return on ADRs and reversibility-based delegation comes from two sources: avoiding expensive mistakes on the one-way-door decisions, and avoiding wasted deliberation and rework on everything else. Recorded rationale also slashes the recurring cost of re-litigating settled questions and of teams reverse-engineering the intent behind inherited systems.

Technical debt makes the TCO argument concrete. Unmanaged debt behaves exactly like compounding interest: a growing tax on every future change, until the system becomes effectively unmaintainable and demands a costly rewrite. Managing debt as a portfolio, with a standing capacity allocation to pay down the high-interest items, is far cheaper than the eventual crisis. Good governance is cheap to adopt, mostly the discipline of writing decisions down and the up-front investment in a paved road. Skipping it is expensive: you pay in avoidable rewrites, lock-in surprises, audit failures, and lost institutional memory. To persuade leadership, frame governance in their language: risk reduction, avoided rework, faster delivery via the paved road, and audit-ready defensibility. Show that the goal is not more process but better-aimed process, heavy scrutiny only where reversal is costly, and frictionless speed everywhere else.

Anti-patterns and pitfalls

  • Undocumented decisions: reasoning lost the moment the people who made it leave.
  • Approval-board bottleneck: a central body every project must queue behind.
  • One-size process: forcing trivial reversible decisions through heavyweight review.
  • Analysis paralysis: agonizing over easily reversible two-way-door decisions.
  • Shadow IT: teams evading governance entirely because the sanctioned path is too painful.
  • Invisible technical debt: debt never inventoried, never paid down, quietly compounding.
  • Build-everything or buy-everything reflexes: sourcing by habit rather than TCO analysis.
  • Governance theater: documents and boards that exist for appearance but do not shape decisions.

Maturity model

  • Level 1 (Initial): Decisions are ad hoc and unrecorded; governance is either absent or a blanket bottleneck; debt is invisible.
  • Level 2 (Managed): Some decisions are documented and some review exists, but process is inconsistent and often mismatched to decision weight.
  • Level 3 (Defined): ADRs, a paved road, reversibility-based delegation, and a debt inventory are standard and transparent.
  • Level 4 (Optimizing): Governance is continuously tuned; scrutiny is precisely aimed at irreversible decisions; debt and sourcing choices are actively managed as portfolios and revisited on evidence.

Ideas for discussion

  • For our most important recent decisions, can we find the recorded reasoning behind them?
  • Where is our governance a bottleneck, and where is it absent when it is needed?
  • Which of our current decisions are one-way doors, and are we treating them as such?
  • How much of our capacity goes to paying down technical debt, and is it enough?
  • Do our teams follow the paved road because it is genuinely the easiest path, or route around it?
  • When did we last revisit a major build-versus-buy decision against its original assumptions?

Key takeaways

  • Record significant decisions and their rationale with ADRs; make reasoning durable.
  • Govern through paved roads and defaults, not case-by-case gatekeeping.
  • Match process weight to decision weight and reversibility; delegate two-way doors, deliberate on one-way doors.
  • Analyze build-versus-buy-versus-adopt on total cost of ownership, and record the assumptions.
  • Manage technical debt as an explicit portfolio with a standing paydown allocation.
  • Keep governance transparent and lightweight; aim scarce scrutiny where reversal is costly.

References and further reading

  • Michael Nygard, "Documenting Architecture Decisions" (the original ADR pattern)
  • Gregor Hohpe, "The Software Architect Elevator" and "37 Things One Architect Knows"
  • Amazon shareholder letters on Type 1 vs Type 2 (one-way vs two-way door) decisions
  • Ward Cunningham, the original "technical debt" metaphor
  • Martin Fowler, writings on technical debt and evolutionary architecture
  • Neal Ford, Rebecca Parsons, Patrick Kua, "Building Evolutionary Architectures"
  • Nicole Forsgren, Jez Humble, Gene Kim, "Accelerate" (loosely coupled architecture and autonomy)
  • ISO/IEC/IEEE 42010 on architecture description