Release management
Release management is the process of managing, planning, scheduling and controlling a software build through different stages and environments; including testing and deploying software releases.[1]
Background
Release management 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, often running on evolving platforms with growing complexity. Such systems require dedicated resources to oversee the integration and flow of development, testing, deployment, and support.
Relationship with Continuous Delivery, DevOps, and Agile software development
Organizations that have adopted agile software development are seeing much higher quantities of releases. With the increasing popularity of agile development a new approach to software releases known as Continuous delivery is starting to influence how software transitions from development to a release.[2] One goal of Continuous Delivery and DevOps is to release more reliable applications faster and more frequently. The movement of the application from a “build” through different environments to productions as a “release” is part of the Continuous Delivery pipeline.[3] Release managers are beginning to utilize tools such as application release automation and continuous integration tools to help advance the process of Continuous Delivery and incorporate a culture of DevOps by automating a task so that it can be done more quickly, reliably, and is repeatable. More software releases have led to increased reliance on release management and automation tools to execute these complex application release processes.[4]
Relationship with Enterprise Release Management
While Release Management focuses on the transitions from development to testing and release for a single project of a collection of related projects Enterprise Release Management (ERM) is focused on the coordination of individual releases within a larger organization. An organization with multiple application development groups may require a highly orchestrated series of releases over multiple months or years to implement a large-scale system. ERM involves the coordinated effort of multiple release managers to synchronized releases in the context of an IT portfolio.
See also
- Application release automation
- Build automation
- Change management
- Configuration management
- DevOps
- Software testing
- Continuous testing
- Test plan
References
- ↑ Humble, Jez; Farley, David (2011). Continuous Delivery: reliable software releases through build, test, and deployment automation. Pearson Education Inc. p. 110. ISBN 978-0-321-60191-9.
- ↑ Ambler, Scott W. (12 February 2014). "We need more Agile IT Now!". Dr. Dobb’s The world of software Development (San Francisco: UBM).
- ↑ Humble, Jez; Farley, David (2011). Continuous Delivery: reliable software releases through build, test, and deployment automation. Pearson Education Inc. pp. 255–257. ISBN 978-0-321-60191-9.
- ↑ Best Practices in Change, Configuration and Release Management (Report). Gartner. 14 July 2010.
External links
Wikibooks has a book on the topic of: Release Management |
- "What You Need to Know About Software Beta Tests" Centercode.com
- Project Management: Best Practices for IT Professionals
- Release Management - Where to Start?
- Managing Software Projects By Frank F. Tsui
- Seminar Topic "Release Engineering as a Discipline" organized by Software Construction Research Group, RWTH Aachen, Germany