Release Management as a Competitive Advantage

“Delivery focussed”, “Getting the job done”, “Results driven”, “The proof is in the pudding” – we are all familiar with these phrases and in Information Technology it means getting the solutions into operations through effective Release Management, quickly.

In the increasingly competitive market, where digital is enabling rapid change, time to market is king. Translated into IT terms – you must get your solution into production before the competition does through an effective ability to do frequent releases. Doing frequent releases benefit teams as features can be validated earlier and bugs detected easily. The smaller iteration cycles provide flexibility, making adjustments to unforeseen scope changes easier and reducing the overall risk of change.

IT teams with well governed agile and robust release management practices have a significant competitive advantage. This advantage materialises through self-managed teams consisting of highly skilled technologist who collaborative work according to a team defined release management process, that continuously improves through constructive feedback loops and corrective actions.

The process of implementing such agile practices, can be challenging as building software becomes increasingly more complex due to factors such as technical debt, increasing legacy code, resource movements, globally distributed development teams, and the increasing number of platforms to be supported.

To realise this advantage, an organisation must first optimise its release management process and identify the most appropriate platform and release management tools.

Here are three well known trends that every technology team can use to optimise delivery:

1. Agile delivery practises – with automation at the core 

So you have adopted an agile delivery methodology and your re having daily scrum meetings – but you know that is not enough. Sprint planning as well as review and retrospection are all essential elements for a successful release, but in order to gain substantial and meaningful deliverables within the time constraints of agile iterations, you need to invest in automation.

An automation ability bring measurable benefits to the delivery team as it reduces the pressure on people in minimising human error and increasing overall productivity and delivery quality into your environment that shows in key metrics like team velocity. Another benefit automation introduces is consistent and repeatable process, enabling easily scalable teams while reducing errors and release times. Agile delivery practices (see “Executive Summary of 4 commonly used Agile Methodologies“) all embrace and promote the use of automation across the delivery lifecycle, especially in build, test and deployment automation. Proper automation support delivery teams in reducing overhead of time consuming repetitive tasks in configuration and testing so them can focus on the core of customer centric product/service development with quality build in. Also readHow to Innovate to stay Relevant“; “Agile Software Development – What Business Executives need to know” for further insight in Agile methodologies…

Example:

Code Repository (version Control) –> Automated Integration –> Automated Deployment of changes to Test Environments –> Platform & Environment Changes automated build into Testbed –> Automated Build Acceptance Tests –> Automated Release

When a software developer commits changes to the version control, these changes automatically get integrated with the rest of the modules. Integrated assembles are then automatically deployed to a test environment. If there are changes to the platform or the environment, the environment gets automatically built and deployed on test bed. Next, build acceptance tests are automatically kicked off, which would include capacity tests, performance, and reliability tests. Developers and/or leads are notified only when something fails. Therefore, the focus remains on core development and not just on other overhead activities. Of course, there will be some manual check points that the release management team will have to pass in order to trigger next the phase, but each activity within this deployment pipeline can be more or less automated. As your software passes all quality checkpoints, product version releases are automatically pushed to the release repository from which new versions can be pulled automatically by systems or downloaded by customers.

Technologies:

  • Build Automation:  Ant, Maven, Make
  • Continuous Integration: Jenkins, Cruise Control, Bamboo
  • Test Automation: Silk Test, EggPlant, Test Complete, Coded UI
  • Continuous Deployment: Jenkins, Bamboo, Prism

2. Cloud platforms and Virtualisation as development and test environments

Today, most software products are built to support multiple platforms, be it operating systems, application servers, databases, or Internet browsers. Software development teams need to test their products in all of these environments in-house prior to releasing them to the market.

This presents the challenge of creating all of these environments as well as maintaining them. These challenges increase in complexity as development and test teams become more geographically distributed. In these circumstances, the use of cloud platforms and virtualisation helps, especially as these platforms have recently been widely adopted in all industries.

Automation on cloud and virtualised platforms enables delivery teams to rapidly spin up/down environments optimising infrastructure utilisation aligned with demand while, similar to maintaining code and configuration version history for our products, also maintain the version history of all supported platforms. Automated cloud platforms and virtualisation introduces flexibility that optimises infrastructure utilisation and the delivery footprint as demand changes – bringing savings across the overall delivery life-cycle.

Example:

When a build and release engineer changes configurations for the target platform – the operating system, database, or application server settings – the whole platform can be built and a snapshot of it created and deployed to the relevant target platforms.

Virtualisation:The virtual machine (VM) is automatically provisioned from the snapshot of base operating system VM, appropriate configurations are deployed and the rest of the platform and application components are automatically deployed.

