Release Management
Release management encompasses the planning, implementation and monitoring of software development processes and the IT infrastructure used for this purpose. Release management provides an overview on the development process of software solutions, web applications, and updates and interacts with change management and configuration management. It combines a business perspective (risk analysis) with the detailed technical issues of the development cycle (systems development life cycle; short SDLC) in an IT infrastructure.
General information
The goal of release management is to be able to implement requirements for changes of updates, patches, roll-out and the infrastructure used within the time-limited development process with a predictable business risk. This means that:
- the functions of an application are determined,
- the schedule is defined and compliance is checked
- quality control is ensured,
- all changes are documented and can be reproduced.
Release management combines conceptual, organizational and practical problems, such as those found in conventional project management, and combines these perspectives into one department. This is supposed to create an overview of the technical changes in releases and rollouts within the development process. The process by which a software is made available should be coordinated at middle management level through the release management.
Functionality
A central concept in this context is the release, which can contain one or several technically correct and authorized changes and is specified by version number (for example, 10.1). Versioning is often supported by version control software such as Git, Subversion or Mercurial. Individual changes are often combined into a release package. Generally, there is a distinction between the following releases:
- Major Release: Contains new features and changes to the system architecture, which make bug fixes redundant and replace both minor and emergency releases.
- Minor Release: Includes individual enhancements and changes that may complement an emergency fix.
- Emergency Fix: Includes the elimination of individual conflicts or problems of high priority, but no additional features.
The change management sends so called Request for changes to the Release Management. These requirements form the substance of the later release. Configuration management accompanies the release, by documenting the procedures and processes within the IT infrastructure. Added to that are managing of versions and the handling of conflicts between release and infrastructure. At this stage, aspects such as documentation and implementation play an important role to facilitate the migration of the release into the production system (See Staging Environment) which provides the release candidate later.
The release manager is the ultimate decision-maker before the release of a product. He is responsible for the release process and delegates the tasks of the participants or subtasks of the team. He plans the schedule and sets milestones and deadlines. He also supervises the process by using checklists and responds to feedback that may come in after the rollout of the release from users or customer service.
Release Management with ITIL
The concept most frequently used in the field of enterprise solutions is the ITIL framework which currently exists in version V3. ITIL provides definitions and rules that describe the operation of a service-oriented IT infrastructure with regard to the organization and configuration of processes in the IT sector. After ITIL (V2) further sub-processes can be distinguished within the release process, for example:
- Planning the rollout: The whole process is conceptually prepared based on the content requirements.
- Conception of distributive and reversion methods: The release components are distributed to the team members. The infrastructure is prepared to create the technical requirements. What happens when problems occur is established (reversion methods).
- Testing of the release: The elements of the release and the distribution and reversion methods are subjected to realistic testing. That way a decision on the rollout date can be made.
- Implementation of the rollout: All elements of the release go through the project phases, get rolled out and migrated into the production system.
Depending on the process model (for example, agile software development or scrum) very different concepts exist that are adapted to the phases of the software development.
Importance for programming
Release management is often described as a lever for efficiency and quality of IT service. It is an integral part of the IT department especially at corporation or group level. However, there is often criticism from small to medium-sized companies about not having alternatives which are suitable for small-scale infrastructures. This criticism refers primarily to the process design for the ITIL Framework. As a rule, it is too complex to be used in smaller companies. Many medium-sized companies are therefore demanding a light version that contains a useable core.
The life cycle of an IT solution and related processes may utilize other frameworks such as ISM (Integrated Service Management) and get tailored to the individual needs of smaller companies. Because of their leaner infrastructure, SMEs have a greater degree of flexibility to optimize the service quality of their IT services in terms of efficiency. This includes the interaction between change, configuration and release management, which is described by large companies as a critical success factor.