Continuous data protection for programmers
We neglect it
Programmers today are familiar with Source control management, such as GIT, Subversion or Visual SourceSafe. We understand the importance of it and almost all of us use it.
CDP (Continuous Data Protection) on the other hand is most often neglected. This article aims to explain why Continuous Data Protection is so important and how it can help programmers in their daily work. I will also try to include real life examples from my own experience.
Use them all
CDP isn’t a replacement for Source control or regular backups. I recommend you to use it all. If you are a team of developers, I would suggest that each user has it’s own continuous backup or local file versioning for easy access to old files, then you need a Source Control Management system of some sort with a repository placed on a server, and finally a backup software that backs up the entire server.
On the other hand if you are a “One man team” you will get quite far without the Source Control, and just stick to CDP and regular backups.
What Source control does
- When 2 or more people work on the same project an SCM helps you merge you changes without destroying each others work.
- SCM’s let you label your files at any given time. A typical label could be “Version 1.1.4 (just shipped to customer X)”. Such a label enables you to go back later on and see what was actually shipped to customer X.
- Source control is a good way to keep a backup of your code.
What Source control doesn’t do
- SCM’s don’t keep track of all the changes you make to files. They only register changes when you do a “Commit”.
So basically, Source control is vital for programmers, but it isn’t enough. Since it lacks Continuous versioning of you files.
Why do I need continuous versioning?
As a programmer you always run in to situations where you have to redo work or you simply regret changes you made. The “undo” functionality is vital to any programmer. But ever so often “Undoing” isn’t enough. Lets give a couple of examples:
- You are doing some bold refactoring, and the changes you make soon start to spread. After a while you have made changes to say 20 files and still haven’t got it to compile. You wish you had made a “Check in/Commit” before you started making the changes, but it’s a bit late for that now. Luckily you finally get it all to work though and you can continue with your other tasks. Some hours later you realize that the changes you made weren’t good, and you need to go back to the old solution…tough luck
- You make changes to some GUI stuff in Visual Studio, and suddenly you can’t even open the GUI editor. “Undoing” doesn’t work. In the end the only solution is to go back to an old version and catch up with unsaved changes… tough luck
- Here is another real life situation that I often find myself in. You continue work with a project that you haven’t been working on for several days, and can’t remember what you did last. Open your Continuous file versioning software and you can easily see what files were moderated last, how frequently they were changed and what was changed. Now it’s easy to remember what you were doing and to get back to work fast.
- Sometimes when you rewrite an entire function you might “comment out” the old one. Why do you do this? Probably because you know that you might regret your changes or need parts of the old function in the future. This in itself is proof that you should be using some kind of continuous file versioning. The following day you might delete the “out commented” code thinking that you now know that you aren’t going to need it again, only to realize a couple of hours later that you actually do need it.
Basically continuous data protection saves you time, and makes life as a programmer just a bit more satisfying. It lets you work faster, make bolder changes to your code and helps you feel secure.
What we need from the CDP software
Once you start using file versioning you are going to use it more and more. It is quite normal to use it on a daily basis. This makes certain demands on the CDP software. It’s main job isn’t to take backups of your files (as a backup software is) neither is it to let you set labels and merge files as in Source control. Rather it’s most important job is let you easily look at old files or rewind files. And to be able to do this it needs to give you overview, it must be easy for you to see what has been going on: when were your files modified? what other files were modified before or after that? What was modified in the file?
What is History Explorer?
I’ve been looking for a software that gives you good overview of what has been going on, but I have failed to find anything. So I took on the challenge of creating the best continuous data protection software for programmers – History Explorer. History Explorer is easy to use, it’s a one user software and should be installed on each programmers computer, there is just about zero configuration. History Explorer is the only software that gives you a graphical overview, you can see when you files were changed as marks on a timeline, and most important of all you can look at a whole folder at once and see when changes were made in relation to other changes. I use History Explorer and love it. There are alternatives out there and the most important thing for you is to start using something…now. Once you get used to it your programming will be helped a lot.
Thanks for taking time to read this article. I really hope it helps you in your work.
Cheers
Peter Molyneux
Exendo


For a long time I had been irritated at the way backup software never seemed to be quite what I wanted. I had this image of a program that graphically showed me all the versions of files that it contained and where I could simply click on any file to open it. Most backup programs demand that you do some kind of restore and you are never quite sure if you are going to lose your existing files.