Version Control: You're a Fool if You Don't Use It

We've been having a right good old natter on the ScottishCFUG Google Group, in particular about why Version Control is essential to all software development.

One of the group members asked:

All that you mention sounds very cool but i want to see what benefits it can bring a sole developer.

A reply by Alan Williamson, in my opinion, was so important I wanted to repeat it here.

and there in is the trap that many lone consultants/developers face; stop thinking of yourself as a single entity, but as a member of a team that, at present has only one member.

Alan also followed this up by stating:

I really don't know how anyone can work without version control and still claim to develop software. Bold statement? yes, but i stick by it.

I agree 100%. Any software development company who is without Version Control is ... well, it is appauling. Not only are they putting their clients at risking by not taking their business and indeed livihood seriously, but they are also inflicting damage to themselves by not making themselves as proficient as they could be, but they are also damaging their own reputation... I look on any software development firm who doesn't use Version Control as one who shouldn't be in this business. Calling them amateur, well I think I'm being rather generous.

In the past, when I've been the client, one stipulation I've also insisted on being in any contract is that the company doing the work has a Version Control system in place. If they didn't, end of conversation.

Even as a sole developer you should be using Version Control.

So, just to finish up, here's a couple of reasons why you should be using Version Control. Feel free to add more by leaving a comment.

  • Provides a history of all changes
  • Recover accidental deletions
  • Helps co-ordinate new releases by deploying a build corresponding to a specific revision.
  • Supports development by X number of developers
  • Enables remote working if your repositories are public facing (and secure).
  • It's not just for code. You can store all your contracts, legal documents, staff policies in Version Control.

Comments

Andy Allan's Gravatar In fact, here's a couple more reasons.

* You can store your Apache configuration in Version Control (I believe with IIS8 you will be able to do the same).
* You can store your ColdFusion configuration settings (.CAR) in Version Control
* You can script you database and store the scripts in Version Control
# Posted By Andy Allan | 19/07/07 13:25

Jim Priest's Gravatar If I was doing any kind of solo development I would use something like cvsdude and simply bake that into the cost of my project(s). Then you don't have to worry about backups, etc.
# Posted By Jim Priest | 19/07/07 14:28

Robin Harrison's Gravatar A few years ago, I needed to do some work at home on one of our projects

I connected up to the SVN repository, checked out the latest version of the code. Then I used the Apache conf, the database backup, and the ColdFusion CAR to set the project up exactly as it was at work. Took me, half an hour at most, including time in the middle making coffee while it was fetching the code from Subversion.
# Posted By Robin Harrison | 19/07/07 14:48

Joe Rinehart's Gravatar Damn skippy.

I use version control for source code, presentations, documents, contracts....I love the darn stuff.

It can be hard to convince people of it, even when they see something like TortoiseSVN on Windows. I demo'd it once at CFUnited and said something like "When it's this simple, there's just no excuse not to use source control" - and I got flamed in my session surveys for something like "don't speak with such arrogant pomposity [sic] - you know nothing about software environmnts in government work" (at the time, all of my work was for the Federal government, where I implemented Subversion repeatedly in noncontrolled environments).
# Posted By Joe Rinehart | 19/07/07 19:43

Jaime Metcher's Gravatar I always work in a team of at least two - myself now, and myself later. This other guy is often the hardest to work with - I can't convince him that he doesn't know I'm talking about.
# Posted By Jaime Metcher | 20/07/07 01:15

Luke's Gravatar I agree a 100%. However, its not always that simple to introduce version control. When working in an agency environment software development is usually not taken that seriously. This is because web development is perceived to be a "creative" process and software development is uncool and boring. Of course, all web development agencies are in reality software development companies with sugar on top. It is very difficult to introduce version control in this kind of environment let alone getting creatives to use it.
# Posted By Luke | 20/07/07 01:22

Scotch on the Rocks 2008