Thursday, February 5, 2009

What Tool to use for Software Configuration Management

On my current project we are currently experiencing much difficulty in managing a very large software code repository with dozens of software branches, most in support that have become ‘customer specific’ branches due to specific changes or enhancements that the customer has requested. Add to that the multiple development branches all in parallel, and more customer specific branches that include the latest release that they all want to test in their production databases to see if they can upgrade from at least several major versions back of the product. Oh, and don’t forget we also have more changes being submitted (defects or enhancements) and worked on every day that must be merged to other branches if they are considered a ‘core’ fix. So you have code changes across many branches that need to be synchronized with defect or change management along with builds and releases that need to be propagated to their correct environments like QA, client test, production test, etc.

You get the picture. In order to manage all of this you need to have tools that fit the projects needs. An ALM (Application Lifecycle Management) tool is best because it has added benefits of requirements, design, and test management which can integrate well with your SCM (Software Configuration Management) tools.

There are many tools available in the market today that do some or all of the ALM processes required for good implementation and tracking of project activities. Some of the keys to good tools are integration, traceability and automation. These simplify the entering, tracking, and reporting of data while also providing a detailed result of what is being delivered.

My current project has been using the same tools for many years, all of which are not integrated and have minimal automation. Many of the processes used are manual and take many hours to complete. Communication can be affected my not having the right information at the right time, or not being able to generate the information in a complete and quick fashion.

So my task is to help select a new tool (or set of tools) that meet the majority of our needs and that can migrate as much of our existing data as possible so that we can maintain the history of our product. The challenge though will be to select the best tool for the job for the best cost. This doesn’t mean choosing the tool that costs the less, but choosing the tool that gives the best long term ROI (return on investment).

This will be the subject of my paper for this class. I will use a requirements specification written specifically for our project detailing requirements for SCM tools. This requirements specification will also contain items specific to our project in terms of third party tool integration (SCCI – Source Code Control Interface), distributed or remote use and performance, and that will satisfy all key stakeholders in the project organization such as engineering, quality assurance, project management, implementation teams, support teams, etc.

To summarize, the problem I am going investigate is how to pick the best SCM tool for the project with the best ROI. After all this is a must in today’s environment to get senior management to approve these kinds of expenditures which can easily grow to well over $100,000.

2 comments:

  1. An idea - since you have requirements for the SCM tools, it might be interesting to consider how semantic web technologies might be used. I expect that there will not be ONE tool that meets all the specs, so then the question becomes, how can we use semantic knowledge of our process to get better mileage from the tools. The book, Semantic Web for the Working Ontologist, is a good place to start exploring semantic technologies.

    ReplyDelete
  2. OK thanks for the input! I would like to schedule a one-on-one with you to discuss the topic further. I have the book now and have started reading it.

    ReplyDelete