There are enormous benefits to be realized by implementing a continuous delivery strategy. Rolling out new features quickly through efficient automation means that customers get the software they want faster than ever before. It’s not a package of tools that you can buy, nor is it an all-or-nothing concept. Continuous delivery, much like agile development, is a mindset, and successful implementation is only achieved by adopting the right principles, and by making the step-by-step changes needed to deliver them.
Step 1: Set your goals
You must have measurable and clearly defined continuous delivery targets that you want to work toward. Take some time to establish your goals and expectations at the outset. What are the benefits you are looking for? Think: faster, better, cheaper.
Step 2: Assess what you have
There’s no need to throw the baby out with the bath water. It might be an attractive idea to pull the trigger on a supposed one-stop-shop solution that promises to sweep away your existing structure and replace it with a finished continuous delivery machine, but this can result in major disruption. It’s also not cost-effective and it doesn’t leverage your existing knowledge base. Perhaps you have already automated your code check-out and build procedure. Take stock of what can be used; you may have continuous integration in place that requires only minor adjustments to work with the new continuous delivery setup that you are building.
Step 3: Plan your pipeline
You need to define and orchestrate all of the stages in the process, from concept to customer. How do you track new software versions? Who has ownership over each stage of the journey? In short: How do you manage new releases? Think about code integration, unit testing, deployment, configuration and quality assurance. Clarity and oversight allow you to generate reports, which will eventually enable you to identify trends.
Step 4: Automate everything you can
It’s perfectly normal to have a number of manual steps in your first pipeline, but you must work toward automation for testing, provisioning and deployment. With automation, you save on time and resources, you can introduce reliability into the process, and you can mitigate the risk of rolling out new features quickly. Cutting out manual processes reduces the room for error and results in a higher quality end product. Bugs can be identified and dealt with earlier in the process when it is cheaper to fix them.
Step 5: Choose the right tool for the job
Be demanding when you choose the software tools that will support your implementation of continuous delivery. Make sure to leverage your existing tools and knowledge base, and consider compatibility—as well as the best feature sets—and access to the largest and most knowledgeable support communities. Your chances of success are much greater with a careful and considered integration of individual components that allow you to develop expertise as everything comes together to create a complete platform.
Step 6: Work toward DevOps
The merging of operations and development into a single delivery team with shared responsibilities is your ultimate aim. This will cut down on tension between departments, increase cohesion, and ensure that everyone is pulling or pushing in the same direction. Gradually involve operations earlier in the project and allow development to work alongside them. Communication and collaboration between IT professionals and software developers is essential for continuous delivery to work as it should.
Step 7: Allow ideas to evolve
The immediacy of continuous delivery allows you to introduce small changes frequently, so you can take steps toward a new feature and see how real users react, rather than designing and developing something in its entirety before there’s a chance to find out how it will be received. To do this effectively, you need a feedback loop from customers that informs your team where to focus next and what features to drop. Alongside standard operational metrics such as response times and clickstreams, you should leverage forums, e-mail and social media to get the feedback you need.
There will surely be some bumps in the road, but if you take the time to commit to the guiding principles of continuous delivery, these steps can help you be on your way.
Andrew Phillips is VP of product management for XebiaLabs, a provider of application release automation software for enterprises looking to improve the application delivery process. You may reach him at aphillips@xebialabs.com.