Skip to content
kibadist
Back to Blog

One-Way vs Two-Way Doors in Software Development

6 min read
engineeringdecision-makingleadershiparchitectureproductivitymental-models

In software development, teams make decisions every day: choosing a framework, designing an API, changing architecture, hiring engineers, or shipping a feature. Some of these decisions are easy to reverse. Others are expensive, risky, or nearly impossible to undo.

The concept of one-way and two-way doors helps teams move faster while reducing fear and overthinking.

This idea became popular through Amazon leadership principles, but it has become a practical mental model for startups, engineering teams, and product companies everywhere.


What Is a Two-Way Door Decision?

A two-way door is a decision that can be reversed relatively easily.

You walk through the door, test the outcome, and if it doesn't work, you can walk back.

These decisions should usually be made quickly.

Examples in software development:

  • Trying a new UI library
  • Renaming buttons or pages
  • Experimenting with onboarding flows
  • Changing logging providers
  • Testing a pricing page
  • Refactoring internal code
  • Running A/B tests
  • Adjusting CI/CD pipelines

If the cost of rollback is small, spending weeks debating the decision is often more expensive than simply trying it.

Characteristics of Two-Way Door Decisions

  • Low risk
  • Reversible
  • Cheap rollback
  • Fast experimentation
  • Learning-oriented
  • Limited long-term impact

Teams that recognize two-way doors properly tend to move much faster.


What Is a One-Way Door Decision?

A one-way door is difficult or extremely expensive to reverse.

Once you go through it, coming back becomes painful.

Examples:

  • Migrating from monolith to microservices
  • Choosing database architecture for long-term scale
  • Public API design
  • Data model decisions
  • Security architecture
  • Vendor lock-in decisions
  • Rewriting an entire platform
  • Breaking backward compatibility
  • Deleting legacy data structures

These decisions require more analysis, alignment, and long-term thinking.

Characteristics of One-Way Door Decisions

  • Hard to reverse
  • High migration cost
  • Large organizational impact
  • Long-term maintenance burden
  • Potential customer disruption
  • Requires careful planning

Why This Mental Model Matters

Many engineering teams treat every decision like a one-way door.

This creates:

  • Slow delivery
  • Endless meetings
  • Fear of mistakes
  • Overengineering
  • Burnout from perfectionism

Meanwhile, high-performing teams understand that most decisions are actually reversible.

They optimize for:

  • Speed
  • Learning
  • Iteration
  • Feedback loops

The result is faster product evolution and better adaptability.


The Biggest Startup Advantage: Fast Two-Way Decisions

Startups often outperform larger companies not because they have better engineers, but because they make more two-way door decisions quickly.

A small team can:

  • Ship an experiment in one day
  • Roll back instantly
  • Gather user feedback
  • Iterate again tomorrow

Large organizations often slow down because reversible decisions require:

  • Architecture review
  • Security review
  • Stakeholder approval
  • Multi-team synchronization

Understanding the difference between one-way and two-way doors helps organizations avoid unnecessary bureaucracy.


Examples in Real Engineering Scenarios

Example 1: Choosing a CSS Framework

Switching from Tailwind to another styling system is painful but possible.

This is usually a two-way door, especially early in a project.

Overthinking this decision for months is often wasteful.

Example 2: Public API Design

Once customers integrate with your API, changing it becomes extremely difficult.

This is a classic one-way door.

It deserves:

  • versioning strategy
  • compatibility planning
  • documentation
  • careful naming

Example 3: Database Technology

Early-stage startups often over-optimize database decisions.

In reality:

  • choosing PostgreSQL vs MySQL may be reversible
  • choosing a highly specialized proprietary system may become a one-way door

The lock-in matters more than the technology itself.

Example 4: Microservices Migration

Many companies prematurely move to microservices.

This is frequently a one-way door because it introduces:

  • distributed systems complexity
  • DevOps overhead
  • monitoring challenges
  • network failures
  • team coordination costs

Returning to a monolith later is expensive and politically difficult.


How Senior Engineers Use This Framework

Strong engineers don't just ask:

"What is the best solution?"

They ask:

"How reversible is this decision?"

This changes how teams prioritize:

  • speed vs caution
  • experimentation vs planning
  • innovation vs stability

A reversible decision should usually favor speed.

An irreversible decision should favor correctness.


A Practical Decision Matrix

Decision TypeSpeedAnalysis NeededRollback Cost
Two-Way DoorFastLowLow
One-Way DoorSlowerHighHigh

Simple rule:

  • If reversible → decide quickly
  • If irreversible → think carefully

Common Mistakes Teams Make

1. Treating Everything as Permanent

This leads to analysis paralysis.

Not every refactor needs a six-page RFC.

2. Treating One-Way Doors Casually

Some decisions truly deserve caution:

  • authentication architecture
  • data privacy
  • billing systems
  • API contracts

Moving too fast here creates technical debt that lasts years.

3. Ignoring Migration Cost

Sometimes teams assume:

"We can always change it later."

Technically yes — economically no.

A migration affecting millions of users may become nearly impossible.


How to Design for Reversibility

Good architecture often increases the number of two-way doors available later.

Examples:

  • feature flags
  • modular systems
  • abstraction layers
  • API versioning
  • backward compatibility
  • decoupled services
  • progressive rollout systems

These reduce fear and increase agility.


One-Way Doors and Technical Debt

Technical debt itself is not always bad.

Sometimes teams intentionally take on debt because:

  • the decision is reversible
  • learning speed matters more
  • market timing is critical

The danger appears when temporary shortcuts silently become one-way doors.


Questions Teams Should Ask

Before making a major engineering decision, ask:

  1. How hard is rollback?
  2. What happens if we are wrong?
  3. Can we test this incrementally?
  4. Does this create vendor lock-in?
  5. Will customers depend on this behavior?
  6. What is the migration cost later?
  7. Is speed more valuable than certainty here?

These questions dramatically improve engineering judgment.


Final Thoughts

The one-way vs two-way door framework is simple, but extremely powerful.

It helps teams:

  • move faster
  • reduce unnecessary process
  • focus caution where it truly matters
  • improve experimentation
  • avoid overengineering

The best engineering organizations are not the ones that never make mistakes.

They are the ones that:

  • make reversible decisions quickly
  • learn continuously
  • reserve deep analysis for irreversible choices

In modern software development, speed of learning is often more valuable than initial perfection.

Comments

No comments yet. Be the first to comment!