One of the key practices of agile and lean teams is the idea of Continuous Delivery. If not continuous, then at least very frequent!
ThoughtWorks has an area of their web site dedicated to Continuous Delivery, and also a really interesting webinar that talks about what Continuous Delivery really means, why it’s important, and how to do it – at least in principle.
Continuous Delivery might be a technical practice, but its benefits go way beyond the technical team or even the wider project. The benefits of successfully adopting Continuous Delivery could have a real strategic impact on the competitive advantage of an organisation.
Here are 7 reasons why Continuous Delivery needs to be a BUSINESS initiative:
1. Build the Right Product
Continuous Delivery enables a team to get continuous – if not frequent – feedback from business colleagues, user representatives, and ideally real end users. Frequent feedback loops mean that it’s possible to incorporate feedback into the build, and affect the relevance, quality and success of the end product. If Continuous Delivery extends beyond the internal organisation and is released to market, real metrics and insight can be gained from real usage, meaning that more useful features are developed further and less useful features are not. This saves wasting time on less useful areas of the product.
2. Earlier Benefits
A clear advantage of building software incrementally and adopting a Continuous Delivery approach is that some benefits can be gained much earlier, albeit in smaller pieces. Releasing some benefits early may mean generating revenue, or cost benefits, that help to fund further development. Or they may simply give you the edge over your competition. Past experience has shown the enormous commercial power of first-mover-advantage, meaning first to market often ends up being the long term leader in their chosen space, even if their first product to market was quite basic.
3. Ability to React Quickly and Respond to Change
The only thing in life that is certain is change. It’s inevitable. And things are changing faster than ever before. Two things in particular strike me as particularly challenging in this respect. The ever faster pace of technology that is almost impossible for companies to keep up with. And the economic uncertainty in the world we are currently living in. Both of these things mean that life is even less predictable than ever before. If you spend too long on anything, by the time you deliver it there is now a high chance that something important has changed. Maybe the market has changed. Maybe the customers’ needs have changed. Maybe your organisation has changed. Maybe new opportunities have emerged. Continuous Delivery makes it possible to react to these changes without having a huge amount of time and money sunk into work in progress that now needs to be abandoned due to changing priorities, or worse still continues just because it’s the path you are on. This also makes it more viable to react to opportunities and explore new ideas and potential new revenue streams.
By combining Continuous Delivery with frequent user feedback, it is possible to get developers closer to customers or users than ever before, really aligning their understanding of what users really need and maybe even identifying things they didn’t even know they needed! For instance, customers didn’t originally ask Apple for an iPhone with an App Store, or for a new form of tablet computer like the iPad. Users may be reasonably satisfied with all they know is currently possible. However developers may be able to create something entirely new. This can potentially be a way to drive real innovation.
5. Reliability & Stability
Some people worry about the risk of Continuous Delivery. In our experience of more traditional methods with infrequent releases, change is a risky thing and often leads to problems. If we adopt Continuous Delivery, won’t it be chaotic and problematic and cause all sorts of quality and reliability issues? Actually, it’s ironic, but the opposite is true. Continuous Delivery can enable you to deliver better reliability and stability by releasing frequently. Making changes in very small increments substantially reduces the risk of problems being caused. And keeping the changes in very small releases makes it substantially easier to find and fix problems if they do occur, minimising the time that they have an impact. The consequence of both is that Continuous Delivery teams can maintain products with even better reliability and stability than before.
6. More Efficient / Save Time
To achieve Continuous Delivery, teams need to automate deployment tasks. Often teams do not do this and the impact in terms of effort to create releases, provisioning environments and finding and resolving problems caused by differences or by lack of understanding can have a substantial negative effect. Since deployment is a task that is ideally repeated many times on a project and on an ongoing basis, it is well worthwhile to automate the process. This can lead to a lot of efficiencies and save the team time, which can then be spent developing more valuable features for users and delivering more business value.
7. Strategic Impact
Last but not least, and I guess it’s really a summary of all of the above, is the strategic impact. Better products due to frequent user feedback, higher benefits due to earlier releases, greater customer focus, speed to market, business agility, innovation, reliability and more efficient.
What business wouldn’t want all of that?! That’s why we must elevate Continuous Delivery. We must elevate it to being a key issue for executives – including non IT executives – as a critically important BUSINESS issue. An initiative to make your business as competitive as it possibly can be.