If you think you don't need source control, you haven't understood it
Posted at 12:00 on 14 April 2008
I have a friend who does not use source control for his programming projects. As far as I can tell, it's a conscious and deliberate decision on his part, and although he has his reasons, I've never got round to asking him what they are. However, I doubt if they are very good ones.
Source control is the very bedrock of modern software development, yet it's surprising how many developers there are like him, who still don't see the value of it. One common argument that crops up from time to time is "I don't use source control on any of my projects because I'm the only person working on them." This is really a rather lame excuse, because no-one making such an argument would say "I don't back up my projects because I'm the only person working on them," nor would they say "I don't use the undo button because I'm the only person working on my projects."
For that is exactly what source control does. It provides you with a complete history of the changes you've made to your project, when you made them, and (assuming you've filled in the comments with each commit), why. If you have ever spent three days working on your code, only to find that your changes aren't working out or are becoming very messy, and you've needed to roll back, only you don't have a suitable snapshot to roll back to, you will know exactly what I mean.
Sadly, there is a fairly widespread misconcepton knocking around that source control is only useful for large development teams. This isn't helped by the fact that companies such as Microsoft promote it as such. Visual Studio only includes source control with the (more expensive) Visual Studio Team System, whose very name says to solo developers, "Nothing to see here, move along please." And many articles on source control (even including Joel's comments on the subject) concentrate more on the team aspects of source control than on what it can offer for solo developers.
Another widespread misconception is that setting up a source control system is too much effort, or too expensive, or requires a separate server, and is overkill for small projects. Again, this is completely false. Subversion, probably the most popular source control package in the world, is free and open source. TortoiseSVN is a Windows client for it that installs as a shell extension and gives you a whole lot of easy to use source control features from within Windows Explorer. You can even create a repository in any empty folder on your hard disk with only a couple of mouse clicks:
I've been using source control with Subversion/TortoiseSVN for three years now, and I am embarrassed that I didn't get started much earlier. To be sure, there is a bit of a learning curve, and there are a few gotchas that you need to watch out for, but really, it isn't rocket science by a long shot, and it certainly isn't overkill even for fairly minor projects and scripts. If you are writing any kind of software and aren't already using source control, I strongly recommend you get started. And if you think you don't need it, I recommend you take another look at it, because you've almost certainly misunderstood something.