Just when you thought you were safe from more process improvement for a while—not so fast. There’s DevOps, Continuous Testing, Continuous Delivery and Continuous Deployment. In this issue, we are focusing on Continuous Testing, the part most concerning Test teams.
DevOps is, by one description, Agile for Ops. With closer input and collaboration from the business side, development and operations are using great tools to help Ops be more Agile and migrate code to production faster. But this can be complicated.
Now, I am running into organizations that say they do DevOps or are moving to DevOps but have very little in place to do so, or worse, have no idea what they are doing. This reminds me of a few companies that I knew in the Agile era, that said they were Agile, but weren’t.
I saw firsthand, how many teams limped into Agile then raced to get testing done, while working from significantly less documentation, sometimes marginal collaboration, and were still expected to get high automation coverage; some of them are still trying to get their footing. Without the culture change, empowerment, skills and tools to make it happen, a team that attempts DevOps is headed for disaster. DevOps will highlight the shortcomings of a team on a larger scale, and faster than Agile ever could.
DevOps is a minefield! To do anything here, you have to know what you are talking about. It’s not just buzzwords. Just because you began using Puppet and Docker doesn’t mean you’re ready for Continuous Deployment.
We are at the stage in DevOps, and I am greatly reminded of the early stages of Agile, where the use of a single tool or single change had uninformed people make assumptions about an entire paradigm shift. And I’m sad to see this trend continuing.
If, a dozen years ago, you dropped phased quarterly releases to sets of 2 weeks sprints with user stories instead of requirements and your Dev team started using Jenkins. That, by itself, did not make you Agile. It was a start. If, for example, the team did not have access to the business side/Product Owner daily, while significantly boosting collaboration with early team involvement and significant automation coverage—then that team would be Scrumbutt, or Agile Falls, but still not truly Agile and instead of productivity gains many teams felt more pressure and uncertainty.
It took most organizations years to implement, figure out and tune the new practices. We even already have a few anti-names—DevFlops and DevOops. But let’s not go there. Let’s do it right! There is great progress to be made here. DevOps, like Agile, is about culture. In DevOps, the whole organization focuses on the business constraints and needs rather than the whole organization working according to development or Operations schedules. Product functionality and cycles are delivered when the business needs it rather than being at the mercy of development and/or IT/Ops.
DevOps is also more about business change and Operations/IT change than Dev and Testing change. Dev and Testing got turned on our heads with Agile. This time it’s other groups getting turned upside down. Getting Operations involved, shifting their tasks left, earlier in the cycle, and automating as many Ops tasks as possible with tools like Puppet, or Chef, and Docker, among many, many others.
To get all this business driven product delivered on their schedule, there is even more use of task automation. To get a good idea of where DevOps is going—everything that can be automated, has to be. From builds using Continuous Integration and test automation we became Agile. Test teams have been dealing with these tasks for a long time, but now more tasks, primarily Ops tasks: building and maintaining environments, build promotion, provisioning, monitoring—are all becoming automated.
For Test teams, this means a lot. Apart from the team dynamics, tools, and responsiveness to change, this of course, means bigger and more intelligent test automation. How we look at test automation has to evolve and grow. Its use, as well as when, and where to use test automation and how this cycle impacts our regular Dev sprints is expanding the role of the test teams—Clearly, we have a lot to learn and a lot to change.
To be DevOps and not DevFlops—first we have to know what we are aiming for, why, goals and how we can best support the business. It’s a challenge.
I hope we can help you.
In this issue, we feature a two part series by Sanjeev Sharma, Understanding DevOps, and Adopting DevOps. Alister Scott discusses Testing in Production in our Blogger of the Month feature. Sanjay Zalavadia writes about best practices to create a test-driven development environment and Tim Hinds discusses Where QA Fits into DevOps. Steve Ropa also has reviewed the 7 Best DevOps books, and we have an interview with Skytap’s Sumit Mehrotra. I’m pleased to announce that in addition to continuing our new TA Corner series, we also have another new column, Leader’s Pulse, which largely features recommendations on how to manage Test teams.