The pressure is on companies to become real-time businesses with a host of trends throughout the software industry focusing on the reaction capabilities of firms. This ranges from feedback and monitoring to built-in testing and continuous integration.
Now, as organisations attempt to discover what these changes will mean in the long term, they often discover continuous delivery: a software engineering approach that focuses on producing valuable software in short cycles and ensuring that this software can be delivered at any time. It has already become popular with significant companies such as Etsy, Paddy Power, Wells Fargo, Yahoo and Netflix – and given their success in the market, it’s easy to understand why continuous delivery is proving so appealing on a wider scale too.
Why consider continuous delivery
When it has been implemented successfully, continuous delivery has a host of advantages including:
- React faster | Perhaps the main reason to consider continuous delivery is that it allows for faster reactions: both internal and external. So if the market takes an unusual turn, for example, you can react to this quickly: which can potentially have a massive impact on your company.
- Reduce risks | Companies know how difficult it can be to issue a new release because of the huge level of effort that is required. However, with continuous delivery the software is constantly released – even if not always to consumers – so the risk surrounding releases is dramatically reduced. With a daily release infrastructure, you will be able to quickly resolve any deficiencies – much faster than if the process was only completed over a period of weeks or months.
- Make costs and inefficiencies clearer | With a single release done after a long period of time, it can be difficult to truly understand where the costs and inefficiencies in your software organisation occur. With continuous delivery this process is made apparent: not only to the business but also to its decision makers.
- Flexible options for release | Continuous delivery relies on a build-out infrastructure in terms of both the software architecture and from an operational context. Once that stage is passed, however, it offers a business an increased level of flexibility. It is possible to release specific features to individual consumers – and to ensure that their function and scale meets designs. Features can then be developed and tested or potentially be dormant in anticipation of multiple releases.
Are there problems with continuous delivery?
With such a host of potential benefits for your business, continuous delivery might seem like a magical solution: however, there are a number of considerations before you implement a continuous delivery transformation.
Continuous delivery will require an extensive overhaul of operational culture, technical processes and the way your organization thinks. As such, there is a considerable amount of change that you must consider about the software delivery infrastructure for your company. So, before implementing a serious change for continuous delivery, you should ensure that everyone is in support as it is likely that some significant trade-offs will need to be made during the implementation of the process.
In addition, there have been many continuous delivery transformations that have been stopped when the product manager states that a certain new feature should be the priority and must be tested and delivered on schedule: which goes against the overall objective. Furthermore, there are several other areas that will require a significant investment if you want to pursue continuous delivery. These include:
- Automated testing | One of the most significant features of continuous delivery is the testing for every bug. The true value of this is not likely to be seen for many months – so it’s vital to have patience if you wish to enjoy shorter release cycles.
- Architectural changes | It’s extremely important to move towards an architecture that is service oriented. However, if your software is not SaaS then it will be necessary to move towards component architecture – which will involve various release engineering and visioning.
- Culture emphasis | For continuous delivery to truly be successful, it will require a complete restructure of your culture. The nature of the structure can have highly positive effects on the organization as a whole: but this will rely on current engineers being insulated sufficiently to make the process work. Think of continuous delivery as a pipeline for delivery.
So can continuous delivery work for you?
There is no denying that continuous delivery takes a considerable amount of work. As such, it will need change in all elements of the team, throughout the organization, with a focused investment – in terms of hardware, people and tooling. However, the long-term benefits are undeniable.
As a starter, you need to ensure that your team understands that continuous delivery will require a complete commitment and can’t be seen as something that can be done cheaply or in your spare time. If it is viewed as an investment then businesses can react faster and in real time. This can quickly offset the cost of any investment helping to make life easier for your employees and giving them better control of their working environment ensuring problems are dealt with quickly and efficiently rather than leaving them to constantly prop up a system that’s falling apart.