Release Management By Saikiran Alagatham

Software Configuration Management
Name of Skill

Release Management

Classification of Skill

Release Management is a technical skill which has to be acquired by learning and practising. It is further classified as a management skill, or one of the electives of management. Release management skills equip the Release managers with necessary management skills for implementing and managing release processes for code through development, test and production. This is often referred as Release Management lifecycle.

The release Management lifecycle starts when the release manager receives a request for change or a new features. During this entire lifecycle, managers are responsible for scheduling, coordinating and management of releases across the enterprise for multiple applications across various portfolios, there will be multiple stakeholder, multiple tasks, multiple milestones, and all these entities can be managed by the Release manager using proper management tools and management skills. Skills for effective management of a project releases(PMI, 2019) are:

  • Communication skills
  • Leadership skills
  • Organization skills
  • Management skills
  • Technical Skills (Software Engineering)
  • Problem solving skills
  • Knowledge on Project Management methodologies (PMBOK /Prince)
  • Conflict Management skills
  • Research skills and Policy knowledge
  • It can be said that Release management is a parent skill, with multiple child skills.

    Prerequisites for Skill

    Conventionally, there are no defined pre-requisites for Release management as a skill, and there are no mandates related to release management, which the release manager should have. However, in order to gain expertise in release management, a person should be well versed with the domain. As a major pre-requisite he/she should have a complete understanding the software development lifecycle (SDLC) (Boyde, 2014). This is will help him/her to understand the project phases and will be helpful in planning and integrating the different project phases. Ideally, he/she should have executed software development project as team member or might have managed a project as iteration manager or project manager.

    Having these pre-requisites will definitely help to manage a software engineering project as a whole. Another key prerequisite will be knowledge of ITIL processes (Thakur, 2018). This involves change management process, incident management process and problem management process. These processes are often used in different phases of the project. For example, integrating a application module into a live environment will require the release manager to schedule a change, and then perform the integration. If the integration fails, then he might have to look into problem management. So, without proper knowledge of ITIL processes these activities will be difficult to implement.

    Related Software Engineering Area(s)

    Release management is a subset of Project Management and also it’s a part of Change Management that deals with inherent turbulence of software engineering. Even though the SDLC defines the development of a software product, its implementation is still dependent on the project management methodologies. Typically, this is done through planning, execution, monitoring and control. Moreover, software is an intangible product, and it is important that the developed project meets the requirements of the clients. Typically, the clients requirements changes as the project progress thereby introducing release managers to solve the problem.

    Rationale for Skill

    In case of software engineering, Release management is a glue that holds all the key aspects of SDLC together, including business and functional requirements. There quite a number of reasons on why release management skills are essential, or why a dedicated release manager is required to manage the project releases (Ahmed, 2016). Some of the key reasons are:

  • Understanding the differences between a change and release : Change and Release Management sit in the transition stage of ITIL lifecycle [9]. Change represents the addition or modification or removal of anything from the product/project whereas Release is collection of hardware, software, documentation, processes and other components required to implement requested change.
  • Standardizing Releases : Release Management helps in standardizing and streamlining the development and operations process, the team creates a repository for all the releases throughout the lifecycle with auditable release controls. A single, well-documented process will increase the organizational maturity.
  • Processes and policies:As the project progresses, different anomalies will be detected. These anomalies must be analysed, and some actions have to be performed. The release managers have to take those actions by making policies and procedures.
  • Schedule Development : Development of a software product is a time bound activity, as the product needs to be delivered to the client within a specified deadline. The release manager has to develop forecasting skills to create the project schedule
  • Development of project plan and process : Software development is done in multiple phases/ releases and without a proper plan integrating the phases will be difficult. There should be a clear plan, along with the process to integrated each of the phases into a single project.
  • Quality Control: Release manager ensures the product is developed as per the acceptance criteria and metrics document in Scope of Work (SOW). This ensures complete quality control.
  • Roles for Skill

    Release Management applies to various industries, in software engineering a software release manager and program manager looks after release management. A Release manager is first and foremost a project manager who looks after the software from conception to deployment.

  • Monitoring the progress to ensure the release of applications are on time and in the budget of estimation.
  • Communicating all the key project plans, changes, QA plans, scope requirements with team.
  • Managing relationship between different teams and managing risks and resolving issues that affect the scope, schedule and quality.
  • Creating a release schedule for all the core services and ensuring the alignment across key partners and vendors.
  • Developing the automation tools and scripts to build, integrate, and deploy software releases.
  • Work Related to Skill

    Release management follows a wee defined path, it usually begins at the first stage of development cycle when there is a request for a change or a new feature. Once the request is approved the release manager along with the team design the new release and planning begins. The developers build the release, testing takes place and modifications may be done based on the test results. Once the release is accepted by the manager, it moves into deployment and made available for the end users.

    The following picture depicts the entire process:

    Release Management Cycle


    The release manager needs to be well aware of all the phases of software development lifecycle. They need know the impact of a change, how this change affects the requirements, schedule, functional specs, development and deployment of the release. A Release Manager must focus on automation of tasks, they have to build processes, methods, tools and reports that help them to make decisions whether to release a version of software or not, rather than relying on stakeholders for every decision.

    A Release Manager has to have knowledge on the following tools:

  • Release Management Tools : Release management involves release of the software after development phase and test phase. Even though the release management manages the completely development cycle, it should not be confused with overall project management. Project management is for management of complete project, while release management is for managing the development at each and every stage. A project manager needs to be aware of ITIL processes, SDLC and release management tools.
  • Test Case Management tools : Even though test cases are managed by the testing team, usage of test case management tools can automate the testing phase and make it more effective, completing the test in a shorter span of time. Even though the release manager will not be performing any testing, he/she needs to collect the metrics for testing, information about test components, documentation about test assets, and defect management, and integrate these details into the project report. That is project manager should be aware for test case management tools.
  • Iteration Management : In a typical software development environment, project is refined with every iteration, unless it is not appropriate of final delivery. In every iteration a specific feedback is developed, and the same is shared with the development team, who incorporates in the product, and prepares for the next iteration. The project manager doubles up as an iteration manager and is responsible for managing all the iterations in a typical project. This involves involving the stakeholders for each of the iterations, collecting the data from each iteration, and sharing the output with the stakeholders.
  • Real-World Example

    As most of the software moved into Software as a Service (SaaS) model, the release management has become a vigorous process. Especially in the case of business which have far more changes and feature request that has continuous delivery pipelines.

    In order speed up the delivery process, release managers use release management tools like JIRA which are used create new versions of the software by reusing the already existing versions and by automating the routine operations which are done in each release. The following short video represent how the release managers actually plans a each release :

    Role of Academia or Industry in Cultivating the Skill

    Research papers and academic books nurture the idea of elicitation. Currently, there is a focus on the types of interviews being done, and whether they are structured interviews or unstructured, to check which collects more information compared to the other. Different research papers are conducting surveys and evaluating some techniques for eliciting requirements of computer-based systems, paying particular attention to how they deal with social issues.

    Tools Supporting the Skill

    There are various tools that are available in the market for release management. Some of the most popular tools are:

  • Automic: This tool automates the integration there by providing added advantage.
  • BMC Release Process: This tool allows to deploy changes to the applications with lightweight, web-based task co-ordination and execution
  • CA Release: This tool enables continuous delivery for agile software development.
  • Micro Focus Release: This is used to manage the release management lifecycle from development, deployment to production.
  • Plutora: This provides high-quality automated software through continuous delivery management.
  • Urban Code Release and XL Release are some of the other tools which are used in release management.

  • Skill Self-Assessment

    I would rate myself as 6 on this skill. I am a team player, and I often look to take up the responsibilities. On the other hand, I manage to finish my tasks and assignments in time, and that is why I feel I am good at time management. However, I am still exploring SDLC, and I lack experience in implementing a software project, which is a definite drawback in this case. I also lack exposure to the project management tools which is again a challenge for me. To summarise, I have leadership qualities and interpersonal skills, but I lack exposure to a real world SDLC and the release management tools, which justifies the rating I have given to myself.

    References

      Please find below the list of references used in writing this web page:

    1. Boyde, J., 2014. A Down-To-Earth Guide To SDLC Project Management (2nd Edition). New York: Springer.
    2. PMI, 2019. A Guide to the Project Management Body of Knowledge. Chicago: s.n.
    3. PMI, 2019.Software Release Management.
    4. Thakur, A., 2018. The ITIL® v3 - Basics: Get to know a Successful Project Manager. New Delhi: Springer.
    5. Ahmed, A., 2016. Software Project Management: A Process-Driven Approach. Chicago: CRC Press.
    6. Axelos, ITIL certifications in release, control and validation
    7. Plutora , Release Management ‘ https://www.plutora.com/blog/release-manager-job’
    8. CM crossroads, What is Release Management and why we need it ‘https://www.cmcrossroads.com/article/what-release-management-and-why-it-needed’

    Icon