As systems, processes, and resources become more distributed, they invariably become more specialized. Furthermore, software products (especially web-based apps) are typically in an ongoing cycle of development, testing, and release. Add to this an evolution in the platforms on which these systems run, and you’ve got a lot of moving pieces that must fit together to guarantee the success and long term value of a product or project.
The need exists for a resource to oversee the development, testing, deployment, and support of these systems. This resource must have a general knowledge of every aspect of the SDLC, various operating systems and software application platforms, and an understanding of different business functions and perspectives. Release Management addresses this need.
Release Management is the discipline (art, science, strategy, headache) of building, packaging, and deploying software for consumption.
A Release Manager is:
- Architect – the release manager helps to identify, create, and implement processes or products to efficiently manage the release of code.
- Gatekeeper – a release manager “holds the keys” to production systems and takes responsibility for their quality and availability.
- Facilitator – a release manager serves as a liaison between varying business units and users to guarantee smooth and timely delivery of software products or updates.
There’s an apparent scarcity of information out there on release management in general (at least there is a tag for it at Technorati). There’s stuff about change management, configuration management, defect tracking, source control, etc., etc. But there’s not a lot of general info about the overall process of managing code releases. I’d like to change that. I’ll be posting on various release related issues as often as I can.
If you’ve ever had issues with building, deploying or releasing code for consumption, I’d like to hear about it. This is the place for it!