Release Management Overview

The objective of release management is to:

  • Define and agree on release and deployment management plans with stakeholders
  • Ensure that the integrity of a release unit and its constituent components is maintained throughout the transition activities.
  • Coordinate and maintain integrity of deployment in live environment.
  • Verify that all release units can be tracked, installed, tested, verified and /or uninstalled or rolled out.
  • Ensure that organisation and stakeholder changes are managed during release and deployment activities.
  • Record and manage the risks and issues related to new or changed service/requests and take necessary corrective action, and
  • Review the preparation of release to ensure maximum successful deployments.

Service transition

What's the role of service transition?

Service transition packages, builds, tests, evaluates, deploys, transfers or retires new or changed services or service components. It covers transition of new and changed services into supported environments such as release, planning, building, testing, evaluation and deployment.
The purpose is to ensure that new, modified or retired services meet the expectations of the business from previous stages (service strategy and design).

Service transition includes the following processes:

  • Transition planning & support
  • Service Asset & Configuration Management
  • Change Management
  • Release and Deployment
  • Service Validation & Testing
  • Service Evaluation
  • Knowledge Management

Release management's objective is to align release plans with business projects and ensure that the release units are successfully built, tested, verified and deployed with minimal disruption to the live environment. It is a framework and is absorbed by organizations according to their processes and policies.

From Kineo's perspective, Release Management focuses on the development and release of new systems, features, functions and infrastructure that aligns to the product vision for Learning Portal in order to meet Kineo's business and client requirements.


Roles and responsibilities

The goal of release management as part of service transition is to deploy releases into the production environment and establish effective use of service in order to deliver value to the customer and be able to handover to service operations in this case our 'Clients'.

This process is responsible for delivering new functionality, whilst protecting the integrity of existing services through communicating the relevant information and changes and coordinating properly with the engaged teams and stakeholders. It is required to be implemented by attaining necessary approvals and supporting documentation.

Release Management is a link between software development and its final deployment. It's an intermediary step to ensure the reliability of the code and to certify that the deployed code meets the business and stakeholder's expectations.

It's a process which aids in delivery of new and improved product features built by the development team for our customers thereby providing efficient, scalable and reliable services which is tracked and appropriately documented with minimizing the risk of impact on availability of services.

There are various roles & responsibilities involved in Release Management, and for Kineo these roles are:

Roles Responsibilities
Product Manager
  • Responsible for reviewing the client suggestions/issues
  • Responsible for approving the release items once they have been tested and validated by the development and quality assurance teams
Business Owners/ Stakeholders
  • Is one of the stakeholders responsible for submitting the client suggestions/issues
  • Ensures appropriate user acceptance testing sign off is attained where necessary
  • Provides sign off for impact to their respective business unit
Development Leads/ Business Analysts
  • Is responsible for managing the team who build the code, fix the client suggestions/issues
  • Deployment of release scripts
  • Participate in estimation of backlog items
  • Participate in retrospective and review meetings, recommend solutions, showcase the new features, share feedback
  • Providing sign off on the code reviews, executing release scripts etc
Software Developers
  • Responsible for building the code
  • Responsible for creating appropriate unit test cases wherever applicable
Quality Analyst
  • Responsible for testing the code
  • Perform the regression testing using the set test cases in case of all the releases and sign off accordingly
Release Coordinator
  • Coordinate with development team, QA for appropriate sign offs
  • Coordinate with product manager for the necessary approvals
  • Update the Jira tickets to reflect the correct version numbers
  • Update the changelog to ensure that release updates are received by clients per the release schedule
  • Create the status page notifications
  • Track the release activities
  • Coordinate and communicate the release activities progress during the release
  • Conduct post implementation reviews
  • Continue to work toward improving the release process
Infrastructure and Deployment Team
  • Responsible for deploying the code to the production environment
  • Coordinates and validates code cut off
  • Monitor the regular code refresh schedule for various environment for any anomalies
Kineo Employees
  • Update the development leads/business analysts and/or release coordinator for any change in the scope or impact of a particular change being introduced via the continuous product developments
  • Acquire the necessary training for any new changes/improvements in product developments/enhancements to understand the change and various demos to the clients
  • Raise the flags for any priority client suggestions/issues/bugs
Clients and end users
  • Provide Sign off on UAT (where applicable)
  • Drive product direction with feature improvements
  • Assist in testing for major updates

Release deployment strategy

Release strategy adopted at Kineo leverages the below listed servers for developing product features, fixing bug fixes and deploying releases.