Cloud:Using a solution provider like Rackspace to deliver Infrastructure-as-a-Service (IaaS) and Platform as a Service (PaaS), new configurations can be introduced in a new Rackspace instance is produced, instantiated, and configured as a development and test environment. This is crucial for flexibility and productivity, as it takes minutes instead of weeks to adapt to configuration changes. With automation, the process becomes repeatable, quick, and streamlines communication across different teams within the Tech-hub.

3. Distributed version control systems

Distributed version control systems (DVCS), for example GIT, Perforce or Mercurial, introduces flexibility for teams to collaborate at the code level. The fundamental design principle behind DVCS is that each user keeps a self-contained repository with complete version history on one’s local computer. There is no need for a privileged master repository, although most teams designate one as a best practice. DVCS allow developers to work offline and commit changes locally.

As developers complete their changes for an assigned story or feature set, they push their changes to the central repository as a release candidate. DVCS offers a fundamentally new way to collaborate, as  developers can commit their changes frequently without disrupting the main codebase or trunk. This becomes useful when teams are exploring new ideas or experimenting as well as enabling rapid team scalability with reduced disruption.

DVCS is a powerful enabler for the team that utilise an agile-feature-based branching strategy. This encourages development teams to continue to work on their features (branches) as they get ready, having fully tested their changes locally, to load them into next release cycle. In this scenario, developers are able to work on and merge their feature branches to a local copy of the repository.After standard reviews and quality checks will the changes then be merged into the main repository.

To conclude

Adopting these three major trends in the delivery life-cycle enables a organisation to imbed proper release management as a strategic competitive advantage. Implementing these best practices will obviously require strategic planning and an investment of time in the early phases of your project or team maturity journey – this will reduce the organisational and change management efforts to get to market quicker.

What is P3M3

Maturity models are tools that can benchmark current performance against best practise. It provides valuable information on the current status of operations and point out areas for improvement that could increase the operational effectiveness, not just from a processes perspective but also the involved people, the tools used and the interaction of different disciplines within an organisation.

P3M3 is a management maturity model looking across an organization at how it delivers its projects, programmes and portfolio. P3M3 is unique in that it considers the whole system and not just at the processes.

P3M3 provides three maturity models that can be used separately to focus on specific areas of the business, or more generally to help the organization assess the relationships between their portfolios, programmes and projects.

The three P3M3 maturity models are:

  • Portfolio Management
  • Programme Management
  • Project Management

Structure

Each sub-model is further broken down into seven perspectives:

  • Organizational governance
  • Management control
  • Benefits management
  • Risk management
  • Stakeholder management
  • Finance management
  • Resource management

The P3M3 model has five maturity levels:

  • Level 1: Awareness
  • Level 2: Repeatable
  • Level 3: Defined
  • Level 4: Managed
  • Level 5: Optimized

P3M3 allows an assessment of the process employed, the competencies of people, the tools deployed and the management information used to manage and deliver improvements. This allows organizations to determine their strengths and weaknesses in delivering change.

There are no interdependencies between the models so an assessment may be against one, two or all of the sub-models. It is possible for an organization to be better at programme management than it is at project management.

Benefits

Through baselining an organization’s performance it is possible to identify areas where an organization can most effectively increase its project, programme and portfolio capability. Therefore the sort of benefits expected from using P3M3 to develop and implement an improvement plan would be:

  • Cost savings
    • On delivering project outputs and programme outcomes
    • Integrate processes across an organization
    • More effective use of budgets
  • Improved benefits delivery
  • Improved quality of delivered projects and programmes
  • Improved customer satisfaction
  • Increase return on investment
  • Providing plans for continual progression
  • Recognizing achievements from previous investment in capability improvement
  • Focusing on the organization’s maturity, not specific initiatives (you can run good programmes and projects without having high levels of maturity – but not consistently).

Lean Six Sigma – Organisational Development and Change

Directly related to business performance is the ability to change the business processes for greater efficiency and productivity while terms like specialisation, standardisation comes to mind followed by measurement, data analysis, statistical analysis, root cause analysis and finally process control and quality control.

Remember the saying by Peter Drucker: “What gets measured, gets improved”…

Improvement initiatives bring change.

A brief history of organisational change

Change management has evolved from Organisational Development OD – focused on helping people to manage change and to stay alive post the world war in the 1940S. That lead to Change Management thinking in the 70s and 80s and in parallel project management as another management process, was developed. These processes saw change as linear and hence can it be managed tightly. It starts with a burning platform and a vision to resolve the problem followed by the change journey of solving problems and overcoming obstacles. In the late 80s Appreciative Inquiry emerged changing the focus of change to “best that can be” and driving “what should be” rather than “what is wrong” and driving the “fix it”. The 1990s and 2000s brought more collaborative models and tools to manage change and solve problems and performance coaching got commonly accepted and used.

