How to never lose any work ever again

We've all done it: Lost work. And as much as we'd like to blame the freak power cut at 1am, the "stupid application" for "crashing again" or the "heap of junk" that is our computer, the blame really rests with us: Quite possibly with our choice of software applications or hardware but, more than likely, with our work habits. Do you save religiously every five minutes? Do you use source control? Do you take off-site backups?

I'm sure that many of us would like to answer "yes" to all of the above questions but, unfortunately, many times it's the like-tos and wish-I-hads that are at the root of our problems with losing work.

So, Aral, you've uncovered a universal problem. What's the solution, Sherlock?

Well, to start with, we are living in a wonderful age when it comes to development tools. Eclipse is a shining example: Not only does it provide multi-level undo but also a local history and easy integration with third-party source control tools. In fact, the combination of all three of these features/toolsets means that you need not ever lose any amount of work again, ever (did I mention "ever"?)

Multi-level undo/redo

Any modern development tool, whether it be a source code or image editor or 3D modelling program supports multi-level undo and redo. This is your short-term guard against losing work. If your tool doesn't, dump it, you're using a dinosaur. For the most part, multi-level undo and redo let you revert to earlier states of your work between saves and are a great tool for non-destructive experimentation. Some applications take this feature even further and provide non-linear histories and "snapshot" states that you can revert to.

Local History

The creme de la creme of development tools like Eclipse offer a feature that goes beyond Undo/Redo called Local History.

Local History keeps a -- guess what? -- local history of your files as you save them allowing you to revert to earlier versions. This is a great feature that fills in the gap between Undo/Redo and the use of a source control system like Subversion.

Source Control

Local History is great for when you're offline or between commits to a shared source control repository but does not invalidate the use of the latter. Version control systems like Subversion allow you to create repositories for projects that can be used by multiple team members and allow you to go back to any previous state of your application.

Shameless plug: If you want to try out Subversion (or CVS) -- you can do so easily with our online SourceSecure service.

Off-site backups

Even if you have a source control system and local history and multi-level undo/redo, you still need to backup your source control repository regularly (nightly or even per commit) and to store those backups off-site so that you don't keep all your eggs in one basket.

With these modern tools and techniques there's no reason whatsoever why you should lose another bit of work ever again :)