Infrastructure

The following table outlines the infrastructure used throughout the deployment strategy.

Server name Branch Description Supported infrastructure
Local Development n/a Used by software developers for code creation and test/experiments etc. Locally available in Adelaide
Feature server 1/2/3 Feature Branch 1/2/3 Used by development team to deploy code developed in feature branches. Utilised by QA team for feature testing. Single instance of each feature server serving the Australia traffic, the code is being utilised to fulfil both Australia and UK client requests/issues.
Delta Develop Branch Used by development team for code creation, build etc. Additionally used by QA team for sanity testing of features once those are fully tested in the feature server. Single instance of this server serving the Australia traffic, the code is being utilised to fulfil both Australia and UK client requests/issues.
Alpha Master Branch Once the code is developed in Asia its being moved to alpha to complete the feature development for next release candidate to be merged in the master branch 

Utilised for Hot fixes
Single instance of this platform is currently available supporting both Australia and UK requests/issues.
Beta n/a Is available and is being leveraged sometimes by the clients for testing of API, SSO, portal branding etc. 

Also being leveraged internally by various business units for internal testing or demos.
Single instances for each location i.e. Australia and UK The server for Australia is hosted in Sydney and for UK is hosted in Ireland respectively.
UAT Release This is utilised primarily by clients as part of user acceptance testing and is also used by internal QA team. Single instances for each location i.e. Australia and UK is available
Production n/a Live environment where the code is released after successful deployment in the Beta environment. 

The code is primarily migrated from staging server, a standalone instance on AWS to both the production environment.
The infrastructure architecture comprises of two production instances for each location hosted out of Sydney and Ireland correspondingly.

Deployment sequence

The below diagram illustrates the code development stages used by the development team for code creation, build, merge and deployment.

  Description
1 The code is first created on the local development servers, every developer has their own local instance on which they develop, test and experiment with the feature or bug fix.
2 After the code is developed, it is deployed to the feature server for testing by the QA team. There are three feature server instance utilised by respective teams 1, 2 and 3.
3 A completed feature or bug is deployed to the delta server (formerly known as Asia) where the develop branch resides. On this environment the QA team will review, test and verify the bug fix in addition to performing sanity testing once the tested feature is moved from feature servers.
4 Tested and completed code is then moved to Alpha which is home to the master branch. In the case of a 'Hot Fix' release and is further deployed to Beta and Production environment.
5

In case of a minor/major release, the code is moved to UAT where the release branch from delta followed by deployment to Beta and Production environment.


When release management occurs

Release Management is a critical process for the deployment of new features, systems or infrastructure changes to the Learning portal platform. The product development and management process at Kineo employs a three stage process of Planning, Development and Release. Whilst Release Management generally occurs towards the end of the process, it is involved in all stages within the process.

Planning

The planning phase of the product development process is to define the requirements for any new feature or infrastructure change that will be introduced into Learning portal platform. Feature suggestions, or new products that need to be developed to address Learning portal business or client requirements are defined, scoped, analysed and designed during this period. Collaboration with clients and cross functional teams at Kineo ensure a collective agreement towards the functions and impact of any new feature introduced to Learning portal .
Release Management within this phase, is leveraged to identify and manage the impact of this change through the identification of the following:

  • The schedule for the release
  • The existing use of the platform by end users
  • Internal processes and documentation
  • End user documentation and support materials
  • Changes to sales contracts, schedules and pricing
  • Version control
  • Communication times and impact on platform service levels (PSL)
  • Size of quality assurance and time frames, and
  • Changes to rollout and implementation plans.

Development

The development phase of the product development process is to build the features, systems or configure the infrastructure changes designed and agreed to through the planning phase. The majority of investment in time and resources is focused during the development phase, to build, test and finalise any features in preparation to be released.
Release Management within this phase, is leveraged to manage the schedule and stage of each project in line with:

  • Planned and agreed release schedules
  • Level of quality assurance
  • Completion of stories for project completion
  • Addressing all critical bugs
  • Infrastructure configuration state, and
  • Code cut off

Release Deployment

The release deployment phase of the product development process is where the majority of release management activities occurs. As the final stage in the process, release deployment includes the activities which are central to the deployment of the product changes that are ready to be deployed to the production environment. Further information about this phase and the activities involved can be read in Release Stages section.


Release monitoring and reporting

Releases are monitored and tracked using release notes which are recorded in JIRA using confluence.

