The Tenets of Source Control
Source control has been around for a long time. There’s nothing earth-shattering or ground-breaking to say about it here. So, I’m going to borrow from Eric Sink creator of SourceGear, one of the tools we’ve used at Volano:
There are many source control tools, and they are all different. However, regardless of which tool you use, it is likely that your source control tool provides some or all of the following basic features:
- It provides a place to store your source code.
- It provides a historical record of what you have done over time.
- It can provide a way for developers to work on separate tasks in parallel, merging their efforts later.
- It can provide a way for developers to work together without getting in each others’ way.
The various source control products out there can be categorized by two attributes: Repository Model and Concurrency Model. The Repository Model can be Client-Server or Distributed and the Concurrency Model can be Merge or Lock. Other things you take into consideration include: Is the product open-source or proprietary? And what operating system is it available on?
A lot of developers don’t get the importance of source control or are just too lazy to do it. They give excuses like “but I’m the only one working on the project, so it’s not that important.” BACKUPS ARE NOT SOURCE CONTROL!
The Volano Audit
We’re building a product around custom application audits. The audit is a discovery process that will result in an assessment of best practices along with important application development documentation in the form of a system master document. This will encompass the current application state and we will offer recommendations regarding how best to move forward. These recommendations will be structured as an actionable plan and will include an estimated effort, costs and proposed timeline.
For the source control component of this audit, we identify the following:
- Can the current software version be obtained, compiled, and released?
- Can the project be ‘rolled back’ to a previous version?
- Are all custom software applications and libraries in one structured repository?
- Source Control product & version in use
- Location of repository
- How to log into repository
- Administrator username & password
Database Version Control
Perhaps it’s my DBA background, but I’ve been very interested in database version control. I’m talking a real product – not just saving the database scripts in one of the standard tools. Red Gate is one of my favorite companies for developer tools. I’ve been using their flagship software, SQL Compare, since 2000 and wouldn’t trade it for anything. Red Gate has introduced SQL Source Control and though I have not tried it yet, it’s on my list to look into.