Agile methodologies, faster deployment cycles and distributed development have made tools for release management necessary for careful, coordinated and disciplined flow of software from development to quality assurance to production deployment. Test automation also needs to be integrated with releases and places additional requirements on release management tools.
Fortunately, there are a number of commercial and open source release management tools that address these requirements, and meet the challenges effectively.
IT leaders and decision makers will benefit from understanding the typical problems and challenges release management tools need to address and find out more about the commercial and open source tools available.
Release management problems and challenges
- Facilitating, streamlining business needs in releases: Release management tools need features that can track, graph and report on progress made on the stories or requirements backlog by mapping them to releases. IT needs to be able to demonstrate to the business the progress it is making on backlog elimination. Tracking and reporting separately, new features and defect fixes in releases, will show this progress.
- Smooth, coordinated process management: Agile and distributed development has made ad hoc, manual release management risky and fraught with potential build and deployment errors. With developers checking in code more often than before, and potentially from many geographies and time zones, release management tools need smooth, coordinated build and release processes. They need to take out the risks that arise from the frequency of code check-ins and time zone differences, and automate the process seamlessly, without any errors.
- Efficient and effective management of code: In terms of effectiveness, release management tools need to be able to track features in releases and builds, back to stories and requirements closing the development loop. Release management needs to be efficient, with minimal deployment latency, especially if it is done with many redundant servers.
- Build and test automation integration: Automation of unit and other kinds of tests is increasingly finding its way into release management. Built-in support, or at least seamless compatibility with a variety of test automation tools dealing with multiple programming language environments, is needed in release management tools.
- Integrated software defects, issue management: Not all issues in release management may be software defect related. They may be issues with integration with external software or coordination of releases with other software developed by internal teams or external software vendors. Integrated defect and issue management is needed in release management tools.
- Code branching and merging: Software development invariably encounters large features that may span more than one release and may need code branching so that a dedicated team works on a branched off set of source code. Once the team tests their new features or new architecture in a branched off version, they may need to merge back with a future release and test for any incompatibilities or conflicts that may have arisen because of the branching. Release management tools need branching and merging features that minimize the risks.
There are a number of commercial and open source release management tools that meet many or all of the challenges outlined above.
Commercial release management tools
- Microsoft Team Foundation Server – The Microsoft Team Foundation Server 2010 (TFS) is the collaboration platform at the core of Microsoft's application lifecycle management (ALM) solution. Release management is one of the feature sets that TFS provides. It has a very strong branching and merging capability and is integrated with Microsoft SharePoint Portal for collaborative software development, especially issue and defect tracking.
- Electric Cloud – The Electric Cloud solution is an on-premise, private cloud-based solution that automates the build, test and deploy cycle in release management. They have a number of pre-built integrations with a variety ofapplication lifecycle management (ALM) tools. This may come in handy when you need testing with external software applications.
- Serena Release Management – The Serena Release Management Suite is part of a larger set of application lifecycle management tools. One of the distinguishing features of the Serena solution is the visual reporting of progress using their Release Calendar reporting feature.
- Go from ThoughtWorks – Go from ThoughtWorks is built specially for an Agile continuous delivery methodology. Requirements are scheduled in a “pipeline,” built, tested and released.
- AntHillPro from Urbancode – The AntHillPro product started out as open source but is now a commercial product. It is built specifically for continuous integration and it has also been unbundled into components uBuild for build management alone, and uDeploy for release management alone.
- TeamCity from JetBrains – TeamCity from JetBrains is free for small teams (up to 20 build configurations) and requires a commercial license after that. It is also built specifically for continuous integration.
- Rocket Aldon Release Manager – The Rocket Aldon Release Manager is one of a suite of five solutions for application lifecycle management. This product integrates with Microsoft TFS, Subversion, Perforce and CVS, if different teams use these different products for version control.
Open source release management tools
- Subversion (SVN) and TortoiseSVN – Apache Subversion is the leading open source release management tool used worldwide. The TortoiseSVN is a popular user interface front-end to Subversion.
- Hudson and Jenkins – Hudson started as an Open Source Continuous Integration tool and was supported originally by Sun Microsystems. With the purchase of Sun Microsystems by Oracle Corporation, Hudson is becoming a commercial product. Jenkins, an open source version was created in 2010 from the same source code and will continue as such.
- Maven – The Apache Maven is an open source release management tool meant for Java projects.
- CruiseControl – CruiseControl is an open source release management tool. It is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It supports a number of third party tools.
- Luntbuild – Luntbuild is a powerful, open source build automation and management tool. Continuous integration or nightly builds can be set up using a Web interface. An enhanced version of Luntbuild, QuickBuild is available as a commercial release management tool.
Release management tools have taken on more importance and significance with distributed teams, Agile development and continuous delivery. The need for a disciplined, streamlined approach in the face of more frequent code check-ins, builds and deployment across many servers heightens the need for such tools. Fortunately, a number of commercial and open source release management tools that foot the bill are available.
Follow us on Twitter at @SoftwareTestTT and let us know what you thought of this article.