Disaster Recovery Planning for Custom Software Products
Manon
This gets planned after the outage, which is exactly backwards
We almost never get asked about disaster recovery planning for software at the start of an engagement. It comes up after a client has a scare — a database corruption, a botched migration, a cloud provider region outage — and suddenly 'can we get this back' becomes the only question that matters. By then, the answer depends entirely on decisions that were made, or skipped, months earlier. Disaster recovery planning is the unglamorous work of deciding, in advance and with a clear head, exactly what happens when something goes badly wrong, instead of improvising it during the worst hour of your company's year.
RTO and RPO are the two numbers that actually define your plan
Recovery Time Objective is how long you can tolerate being down. Recovery Point Objective is how much data you can tolerate losing, measured in time — if your last good backup is from six hours ago, your RPO is six hours, whether you intended that or not. These aren't abstract metrics; they're business decisions disguised as engineering ones. A marketplace product losing an hour of transactions is a very different conversation than a content site losing an hour of page views, and your backup frequency, replication setup, and failover architecture should be sized to the number your business actually needs, not to whatever your backup tool defaults to.
We push clients to put an actual number on both before we design anything, because vague answers like 'as fast as possible' and 'we can't lose any data' aren't targets — they're wishes, and they usually don't match what the client is actually willing to pay for in infrastructure and engineering time. Once there's a real number, the architecture decisions that follow — how often to snapshot, whether you need multi-region replication, whether a warm standby is worth the cost — become straightforward instead of a matter of opinion.
Backups are necessary and nowhere close to sufficient
Having backups is not the same as having a disaster recovery plan, and this is the single most common gap we find. A nightly database backup sitting in the same cloud region as your production database doesn't help you if that region goes down. A backup nobody has ever restored from is a backup you don't actually know works — we've seen teams discover during a real incident that their backup file was corrupted, or that restoring it required credentials nobody currently at the company had access to. A backup is a component of disaster recovery. It is not the plan.
The only way to know your plan works is to test it
We run scheduled recovery drills for clients on long-term engagements — actually restoring a backup to a clean environment and verifying the application comes up correctly, not just checking that a backup file exists. This surfaces the gaps that only show up in practice: a restore script that references credentials that rotated months ago, a dependency on a config file that lives outside the backup scope, a restore process that technically works but takes far longer than the business can tolerate. None of this is discoverable by reading documentation. It's only discoverable by actually running the recovery and timing it.
A disaster recovery plan you haven't tested isn't a plan — it's a hope with a diagram attached.
What readiness costs against what an outage costs
Real disaster recovery readiness — cross-region backups, a documented and tested failover process, monitoring that pages someone the moment things go wrong — costs ongoing engineering time and some infrastructure spend. It's easy for a founder under budget pressure to defer it as non-urgent. What's harder to see in advance is the actual cost of an extended outage: lost revenue during the downtime, the customers who churn because they lost trust, and the engineering hours spent firefighting under pressure instead of building. We frame this tradeoff explicitly with clients rather than letting it default to 'we'll deal with it later,' because later for disaster recovery usually means during.
This belongs in the engagement from the start, not bolted on after
It also needs a named owner, not just a document. A recovery plan that lives in a wiki nobody has opened in a year, written by an engineer who's since left the company, is barely better than no plan at all when the pressure is actually on. We assign clear ownership for who runs the recovery drill, who holds the credentials needed to execute it, and who makes the call to actually declare a disaster and start the process — because in the middle of a real incident is the worst possible time to figure out who's in charge.
We build the disaster recovery conversation into the initial architecture discussion on every project, sizing it to the client's actual risk — an early MVP with no real users yet needs a fraction of the rigor a product processing payments for thousands of customers needs. What we don't do is skip the conversation entirely and let a client discover their exposure during an actual incident. The cost of planning for this upfront is small and predictable. The cost of not planning for it is neither.
If you're scoping something like this, see our cloud & DevOps services.
Written by
Co-Founder at CookieTech, Head of Sales & Operations, working directly with clients on scope, pricing, and engagement structure.
Manon
Related articles
More on DevOps & Security.
Building something
like this? Let's talk.
Book a free 30-min call — we'll tell you if it's a 90-day build.


