In my early programming projects, I didn’t have version control. Or a bug database. Or scheduling software. A single programmer can get away without these things.

Instead of version control, I would make a daily backup and archive a stable version every month. Instead of a bug database I had sheets of A4 paper. Instead of following a shedule I just did stuff.

Now, the only one of the above I really don’t want to work without is version control. It’s more than a backup. It’s a detective tool for tracking down bugs. It’s a log of every change that was ever made to a program. A way to share work-in-progress across multiple machines. A way to branch and merge different releases. It allows a multitude of programmers to work together without stepping on each other’s toes. (Ok, they still do. But can usually sort it out again.)

I sometimes wonder why more non-programmers don’t use version control. Most of the the benefits above would apply to writers, designers, artists and others. I think the technical aspects could be a barrier. I use Perforce because it’s fast, powerful and reliable, but even I would be put off if I didn’t already know how to use it. Subversion is easier to understand, so that’s the one I would recommend.

I am currently on revision 10. My bug sheet is empty.