Source Control and Backups – More than just a good idea
Are there really software development teams out there that don’t use any form of proper source control at all, even the bad kind? I’d like to think that it wasn’t the case but I’m not so naive.
There’s a reason that “Do you use source control?” is the first question on the Joel Test. It’s because it’s the most important. If you answer “no” to this question you shouldn’t be allowed to answer subsequent questions. Even if the rest of your process is perfect, you score zero. You failed at software development. I could say that if your team doesn’t use source control it is a disaster waiting to happen, but more likely the disaster already happened and you haven’t noticed yet.
Of course, you and I aren’t nearly dumb enough to try developing anything more complex than “Hello World” without version control in place. I’m sure I’m preaching to the converted. The kind of people who read obscure software development blogs probably already know a few things about effective software development.
But how good are your back-ups?
You do have a back-up, don’t you?
If you don’t have a back-up you are one accidental key-stroke or one hardware failure away from scoring zero on the Joel Test (under my rules)… and failing at software development. Hardware will fail, people will screw-up, disgruntled former employees will set fire to the building. None of these is a problem but a failure to anticipate and prepare is.
How often do you back-up?
There is only one right answer to this: every day. Weekly back-ups are too costly. Can you really afford to have your whole team redo an entire week’s work? The first time you lose a week’s work you will switch to daily back-ups, so why not just do it now?
A melted back-up is no back-up at all
Off-Site Storage. You could physically take tapes to another location or you could upload files to a remote server. Just don’t leave them here.
Does it actually work?
Honestly, have you ever tried restoring your source control back-up onto a different machine? The most comprehensive back-up plan imaginable is useless if you can’t restore the back-ups. If you haven’t seen it working (recently) then it doesn’t work. There’s a good time and a bad time to find out that your back-ups don’t work. 15 minutes after your source control server spontaneously combusted is the bad time.
Are you still here? You should be checking those back-up tapes…
UPDATE: The good people of Stackoverflow are discussing what could possibly be a good excuse for not using source control.

on September 26th, 2008 at 3:36 am
Reminds me Tony from early days of BIS telling me how one of his previous companies had a traffic cone, whoever had the traffic cone on their desk could edit code. Everyone else had to write docs in preparation for when it was their turn with the cone.
Basically visual source safe… traffic cone edition.
on September 26th, 2008 at 11:30 am
Wez, that’s just like the Daily WTF story. At least traffic cones don’t suffer from repository corruption. Wouldn’t really work with a distributed team though. You’d have to send the cone via ParcelForce.
on September 28th, 2008 at 2:48 pm
Atleast I can’t start development without having SVN in place. And a build/rake/gradle file which can do the rest of work for compilation and other stuff. Nice writeup
on October 13th, 2008 at 4:37 pm
[...] Source Control and Backups – More than just a good idea [...]