In addition, the tools an organization decides on should be able to cover the builds, run the tests and orchestrate deployments, according to Atlassian’s Wittman. Also, they should provide some sort of metrics so that organizations can tell they are going in the right direction, according to XebiaLabs’ Phillips.
Last but not least, when choosing a tool, organizations should remember that while the tool can help ease the process for development teams, only the team can achieve success, not the tool, according to SmartBear’s Kaul.
“It requires a commitment, and if that commitment is not there right from people and the organizations, you can provide the tools to the people,” he said. “But at the end of the day, if you do not have people willing to work on the tools, the tool is not going to deliver the results on its own.”
Best practices to successfully implementing a Continuous Delivery strategy
- Continuous Integration: “The first, most fundamental thing you need is you need to be doing Continuous Integration,” said Tasktop’s West. “If you haven’t adopted a good source-code-management approach, a good build approach, then you are not automating certain aspects of your testing life cycle, and there is no way for an organization to start to implement Continuous Delivery.”
- Start small and experiment: “Set up an experiment site where you can make a lot of these changes and try to identify what works for your company,” said XebiaLabs’ Phillips.
- Automate, automate, automate: “Automate everything. There should be no manual intervention needed in order to take your software from developer check-in to delivery readiness,” said Electric Cloud’s Wallgren.
- Teams must be transverse: “You won’t succeed with your CD strategy if you keep an ‘us vs. them’ philosophy,” said CloudBees’ Labourey. “Project teams are composed from all stakeholders of the value creation. This is a radical shift away from how companies are typically structured, vertically, in silos.”
- Don’t remove business from the CD equation: “A CD strategy is not [a strategy] if it doesn’t embed business,” said Labourey. “A feedback loop from IT within IT is an internal IT strategy, not a CD strategy.”
- Focus on incremental releases and be flexible with what gets delivered: “Forcing features and functionality is counter to the agility you’ll gain by employing CD,” said AppDynamics’ Butt.
- Have the right tools in place: “Have the right tools in place to ensure you can not only automate yourself, but also ensure you can reuse your stuff from development to even testing to even when you are doing your operations,” said SmartBear’s Kaul.
- QA has to be much more involved in the process: “When you implement the QA team before the code is being written, it means that you would be spending less time testing later on because you can clear unambiguous requirements, and at the same time you can ensure that your costly development mistakes are avoided,” said Kaul.
- Implement traceability into every step along the way: “Every time you are building something, whatever a build contains—whether it was a new feature [or] a bug fix—you have to have some sort of tracking between what you were fixing and what to get fixed and where it got shipped to,” said Alison Huselid, head of product marketing for developer tools at Atlassian.