As the software development process has evolved over the past couple of years – particularly enterprise software development – one aspect of software configuration management has drawn increasing attention as a means for controlling risk and maximizing success rates. Of course, I’m talking about software release management.
What is software release management?
It’s the practice of doing all the builds for the various aspects of a project and then moving all those builds to its particular process – development to QA to user acceptance to production to deployment.
What’s made software release management crucial to efficient and timely software development is the use of parallel and geographically dispersed development teams. What was once a pretty straightforward, linear process has now become a major, multi-tasking effort as engineering teams work concurrently on various aspects and features of a product that then need to be merged into a single main trunkline for QA, production, and eventual release to the marketplace.
Compounding this release management challenge are additional issues such as:
- error correction
- additional customer feature requests
- risk management
- product revisions
- manufacturing issues
- general software entropy over time
As a result, the release manager function was developed to deal with all these challenges – a sort of software release management superhero. Part overseer, architect, coordinator and support engineer, the release manager is expected to have a general, transparent view of the entire project development process along with a granular view of every aspect of it. Never mind real-time issue and code change tracking, along with the ability to head off error propagation and broken builds. How can any one person manage to accomplish all this?
The best answer? With a software release management tool that provides a stream architecture, or something that can be described as “intelligent branching.” Streams are ideal configuration objects because they contain absolutely everything associated with any particular release, making it easy to track the history of the release and merge any changes with minimal (if any) errors. In fact, streams make it easy to dial back the clock and return to virtually any version of a release to quickly and effectively handle any errors that might pop up.
What makes this type of tool particularly useful is the way it helps release managers handle all the important aspects of software production, including build stabilization, QA testing hand-offs, product assessments, and archiving activities, to name a few. In short, software release management makes it really easy to move new builds to any one of the configurations needed in the software development and release process.
Some of the major features of our software release management tool include:
- Use of streams to store and make available complete code files for all release versions
- AccuRev TimeSafe architecture for atomic application of all code changes to minimize errors
- Integrated issue tracking
- Improved developer productivity

