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.

How to Innovate to stay Relevant

Staying relevant! The biggest challenge we all face – staying relevant within our market. Relevance to your customers is what keeps you in business.

With the world changing as rapidly as it does today, mainly due to the profound influence of technology on our lives, the expectations of the consumer is changing at pace. They have access to an increasing array of choice, not just in how they spend their money but also in how they are communicating and interacting – change fueled by a digital revolution. The last thing that anyone can afford, in this fast paced race, is losing relevance – that will cost us customers or worse…

Is what you are selling today, adaptable to the continuous changing ecosystems? Does your strategy reflect that agility? How can you ensure that your business stays relevant in the digital age? We have all heard about digital transformation as a necessity, but even then, how can you ensure that you are evolving as fast as your customers and stay relevant within your market?

Business, who has a culture of continuous evolvement, aligning their products and services with the digital driven customer, is the business that stays relevant. This is the kind of business that does not require a digital transformation to realign with customer’s demand to secure their future. A customer centric focus and a culture of continuous evolution within the business, throughout the business value chain, is what assure relevance. Looking at these businesses, their ability/agility to get innovation into production, rapidly, is a core success criterion.

Not having a strategy to stay relevant is a very high and real risk to business. Traditionally we deal with risk by asking “Why?”. For continuous improvement/evolution and agility, we should instead be asking “Why not?” and by that, introduce opportunities for pilots, prototypes, experimentation and proof of concepts. Use your people as an incubator for innovation.

Sure, you have a R&D team and you are continuously finding new ways to deliver your value proposition – but getting your innovative ideas into production is cumbersome, just to discover that it is already aged and possibly absolute in a year a two. R&D is expensive and time consuming and there are no guarantees that your effort will result in a working product or desired service. Just because you have the ability to build something, does not mean that you have to build something. Focusing the scares and expensive resources on the right initiatives makes sense, right! This is why many firms are shifting from a project-minded (short term) approach to a longer-term product-minded investment and management approach.

So, how do you remain customer centric, use your staff as incubators of innovation, select the ideas that will improve your market relevance and then rapidly develop those ideas into revenue earners while shifting to a product-minded investment approach?

You could combine Design Thinking with Lean Startup and Agile Delivery…

In 2016, I was attending the Gartner Symposium where Gartner brought these concepts together very well in this illustration:

Gartner - Design-Lean-Agile 2

Instead of selecting and religiously follow one specific delivery methodology, use the best of multiple worlds to get the optimum output through the innovation lifecycle.

Design-Lean-Agile 1

Using Design Thinking (Empathise >> Define >> Ideate >> Prototype) puts the customer at the core of customer centric innovation and product/service development. Starting by empathising with the customers and defining their most pressing issues and problems, before coming up with a variety of ideas to potentially solve the problems. Each idea is considered before developing a prototype. This dramatically reduces the risk of innovation initiatives, by engaging with what people (the customer) really need and want before actually investing further in development.

Lean Startup focuses on getting a product-market fit by moving a Prototype or MVP (minimum viable product) through a cycle of Build >> Measure >> Learn. This ensures a thorough knowledge of the user of the product/service is gained through an active and measureable engagement with the customer. Customer experience and feedback is captured and used to learn and adapt resulting in an improved MVP, better aligned to the target market, after every cycle.

Finally Agile Scrum, continuing the customer centric theme, involves multiple stakeholders, especially users (customers), in every step in maturing the MVP to a product they will be happy to use. This engagement enhances transparency, which in turn grow the trust between the business (Development Team) and the customer (user) who are vested in the product’s/service’s success. Through an iterative approach, new features and changes can be delivered in an accurate and predictable timeline quickly and according to stakeholder’s priorities. This continuous product/service evolvement, with full stakeholder engagement, builds brand loyalty and ensures market relevance.

Looking at a typical innovation lifecycle you could identify three distinct stages: Idea, Prototype/MVP (Minimal Viable Product) and Product. Each of these innovation stages are complimented by some key value, gained from one of the three delivery methodologies:

Design-Lean-Agile 2

All of these methodologies, engage the stakeholders (especially the customer & user) in continuous feedback loops, measuring progress and capturing feedback to adapt and continuously improve, so maximum value creation is achieved.

No one wants to spend a lot of resource and time delivering something that adds little value and create no impact. Using this innovation methodology and associated tools, you will be building better products and service, in the eye of the user – and that’s what matters. You’ll be actively building and unlocking the potential of you’re A-team, to be involved in creating impact and value while cultivating a culture of continuous improvement.

The same methodology works very well for digital transformation programmes.

At the very least, you should be experimenting with these delivery approaches to find the sweat spot methodology for you.

Experiment to stay relevant!

Let’s Talk – renierbotha.com – Are you looking to develop an innovation strategy to be more agile and stay relevant? Do you want to achieve your goals faster? Create better business value? Build strategies to improve growth?

We can help – make contact!

Read similar articles for further insight in our Blog.