What’s the ultimate goal of every software development project? Unless you just inherited a fat sum of dough from your late Uncle Milton, it’s probably to make money. The faster you can turn your project into a quality product in the marketplace, the more money you will make. Using a Software Configuration Management (SCM) tool will help you achieve that goal, and integrating that tool with other development tools can help get you there even faster.
Of course, the best software tool sets in the world will not make up for poor process and lack of planning, but an integrated tool set can take a well-oiled machine and make it even more efficient. Software tool integration can also help you receive certification of software engineering models such as the Software Engineering Institute’s Capability Maturity Model (CMM) by automating many of the requirements. Even smaller projects can benefit from integration of software tools by replacing manual processes. The following article gives some examples on how this type of integration could benefit your organization.
Integrated Development Environment Tools
One of the most common integrations with SCM tools is through the developer’s Integrated Development Environment (IDE) tool. This simple integration enables most SCC (Source Code Compliant) IDEs and SCM tools to communicate with each other. This allows developers to check code in and out of the software repository without exiting their IDE. An IDE integration with a change control tool and the version control tool extends this to allow association of checkouts with issue management objects such as change requests and problem reports. This can make any process rules enforced by your tools more palatable and it saves the developers a great deal of time. And, according to Einstein’s lesser known but nonetheless brilliant Cousin Melvin, Time = Money.
Requirements Management Tools
The planning phase of a project is a key factor in the overall success of a project, especially when it comes to pleasing your customer and getting the product out when promised. There are many strong requirements management tools that can help you plan your requirements and relate them all in a way that shows how making changes impacts the entire system. Unfortunately, many of these tools don’t let you create different versions of the requirements that can be recreated or included in software baselines. Some have their own change control features, but they might not tie into the issue management too you use for code changes. The physical separation of your requirements from you code base can contribute to unplanned and expensive changes to the original product requirements. Does the saying “this took twice as long and cost twice as much as we planned” ring any bells? Having a requirements tool that integrates with your version management and change tracking system can help overcome these deficiencies. Requirements should be considered configuration items because changing them must be controlled. When your create a software baseline, you can “check in” all of your requirements documents in their current state along with the code that is also included in the baseline. This helps in satisfying CMM SCM Goal Number 2 (selected software products are identified, controlled and available) and Number 3 (changes to identified software work products are identified). This enforces the connection between the requirements and the actual code. To take this even further, integration with your issue management and testing tool ties the whole thing together. A change request is made, it is linked to a requirement, and then approved or rejected by the designated change control board. If approved, the requirement can be changed, a new test case can be written to test for the change, and finally the code that implements the request can modified. Integrating all these changes can help assure that features of your product will not change unless they are linked to approved changes to the requirements. The link also provides a means of traceability and accountability if the correct process is not followed and assists in change control auditing.
Process or Workflow Management
One of the best examples of effective integration