From Diego Lo Guidice's Continuous Delivery Conference keynote:
"I think are 7 things you need to do to get your organization on track towards an effective DevOps process. The order might change, but the key requirements are:
1. Automate environment management
You have to automate environment management. You simply can't have development teams waiting 2-3 weeks—or even one day—to get access to a complete test environment. It should be available instantly (e.g., using cloud) and it should even be self-service. At leading organizations, DevTest team members can spin up environments whenever they need them and use them to complete the work at hand. Each test environment is destroyed as soon as it's no longer needed.
2. Integrate continuously
As I've said before, there are many advantages to integrating continuously. However, from the business perspective, I'd have to say that quality is the most important one. I believe that continuous integration is really critical for maintaining high quality and allowing you to respond to things much faster.
3. Automate testing with APIs
You have to increase automation. Tools are important, and there are plenty of them out there. However, I think the most important thing is having an architectural approach to automation. You need to go beyond the user interface, do more API testing, and be much more structured. Your automation code should be developed like your application code—it should be traceable, bug-free, and efficient.
4. Make data-driven release decisions
The SDLC produces a lot of data. All the different tools generate data and metadata. We're starting to see how advanced analytics tools can make highly-intelligent correlations, pulling out interesting data and that we can use to decide what to test next or determine if we're ready to release/deploy.
5. Reduce the size of releases
Smaller batches are much easier to manage and deploy than large releases. It simplifies a lot, enabling you to deliver faster and with less risk.
6. Eliminate hand offs and wait time
Based on my research and discussions with clients, it's clear that hand offs and wait times are the biggest wastes in the software delivery process.
7. Establish an effective feedback loop
An effective feedback loop is crucial because your best feedback comes from the end-users who have actual hands-on experience with your applications. Yes, your business analysts do a good job helping you with that, but it's your users who will give you the best feedback on what needs to change and what you should focus on."
More Continuous Delivery Keynote Excerpts
Want to learn more from Diego Lo Guidice's Continuous Delivery Conference keynote? Check out these earlier blogs and videos:
Forrester: Why Continuous Testing is Vital for Quality @ Speed: How testing needs to evolve in order to enable quality at speed for Agile and DevOps.
Forrester: Barriers and Best Practices for Scaling Agile: The top 3 reasons Agile fails, how "Agile Expert" firms overcome common barriers, and Agile best practices.
Forrester: What’s the Role of Testing in Agile and DevOps?: The importance of integrating testers and testing practices into your development teams.
Test Automation, API Testing, and Service Virtualization in DevOps: Why test automation, API testing, and service virtualization are critical to agile development initiatives as organizations shift to continuous delivery, Agile, and DevOps.
- DevTestOps and Continuous Delivery Pipelines: How to build a Continuous Delivery pipeline for Agile processes and why "DevTestOps" is a critical component of such pipelines.