Some IT folks may think that they don’t need or are unable to implement CD because they aren’t a Web company such as Google or Facebook. This is purely a myth, as evidenced by Huawei’s CD transformation, as well as other companies (both small and large) that have seen the benefits of CD and have realized faster innovation and time to market as key drivers to their bottom line.
When you hear of CD implementations at companies such as Facebook, Netflix, Etsy, Gap and Huawei, it is important to understand that all of these companies strive toward an incremental release and the ability to more quickly and regularly ship products and new features to the end consumer. It’s the practice of CD that enables this—not the fact that they happen to be a huge company.
The benefits of CD are immense. The use of a CD platform allows a software organization to automate processes in the software delivery pipeline, eliminate mundane tasks, increase agility to respond to customer needs, reduce wasted time so developers can concentrate on the most important tasks, improve resource utilization, and achieve faster time to market.
Why did Huawei decide to implement Continuous Delivery?
Huawei needed to deliver more software applications and incorporate software features faster in order to keep up with user expectations and demands. When they tried to speed up the process, there was lack of automation and orchestration with their software development tools and processes. These two challenges were the catalysts for implementing CD.
Huawei’s CD and DevOps transformation journey began with implementing a shared cloud service and a centralized, end-to-end CD platform. With these changes, they were able to encompass build, infrastructure provisioning, deployment, testing and reporting into the software development process—including releasing pipeline visualization and progress dashboards.
Today, Huawei’s current implementation supports:
- More than 2,000 releases per year
- More than 100,000 compiles and builds per day
- More than 1 million test cases run per day
- More than 30 million lines of code (the product is complicated)
- More than 480,000 code reviews/analyses per year
- More than 170,000 system integration tests per year
Any software development organization, whether the software is for internal or external use, can benefit from the implementation of CD. The goal is to create a repeatable, reliable process of releasing software. CD is not only about the end release, it is about the software delivery pipeline—and this holds true whether you are delivering every five minutes or every five months, whether your software goes on a website or onto a chip.
One of the main benefits of implementing a CD strategy is to get your software delivery process to a point where it’s reliable and repeatable, and that it takes the slack and manual interventions out of the delivery process to reduce errors and cut cycle time. The very nature of CD is to have your code “release-ready” at any time, so you’ll be able to decide when you want to release the applications based on market and business needs. This control allows you to make software delivery decisions based on business reasons, not process reasons.
CD implementation is an ambitious transformation of an organization, with long-term, transformative results. It is not a turnkey solution or tool, and it involves all dimensions of your R&D organization. To succeed, you need a solid platform consisting of tooling and infrastructure, process and configuration management, and finally people and change management.