May 29, 2018 - 179 views|
Continuous integration and delivery helps businesses keep up with change by "learning as they go" and keeping their focus on the customer.
When I talk publicly about workforce transformation, I often do so in the context of “learning by doing.” What I mean is, once you’ve identified something that’s important to the customer (and, therefore, vital for business success), you drive change around it by using this discovery and just getting started – trying out new code as you go, pivoting or persevering as makes sense, all while ensuring this code generates new value.
This, in essence, is what we mean when we talk about continuous integration and continuous delivery. As many people know, continuous integration is a software development practice in which development teams frequently integrate their code into a shared repository. Doing so ensures the code is not harmful to other parts of the system, and that frequent and poignant customer feedback is received.
Such feedback reduces costs and increases the ROI of fixing issues. Bugs are often found and fixed within minutes or hours instead of days or weeks. Every integration is verified by an automated test and build, and test suites are invoked to ensure breaking changes are not introduced into the main code line. This further provides greater overall and incremental success, which in software development is marked by higher adoption and retention rates because the code is solving real customer problems.
All In It Together
Continuous integration also helps break down organizational walls – an essential element of increasing business agility and doing what’s best for the customer. For one thing, developers begin embracing a quality assurance (QA) mindset. Engineers and operations teams learn to come together to figure out where to host and execute a product build. Deploying the code to production requires collaboration among security, operations and a host of other teams.
So, instead of throwing responsibility to parties once a portion of the job is conceived as “done” (which allows teams to ignore true contingencies and dependencies, often resulting in classic organizational finger-pointing), everyone involved feels equal stake and responsibility in the product’s success. Not to mention, this increases empathy for all people involved in building the product and for all customers using it; nothing is more paramount in the result of value returned.
And Then There’s Continuous Delivery
Continuous integration goes hand-in-hand with continuous delivery, a practice that focuses on releasing software frequently and reliably – to the customer – in a frictionless manner. Because the code must always be production-ready, automated testing and validation is vital. Developers can consider a feature “delivered and complete” not when they release it to QA but when it’s deployed to production.
Continuous integration and delivery takes what has traditionally been a 12- to 18-month process often involving hundreds of people, many days and lots of politics and shrinks it to minutes or hours, in an automated, rapid and clear-cut fashion. To achieve this feat, organizations must come together and focus on the primary goal of delivering value rapidly to end users, mitigating all non-value-adding portions of traditional process.
The Real Focus: User Adoption and Value
The practices of continuous integration and delivery enable organizations to focus on the true consumer of the code: the customer. Code is delivered in small batches as “minimum viable products” to production environments, where users can begin interacting with the software and provide valuable feedback. This way, applications can rapidly evolve, based on feedback from users.
Businesses can also measure user adoption of new features. Driving adoption is a continuous cycle that doesn’t end after the first release. The velocity gain from continuous integration and delivery is critically important, as iterating and adapting to market changes enables the business to stay ahead of competitors in a rapidly changing world.
While many businesses are still at the early stages of continuous integration and delivery, almost all new product development now embraces the tenets behind these practices. Few cloud-native initiatives would go forward without continuous integration and delivery because of the accelerated speed and assurance of quality.
So Who’s Doing This Today?
Well for starters, we are working daily with customers of all shapes, sizes and industries to implement the “learning by doing” approach. Through Cognizant Labs, we engage with mostly Fortune 2000 companies – meeting customers where they are, creating roadmaps and plans for success, and partnering in the creation of products aimed at solving real problems.
Most recently, we’ve worked with a Fortune 100 insurance carrier, helping the company learn cloud-native concepts as it crosses the application transformation chasm with plans of then moving into the innovation/greenfield space.
And of course, there are companies like Netflix, which deploys code thousands of times per day, implementing continuous integration and delivery every step of the way. While this was not always the case, the company would not have survived and thrived in the way it has without having these practices as the foundation of everything it has done.
Making Software Development Strategic
Companies that embrace continuous integration and delivery come to see software development as a strategic capability that provides competitive advantage. With the speed of change in the business world today, there’s just no other way to keep up than “learning as you go.” There’s also no better way to ensure the customer is at the center of your digital initiatives.
In the end, if your organization isn’t delivering software with this mindset, it’s time to begin experimenting with it so you can see the value it brings to your organization. I predict you’ll find you can’t live without it.
For more information, visit us at the digital engineering section of our website.