Wednesday, January 14, 2009

Why You Must Put Your App Under Version Control

Without a version control system, your software development process will not be efficient. And that's the best case scenario - I've seen software development projects fail because version control wasn't used. As a result, I became a version control disciple.

My first experience with CVS was at university during my first major collaborative development project. Throughout the project, my team was very diligent about checking code in to CVS after every significant code change. We regularly ran integration tests and this meant that we always had an accurate understanding of our progress to date. However, it wasn’t until the last day of the project that I really learned the value of version control.

On the due date, my team was feeling calm and confident about our work. We had completed development of all the required features ahead of schedule, and we had already added a number of bonus features. The experience of the team sitting next to us in the computer cluster was a stark contrast to ours.

This other team hadn’t bothered to set up a CVS repository for the project as had been suggested by our instructor. Instead, they had used email to exchange updated code over the course of project. To make matters worse, they had waited until the day before the due date to perform their first full code integration. It was painful to watch them flail against the bugs that they kept discovering. When my team left the computer cluster that evening, it was obvious that the other team wasn't going to be able to submit their project before the midnight deadline. Since then, I’ve used a version control system for every project that’s lasted longer than a day - including projects that I've worked on alone.

I feel a sense of accomplishment every time I check additional functionality in to a project. I also enjoy peace of mind, knowing that I can always revert to an older version of code if my current development direction doesn't work out. It’s so easy to put your entire application under version control and the benefits are so great, that I can’t think of any valid reasons for not doing so. To prove how simple it is, I recently recorded a video that demonstrates adding a project to a Subversion repository in less than 90 seconds:

No comments: