Eric Sink has written up a few reasons for using source code control in a “team of one”. But something he wrote bothered me. He stated more than once that “for a solo developer, source control actually isn’t all that compelling”. But I think it is just as compelling as for a team of 1 as it is for 100. It is just easier to implement.
I’ve been working on a commercial software package for the last 8 years. I’ve also been the only full-time developer in the company over that same period. The product (shameless plug) is quite large are covers a vast number of business processes. And if it wasn’t for good source code control, I would never have been able to do my job.
Julia Lerman pointed out to Eric, “source control is usually explained as a way of keeping developers from stepping on each others’ toes”. But the truth is that your own toes are much closer to each other than your neighboring developer’s. I’ve done more damage to my own code than anyone else ever could. The simple fact is that as the only developer on the project, I have that much more going on in my head. This leads to a lot more mental errors over the life of a project. And source control protects me from myself as much as it does from others.
To be clear, I don’t disagree with Eric’s reasons for single user source control (he nailed them all I think). I just feel they substantially more compelling that he (and many others) seem to. As I see it, if you are working on commercial software and not using source code control then you are taking a very unnecessary risk.