Release Management is the process of managing software releases from development stage to software release. It is a relatively new but rapidly growing discipline within software engineering. As software systems, software development processes, and resources become more distributed, they invariably become more specialized and complex. Furthermore, software products (especially web applications) are typically in an ongoing cycle of development, testing, and release. Add to this an evolution and growing complexity of the platforms on which these systems run, and it becomes clear there are a lot of moving pieces that must fit together seamlessly to guarantee the success and long-term value of a product or project. The need therefore exists for dedicated resources to oversee the integration and flow of development, testing, deployment, and support of these systems. Although project managers have done this in the past, they generally are more concerned with high-level, "grand design" aspects of a project or application, and so often do not have time to oversee some of the more technical or day-to-day aspects. Release managers (aka "RMs") address this need. They must have a general knowledge of every aspect of the software development process, various applicable operating systems and software application or platforms, as well as various business functions and perspectives.
A release manager's roles are:
- Facilitator: serves as a liaison between varying business units to promote smooth and timely delivery of software products or updates.
- Gatekeeper: “holds the keys” to production systems/applications and takes responsibility for their implementations.
- Architect: helps to identify, create and/or implement processes or products to efficiently manage the release of code.
- Server application support engineer: help troubleshoot problems with an application (although not typically at a code level).
- Coordinator: utilized to coordinate disparate source trees, projects, teams and components.
Some of the challenges facing a software release manager include the management of:
- Software defects
- Software change requests
- New development requests (additional features and functions)
- Deployment and packaging
- New development tasks
Impact of agile software development on release management
Agile software development methodologies have driven radically higher numbers of release events in organizations where it has been adopted. More release events have corresponded to increased reliance on release management teams and their colleagues in IT Operations to track and execute complex application release processes. Operations teams have used methodologies—such as Information Technology Infrastructure Library ITIL 2011 Book: Service Transition (which contains a section on release management) to improve their release management capabilities as they relate to both business applications and internal IT services. Agile has also driven development and operations teams to collaborate more closely during production release events—this trend is referred to as DevOps.
For organizations to effectively operate a release management function they need to ensure they have processes and supporting tools. Release management software allows release teams to plan, manage and control the release schedule and track the status of each release to ensure production worthiness.
Release Management software also provides the added benefit of applying central governance and auditing over releases before decision-makers approve releases to production
- Build automation
- Change management
- Configuration management
- Agile software development
- Information Technology Infrastructure Library (ITIL)
- Granular Configuration Automation (GCA)
- Plutora (Release Management software)
- Beck, B., Fowler, M. (2000). Planning Extreme programming, Addison Wesley.
- Erenkrantz, J. R.(2003) Release Management Within Open Source Projects. In: Proceedings of the 3rd Open Source Software DevelopmentWorkshop. Portland, Oregon, USA, May 2003, S. 51–55.
- Hoek, A. van der, Hall, R. S., Heimbigner D., Wolf, A. L. (1997) Software release management, Proceedings of the 6th European conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering, p. 159–175, September 22–25, Zurich, Switzerland.
- Hoek, A. van der, Wolf, A. L. (2003) Software release management for component-based software. Software—Practice & Experience. Vol. 33, Issue 1, pp. 77–98. John Wiley & Sons, Inc. New York, NY, USA.
- Humble, J., Farley, D. (2010). Continuous Delivery, Addison Wesley.
- Krishnan, M. S. (October 31 – November 3, 1994). "Software release management: a business perspective". Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research (Toronto, Ontario, Canada): 36.
- Roebuck, K. (2011). Release Management, Emereo Pty Limited.
|Wikibooks has a book on the topic of: Release Management|