This page contains the following information:

  • Release Schedule
    The dates the release deploys to the Beta and Production environments for both the UK and Australia environments.
  • Pre Deployment Checklist
    This comprises of activities initiated prior to deployment to production, such as code cut off schedule, documentation, release version updates etc.
  • In Deployment Checklist
    Tracking the actual deployment activities such as turning off/on Pingdom monitors, status page verification, executing the release script etc.
  • Post Deployment Checklist
    Consisting of updating the Jira ticket status and following the release communication.
  • Signoff/Approvals
    Comprises of tracking sign off from key stakeholders.
  • Feedback/Actions
    Records the lessons learned and feedback for the release.

When is the page created/updated?
The page is created as soon as the previous version is successfully released and is updated as the release activities progress.

Who can see it?
Anyone who has access to Product Release Confluence page can view the release notes

Notification of changes
Release notes are shared with various internal business units after the successful implementation


Release measurement & metrics

Key Performance Indicators (KPI)

Below are some of the key performance indicators for release management:

KPI Description Metric
Number of major releases This KPI is established on the basis of release type and is evaluated as a high risk release depending on the coordination involved between various functions and teams. These releases will usually be scheduled on the basis of long term vision and backlog items. JIRA
Number of minor releases This one is also factored on the release type and will be measured against scope of small but critical changes implemented. These will usually occur on quarterly basis. JIRA
Number of hot fix releases Hot fix is typically a low priority release comprising of bug fixes and is often released weekly. JIRA
Number of emergency release With the prevailing SLA, emergency releases are unexpected with the scope extending from an urgent client request to a critical security patch implementation. JIRA
Number of outages/incidents caused by a release Any outage caused during a release should be tracked and documented for better planning of releases JIRA 
Pingdom 
Status Page
Number of tickets/issues successfully resolved in a release This is pretty straightforward and is calculated against the number of tickets/issues addressed/fixed during a particular release. JIRA
Number of tickets/issues that didn't resolve in a release

This will account for number of tickets/issues that did not get fixed in a particular release leading to creation of additional tickets.

JIRA
Total release downtime

The difference between the estimated downtime and the actual downtime during a release.

JIRA 
Status Page
Unit Test Cases Number of unit test cases covered for code creation SONAR

Critical Success Factors (CSF)

Below are some of the critical success factors for release management:

  Description
1 The release should be quality driven with better software/product/hardware
2 Improved frequency of releases aligned with business needs
3 Seamless implementation
4 Releases should be measured i.e. successful/failed releases
5 The released product/feature should be usable
6 The released product/feature should be in conformance with the business request
7 Release delivery timelines should be kept in check
8 All the necessary communication and training should be in place

Benefits of release management

Below are some of the benefits of the introduction of release management for Learning portal:

  • Faster response time
    With shorter frequency of releases and delivering services to customers, various development and deployment processes are streamlined thereby realizing the benefits of changes as quickly as possible
  • Enhanced flexibility and agility
    With availability of consistent information, the impact of emerging changes can be easily accommodated to the release schedule.
  • Increased productivity
    Through the creation and classification of release types and formation of various processes, there will be quicker developments.
  • Increased collaboration
    With involvement of various teams in the activities of release management with constant communication and information sharing, all the teams will have timely and clear insights into the schedule, changes and status of the releases.
  • Risk mitigation
    With high visibility in the product governance releases can be planned seamlessly and enable the stakeholders to mitigate any potential risk of release failure.

Release classification

At Kineo, we continuously introduce improvements to our products, services and platform in order to meet the business requirements and maintain infrastructure stability and security.

Aligned with our Platform Service Level (PSL) and the product governance structure, releases have been broadly classified into New System Or Product, Major, Minor, Hot Fix and Emergency releases.

Important for end users and clients of Learning portal , the PSL outlines response and resolution times for each release type. This ensures that Kineo introduces changes to the Learning portal platform, in line with a standard to ensure adequate notification for any introduced changes to the platform.

View PSL document.

Release type Impact Outage window Prior notification period Prior notification source
New System Or Product Introduction of new system or product 0-8 hours 14 days prior Product updates for release notes
Status Page for any outage or release schedules
Major Release Major changes to user experience or and functionality to existing systems/platform 0-6 hours 7 days prior Product updates for release notes
Status Page for any outage or release schedules
Minor Release Minor changes to user experience and functionality for existing systems/platform 0-4 hours 1 day prior Product updates for release notes
Status Page for any outage or release schedules
Hot fix Release No change to user experience, comprises only bug fixes or customization requests 0-2 hours None Product updates for release notes
Status Page for any outage or release schedules
Direct contact for any customisation requests.
Emergency Release Restoration of service or result of an Incident As required As required Status Page for any outage or release schedules

