Bert Jan Schrijver, a software craftsman at Netherlands-based JPoint, spoke at JavaOne on DevOps disasters. He shared 15 ways DevOps can go off course -- and he's experienced many of them firsthand. We asked him how to do DevOps the right way, from testing to automation. And, to our surprise, he even suggested it would be helpful to have a DevOps "SWAT" team.
A lot of people seem to think the role of tester is not to be part of a DevOps team, as in automated out of a job. You don't seem to feel that way. Can you give some hope to all the worried testers out there about what their role can and should be?
Bert Jan Schrijver: Fast feedback loops are vital for a DevOps team. A suite of automated tests that you can trust are critical for a team's ability to keep moving fast when a project progresses. Testers can deliver an important contribution to a DevOps team by helping with test automation. For testers [who] are struggling to find their way in a DevOps team, I can recommend Ioana Serban's talk, "TestOps: Chasing the White Whale."
Casual talk about DevOps always seems to lead to how critical automation is to the process. Can you explain why automation helps, but doesn't guarantee you can successfully do DevOps?
Schrijver: Of course, automation helps. Automated provisioning and automated deployments save loads of time, and more [importantly], prevent errors. But automation is not the main goal of DevOps. The main goal of DevOps is creating a collaborative culture, with cross-functional teams that work on delivering better software to their end users faster, and keeping things running smoothly in production.
A surprising number of people at the Agile2016 conference were hinting that Agile is on its way out. You seem to think they can happily coexist. Can you explain how that would work and what would need to happen, organizationally, in order for that to take place? And when you do DevOps, is it the natural extension of Agile, or something else entirely?
Schrijver: I like to view DevOps as Agile operations -- embracing change in production and providing short feedback loops. I personally believe that DevOps works best in an Agile setting, because both methodologies try to fix problems with traditional, slow software delivery. But you can surely do DevOps in an organization that delivers software using other methodologies, as long as development and operations engineers are working together on a shared goal: working software in production.
You talk about having a platform team servicing various DevOps teams. I think some might think that goes against the principles of DevOps. Could you explain how that would work and if you think that's a good idea for any organization, large or small, trying to do DevOps?
Schrijver: Having a central DevOps team that handles operations for all teams is indeed against DevOps principles. DevOps is about removing silos, not adding more. However, having a platform team that services multiple DevOps teams can work out pretty well. This team can focus on generic provisioning scripts, building infrastructure and evangelizing DevOps throughout the organization. As long as the DevOps teams themselves have full operational responsibility of their product, it's fine to have a platform team that helps the teams improve.
Agile and DevOps: Here's the scorecard for 2016
Testers, have you tried ChatOps?
Why this is the year of DevOps