It is relatively easy to build software that works.

A developer writes a feature. Tests pass. The system behaves correctly under expected conditions.

But production environments are rarely predictable.

Traffic spikes. External services slow down. Data arrives in unexpected formats. Users interact with systems in ways nobody anticipated.

The difference between software that works and software that survives is how it handles these situations.

Production is full of unexpected inputs

In controlled environments, systems receive clean, predictable data.

In production, that assumption breaks quickly.

Fields may be missing. Data may arrive in formats that were never documented. External systems may change behavior without warning.

Software that survives production validates inputs aggressively and handles unexpected data safely.

External dependencies behave unpredictably

Most modern systems depend on external services.

Payment processors, shipping providers, accounting platforms, and marketplaces all introduce external risk.

Even reliable services experience slowdowns or outages.

Systems that survive production assume these failures will happen and design workflows that can recover from them.

Traffic is rarely consistent

Usage patterns often change faster than expected.

A marketing campaign can drive sudden demand. A successful product launch can multiply system load overnight.

Software that survives production scales gracefully and degrades safely when limits are reached.

Recovery matters more than perfection

No system avoids every failure.

The real test of a system is how quickly it can detect and recover from problems.

Reliable systems prioritize observability, clear error handling, and mechanisms for safely retrying failed operations.


Software that works is easy to build.

Software that survives production requires designing for the unexpected.