Release version numbers

Release version numbers are an essential and formal convention for specifying compatibility using a three-part version number. The objective of the version number is to track the various features and changes introduced to Learning portal and when they were introduced in line with the release identification number. This allows all changes to be tracked and compared and what has changed since the last release.

Below are the versioning standards being used at Kineo:

Release classification Description Version standard
New System or Product Introduction of new system or product
  • 9.0
  • 10.0
  • 11.0
Major Major changes to user experience or and functionality to existing systems/platform
  • 9.1
  • 9.2
  • 9.3
  • 10.1
  • 10.2
Minor Minor changes to user experience and functionality for existing systems/platform
  • 9.0.1
  • 9.0.2
  • 9.0.3
  • 9.0.4
  • 9.1.1
  • 10.0.1
  • 10.0.2 
Hot Fix No change to user experience, comprises only bug fixes or customisation requests
  • 9.0.2.1
  • 9.0.2.2
  • 9.0.2.3
  • 10.0.1.1
  • 10.0.1.2
Emergency Unplanned introduction of urgency changes generally infrastructure configurations or bugs or incidents
  • 9.0.2.1.1
  • 9.0.2.1.2
  • 10.0.1.1.1
  • 10.0.1.1.2

Release stages

Below stages occur throughout the release management process, the stages may vary for each release classification, however the workflow stages will remain as follows:

  • Release Planning
  • Release Impact Assessment
  • Regression Testing & Finalising Development
  • Release Readiness Review
  • Release Communication & Documentation
  • Release Signoff
  • Release Deployment, and
  • Post Release Verification & Review

Release Planning

Release planning is a collaborative effort involving the product owner, business analysts, release coordinator and development teams to plan the deliverable's for a particular release. 

Release Impact Assessment

This stage focuses primarily on assessing the impact of issues/features going in to a release:

  • To assess any impact on our existing customers to make sure they are kept well informed
  • To see any new features impact on the product pricing
  • If any change is required in the pricing schedules
  • To ensure if any marketing efforts are required to introduce a feature/enhancement
  • Any internal process and knowledgebase documentation changes are required.
  • What new features need to be included in webinars or internal product training.
  • Release should be in line with the defined platform service levels
  • The impact of the change to existing customers, and how they are using the system
  • Batching updates for the implementation team, and
  • Any changes to integration code that may impact integration solutions.

Regression Testing and Finalising Development

This stage comprises focuses on finalising the product developments by:

  • Fixing all in development issues,
  • Following up on PO/Reporter tickets,
  • Identify any blockers/major issues (if any),
  • Ensure that as quality assurance regression testing is performed,
  • Conduct necessary UAT, and
  • Resolving any identified regression issues.

Release Readiness Review

In this stage, the release coordinator coordinates with the following teams to ensure that the relevant activity is fulfilled to prepare for the release.

Team Activity
Sales To ensure all the product pricing changes are complete (if any)
Review schedules Any changes in schedules are complete
Production Any new improvements involving support requests creation should be well communicated and understood by the team
Marketing To see if any improvements/changes require marketing efforts
Client Services To ensure that the team is aware of the new changes being rolled out
Client To communicate all the changes to the client and verify if any external training is required
User Acceptance Testing Ensure a sign off is obtained on UAT from the client services team

Release Communication & Documentation

This stage seeks the necessary updates to the documentation informing end users and internal employees about the release changes. Below are the listed components:

Documentation Component Reference Site
Knowledgebase http://knowledgebase.kineoportal.com
Release Changelog https://productupdates.kineoportal.com
Status Page Notifications https://kineo.statuspage.io

Release Signoff

In this stage sign off is attained from all the key stakeholders to ensure the release is ready to be deployed:

  • Infrastructure Leads
  • Development Leads
  • Quality Assurance
  • Release Coordinator
  • Product Owner
  • Business Owner

Release Deployment

This stage comprises of the below activities initiated to perform the actual deployment along with administering the JIRA tickets:

  • Code cut off
  • Executing the release script and deploying the updates to each environment
  • Turning off/on the Pingdom monitors
  • Verify status page status
  • Updating the release schedule
  • Updating the release version status
  • Updating the JIRA ticket status

Post Release Verification and Review

Post release review records the lessons learned and/or any feedback for the release or any of its stages/steps. It involves hosting joint reviews for the teams to share feedback.