Is Automated Backup More Important Than Version Control?

I got blasted at the last Front Range PHP User Group (FRPUG) because I had said I was not using version control with a personal project I had been working on. In the eyes of +Chad Robertson and +David Stockton seeing as I've been a developer so long, it was an inexcusable crime I had committed. My defense was that I used the continuous backup solution Backblaze. "It even supports file versions!", I pleaded in vain.

Licking my wounds and muttering to myself, I realized that I've worked at a few software shops that had version control but not automated backups. Which is more important: automated backups or version control? It goes without saying the correct answer is, you should have both. If you could only have one, which would it be?

The winner is, automated backups, if you are a team of one. If you are a team of one, version control is nothing more than a fancy backup. If you were to lose your computer and all its data, the productivity lost from having to setup a new system versus the productivity lost from not using a version control system are much larger. I say this because I went a whole year without version control and it never caused me a problem, not even once.

Once you have a team of more than one, you've got to use version control. The amount of time you would save using a version control system over the time you save from having a good backup system skews heavily in version control's direction and that's just with two developers! I'm sure it grows exponentially with each person you add.

When I was a consultant for Zend, software shops would pay a lot of money to have me come out and visit them. Some of these shops, and this was not that long ago, did not have version control. That to me is just lunacy.

If you have to chose between the two, is automated backup more important than version control? No, unless you're like me and have no one working with you. At least that's the argument I muttered under my breath while at FRPUG. The real answer is that you should have both.

I'm willing to guess that at least 25% to 40% of software shops out there don't have automated backups running on their developer's computers. I bet if a developer lost a hard drive they could be out of commission for 2 or more days just getting the computer back to what they need. Then there is all the uncommitted (or not pushed to another repo if you're using a decentralized version control) code that was lost.

You have version control, but do you have automated backups?

Edit: I'm assuming the backup is not just to the same computer. It should be off site if possible.

Shared publiclyView activity