Wednesday, December 23, 2009

Step 1 - You need source control

Starting or reorganizing a software development group from the ground up presents many challenges. Creating a group identity, staffing, infrastructure and operations will take endless amounts of time, consideration and then reconsideration. There are usually multiple solutions to any of these high level points and the hundreds of smaller tasks that make them up. The manager's experience and comfort with his/her past implementations should combine with the uniqueness of the current domain to guide them to the correct group implementation on which the development culture will be grown. With so many choices to make and avenues to be investigated any cut and dry decision saves valuable time and allows the manager to focus on the trickier implementation tasks. Source control is one of these slam dunk decisions.

As we all know a source control system could be argued to the top of the engineering necessity check list. It is not a nice to have but a must have. No serious development company can operate without a solution. "Which system is right for us?" becomes the question. A product that is scalable and offers flexibility must also be easy to use and solve the problems that we all found when we were using Source Safe. Finally, how much should be paid and how much time devoted to administration? I have found that the near perfect solution to all of these questions to be Subversion.

Subversion (SVN) started in '99, and was intended to replace CVS with an open source solution. It will secure your source code as well as your documentation. It supports branching and provides documentation on various implementation schemes that you can peruse prior to implementing a process. The latest version makes the merge process simpler and will help alleviate errors. Along with all of these features, SVN can be used via the command line, web or a desktop Explorer add-in "Tortoise". Finally, SVN integrates well with other bug tracking/wiki solutions like trac and jira.

So if you are looking to replace an existing source control system or implement a new one, I recommend that you check out SVN. You'll save money & time and get a robust solution that is easy to use.

Best of luck,
Brian