Are you Prepared for a Disaster?

Unless you’ve experienced a hard drive failure, an office fire, or a crypto virus, you may not be prepared for the inevitable tech disaster. Even if you have, maybe you think, “Lightening never strikes twice in the same place.” There are different levels of disaster and there are different plans that go along with each level. One of the most important ways you can prepare the worst is also one of the easiest and cheapest things you can do. Backup! Here’s how we handle it here at Indevver.

Levels of Disaster

Category 3 Catastrophic the office is flooded and every technical system is ruined
Category 2 Major Spilled coffee on my laptop and it’s dead
Category 1 Oops Computer froze and I hadn’t saved for an hour

I’ve capped off my category levels at 3 here because I want to keep these “disasters” in perspective with the more significant disasters that are beyond the scope of this article. If I drop my laptop down a flight of stairs, and have to rebuild your WordPress theme because I didn’t have it backed up anywhere, the world will not end, no one will be injured, and life will go on. I feel the need to disclaim this as I write on the 16th anniversary of the attack on the twin towers, in the aftermath of two major hurricanes here in the states, and surrounded by massive forest fires in my home here in the Pacific Northwest.

Category 3 – Catastrophic failure

What’s the unluckiest kind of cat to own?

A catastrophe, of course!

(Sorry, what can I say… I’m a dad)

The great thing about building software is that it’s really easy to duplicate in multiple places. It’s a little tougher to duplicate the hardware, not to mention twice as expensive to have 2 of everything. The way we handle it is:

Solution Indevver’s Approach
Business Insurance In case of catastrophe, I can be back on my feet quickly with insurance to pick me up and keep me going.
Cloud Backups Nightly Backups using Cloudberry Backup to push up to Amazon Glacier.
Cash Reserves Currently it’s a hybrid between my “Vault” account and my Credit Card. The goal is that there will be enough in savings to replace all of my equipment debt free.

Thankfully programming just requires a laptop with a few pieces of software and you can go from the Apple Store back to programming within a few hours. There’s probably a coffee shop near that Apple Store with fast enough wifi that you can get going while the crew is repairing the water damage in your real office. If you have trouble finding a place, you can check out Workfrom for the best place near you.

Category 2 – Major Failure

Major failures center around some kind of problem with my laptop. I spilled coffee on the keyboard, or the hard drive crashed or something.

The way I prepare for that is:

Solution Indevver’s Approach
Local Incremental Backups External hard drive with time machine that does hourly incremental backups.
Private Remote Repositories I push code changes up to Bitbucket.
Cash reserves & Insurance same as above

Category 1 – Oops Failure

Admittedly most of these types of failures can be avoided, so it’s always good to maintain good habits of saving often committing code to your remote repository often, and making sure that you’re adhering to best practices (even if it’s just your own). Often my own minor failures occur when I cut a corner, cowboy code something when I know I shouldn’t or skip a step that I know is there for a reason.

Benjamin Franklin Quote

Best Practices to avoid the Oopses

  • No Cowboy Coding – Never code directly on a production server
  • Testing – In addition to user testing, there are so many great automated testing suites that can make a theme or plugin more robust. This is something I’m still looking for ways to incorporate into my workflow.

Everyday Development Disasters

There’s another level of disaster that developers face everyday. I’m not sure what the category would be, but it happens when you try something and it doesn’t work, or you start in on a new feature and realize you’re in over your head, and you’ll never get it done by the deadline. It’s that moment in your code when you wish you could go back in time in undo everything.

Version Control to the rescue

Although not intended to be a backup solution, version control allows you to “put a pin” in a spot in the project and try something new. You can edit multiple files, add new dependencies, and if it ends up not working out, you can revert back to your “pin” and nothing is lost (except your time).

Back it up

Backup your data

Backing up your data is the most important thing you can do. Thankfully it’s also the simplest.

Backup your hardware

I can still work on my desktop if my laptop goes down.

Backup your finances

If I spend every dollar I earn, I’ll be left with relying in credit cards to get me out of trouble. This can work, but my goal is to have reserves in place to be able to quickly replace lost equipment in case of disaster, and worry about insurance and other details later.

Backup yourself

This is a goal of mine, and possibly the hardest thing to do. As Indevver grows, my goal is to assemble a development team so even I am not a single point of failure.

Automate it

I’m not a very paranoid person. I tend to be pretty optimistic that things are going to work out just fine and don’t spend time worrying about the things I can’t control. The reality is, stuff happens, and although I may not be able to control it, it’s silly, if not just plain stupid, for me to not prepare for it in whatever ways I can.

Here are some tools I use to make it as fool-proof as I possibly can.

Apple Time Machine – An USB hard drive can keep incremental backups. I do mine hourly.

Cloudberry BackupCloudBerry Lab – Use this to connect to Amazon Glacier and you have very affordable backups. I do a cloud backup nightly.

FreeFileSynchttps://www.freefilesync.org/ – Every night when I’m wrapping up my work I sync my work to another computer in my office. If I have a hard drive failure I can reference that backup without having to restore from Glacier.

Profit First – I’m pretty conservative with my company finances to insure that I have cash reserves to get me out of trouble if it ever occurs. I’ve adopted Mike Michalowicz’s, Profit First, approach to organizing my finances and have found that it is a really simple way for me to be successful in making sure that I have my accounting house in order.

Updated on December 11th to reflect that I now have a business insurance policy.