Wednesday 3 August 2011

Release Management Definition and Responsibilities


Release Management is very critical to delivery and maintenance of IT Services.

Yet over the last number of years, Release Management as a role has been something that has been the responsibility of Build Engineers managed by development teams or an added specialty for change management and in some instances handled by Project Managers.

ITIL has defined Release Management as one of its functional areas within Service Transition Process.
Yet there seems ambiguity over defined scope of Release Management across the wide spectrum of organizations.

Reviewing the goals / definitions of Release Management..
ITIL defines Release Management as ->
     The goal is to deploy releases into production and establish effective use of the service in order to deliver value to the customer and to be able to hand over to service operations.

Techopedia defines Release Management as ->
                Release management is the part of the software management process dealing with development, testing, deployment and support of software releases to the end user. The team involved in this process is referred to as the release management team.

I would define Release Management as..
                "Release management is a software management process to efficiently build, deploy, configure, manage & support software releases across various stages of IT Delivery Lifecycle."
                The goal of Release Management is to ensure that changes in IT environment are carried out in a controlled, tested ,approved ,accountable and measurable manner.

In a nut shell some of the critical responsibilities for Release Management include à


Build Management
Management of overall build process for an organization.
Define what constitutes build, build platform, build process, build artefacts, etc..
Build Management includes Setting Up Automated Build Process, Management of Source Control Repositories, Defining Build Strategies, Defining Branching / Merge Options, Management of Continuous Integration, etc..

Configuration Management
Defining CIs (Configuration Items) across hardware / software infrastructure.
Identification and  management of various configurations across suite of environments.
Depending on maturity of an organization configuration management process would relate to setting up CMDB (Configuration Management Database), Automating Configurations across the phases of release, etc.

Change Management
Changes to software / hardware that could affect software being delivered are under the scope of change management under Release Management. Any changes in source code / configurations need to be managed across the release cycle efficiently.
The process of defining and management of changes (such as patches, emergency fixes,etc) that could affect live production service is owned by Release Management.

Deployment Management         
Planning of Deployments across suite of infrastructure is one of the major responsibilities of Release Management.
Deployments could be a nightmare if not planned properly. Deployment Management involves understanding artefacts of deployment and it intended purpose, various configuration items related to deployment, physical and logical infrastructure that will be affected / involved, overall planning the deployment cycle, documentation of deployment process / rollback scenario, co-ordinations with various other stakeholder, etc.

Environments Management
Environments Management is one of critical functionalities that Release Management.Environments are critical to every organization. 
Infrastructure Landscape / Definition / Complexity of environment varies across organizations depending on the product. Typical example of environments could include Developer Environments, where in developers could test their software, System Test environments for System Test Team, User Acceptance Test environments for UAT Team, etc.
What makes and environment ? How is it configured ? Who Manages the Environments ? Who Uses it ? etc., are some of the questions that Release Management provides. 
What makes environments management even more critical is the fact that there could be finite number of environments. The aspect of co-ordination between various business users and responsibility of ensuring stability of environments are critical for Release Management.

Release Process Management
Release Scoping, Release Planning, Release Provisioning, Release Support, etc..
Release process definition is essential in order to understand the reasons for release & facilitate releases across for delivery of services.
Maturity of Release process for organizations vary depending on size of organizations and delivery models for implementing / provisioning releases.

In order for a Release Manager to successfully contribute across various roles as defined above, Release Manager is often required to wear multiple hats and he has to be a jack of all.

Release Management Team could be critical to delivery of IT Services and appropriate definitions of process across various stages of lifecycle of software are essential for success of Release Management

No comments:

Post a Comment