The drive to improve business performance gave life to various methodologies and frameworks for example:

  • Toyota Production System (TPS), the origins of Lean Thinking, included the prominent problem solving tools through the “five why’s”, continuous improvement, “Just in Time” production and the elimination of waste.
  • Business Process Re-engineering (BPR) which encouraged the outsourcing and off-shoring of work deemed to be non essential or too costly to perform.
  • Balance Scorecard which aims to provide a well-balanced view of the health of an organization through key performance metrics representing the financial, operational, human and environmental aspects of the business performance.
  • Project Management methodologies and frameworks: PMI, Prince2, Agile SCRUM, LEAN, KANBAN
  • Quality Control frameworks, methodologies and standards: ISO9001, Six Sigma
  • Information Technology Service Management (ITSM) frameworks: ITIL

 

Six Sigma

Six Sigma is a quality improvement approach that seeks to improve the quality of process outputs by identifying and removing the causes of defects and minimizing variability in the delivery processes. This is done through a set of quality tools management tools and statistics.

Another definition – the ability of processes to deliver a very high percentage of the output within a defined specification derived from customer specifications. A key KPI is the defect % and the process to reduce that to be within specification of tolerance – where a defect is defined as any process output that does deliver to customer requirements.

Running a process at Six Sigma quality is defined as defect levels below 3.4 defects per 1M cycles of the process!

Six Sigma principles:

  • Continuous efforts to achieve stable and predictable process outputs are vital for business success.
  • Operational business processes can be measured, analysed, improved and controlled.
  • Achieving sustained quality improvement requires commitment from the entire organization, particularly from the top management.

Each Six Sigma project has a five step sequence (DMAIC):

DMAICProblem solving approach:

D – Defining

M – Measuring

A – Analysing

I – Improving

C – Controlling

  1. Defining the problem, and setting a project goal.
  2. Measuring current process performance and collecting relevant data potential root causes.
  3. Analysing the data to investigate and verify cause-and-effect relationships. Determine what the relationships are attempt to ensure that all factors have been considered. The analysis should reveal a root cause of the defect under investigation.
  4. Improving and optimizing the current process by introducing changes that reduce or solve the impact of the identified root cause.
  5. Controlling/Monitoring the newly changed process to ensure no deviation from the expected results occur and that the new process is stable.

 

LEAN Thinking

You are lean when all you resources are used to deliver value to the end customer – nothing else. This value has to flow through the value chain without any interruptions. All activities not directly supporting in the creation and delivery of this value is considered as waste and therefore reviewed for potential elimination.

Another definition: Lean is focused on getting the rights things to the right place at the right time in the right quantity while achieving a perfect workflow that is dictated by the customers demand to deliver the goods just in time.

LEAN – Five Principles:

Lean_principles

  1. Specify value from the customer’s point of view. Start by recognizing that only a small percentage of overall time, effort and resources in a organization actually adds value to the customer.
  2. Identify and map the value chain. This is the te entire set of activities across all part of the organization involved in delivering a product or service to the customer. Where possible eliminate the steps that do not create value
  3. Create flow – your product and service should flow to the customer without any interruptions, detours or waiting – delivering customer value.
  4. Respond to customer demand (also referred to as pull). Understand the demand and optimize the process to deliver to this demand – ensuring you deliver only what the customer wants and when they want it – just in time production.
  5. Pursue perfection – all the steps link together as waste is identified – in layers as one waste rectification can expose another – and eliminated by changing / optimizing the process to ensure all assets add value to the customer.

LEAN Tools:

  • Five S (5S): A process of keeping the workplace ready for use exercising a discipline of 5 workplace practices beginning with S.
    • Sort
    • Set in order
    • Shine
    • Standardise
    • Sustain

5S optimally prepare the workplace to perform optimum tasks in the future including the idea of visual management.

  • Seven Wastes: Waste is any activity that consumes resources but do not not creates value for the customer. The purpose of seven wastes is to identify and eliminate waste in processes hence delivery greater customer value.                                              7 Catagories of Waste: Defects, Overproduction, Unnecessary transportation, Waiting, Inventory, Unnecessary Motion, Over-processing
  • Takt Time: The average rate at which a deliverable item is required to meet the customer demand. It is used to create the balance in the process between supply and demand and to help calculate the resources required to efficiently process a process just in time.
  • SMED
  • Kaizen
  • Value-Stream Mapping

Underlining the success of Lean is a culture of respect of people – at all levels. As Lean is a whole-system management methodology that requires a overall culture change to be successful – starting at the top.

 

Lean Six Sigma

General Electric (GE) adopted Six Sigma in the 1980’s – combining that with the principals adopted by the Toyota Production System (TPS), the origins of Lean Thinking provide the methodology of LEAN SIX SIGMA.

It is a complementary combination between the best of both worlds – Lean Thinking, which is focused on process flow and waste elimination and Six Sigma, which is focused on process variation and defects – driving business operational excellence.

 

Other relevant posts: Executive Overview of Agile #1 and #2

Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!