The DevOps revolution has changed the way applications are developed, deployed and used. Hand-in-hand with the adoption of agile development methodologies, we now see software created and modified faster than ever before. But the road to a successful DevOps outcome isn't just a matter of attending a few courses and using connectors to link bits and pieces of software and other components. Rohit Jainendra (RJ) is the General Manager and Vice President for IT Business Management and DevOps BU at ServiceNow. I spoke to him during Knowledge 19 about what it takes to succeed at DevOps and some of the pitfalls to avoid.
"The way people have focussed on DevOps is that they've really focused on the needs of development teams and the needs of the enterprise have been neglected," said RJ. "For DevOps to succeed, not only does DevOps need to cater to the needs of the development team, it should figure out how to serve the enterprise needs in a way that you can leverage data".
Part of the challenge, he said, is that the first round of cloud deployments were typically "lift and shift" projects. But it's difficult to fully adopt DevOps practices when you have lots of legacy applications where the data inside the programs is locked in or difficult to share.
"Now we're starting to see customers who are not fully getting the benefits of going to the cloud and really want to look at the applications they have and work out which ones need to evolve for faster innovation versus those applications that don't need to be rearchitected and need to be optimised".
So, how do you move to DevOps successfully?
"The first thing to understand is what are you trying to solve," said RJ. "What is the problem you are trying to solve. It's fascinating because DevOps has so many connotations - it depends on who you're talking to".
The key, he said, is to understand your business' value stream. Often, this is based around being able to innovate faster and then figuring out what's getting in the way. Once you know that, you can move forward to solving that problem. Once you resolve that 'hot spot' you can move to the next one.
"DevOps is very much a systems problem where you need to the find the place that's causing you the most problem. Typically, it ends up being in that hand-off between the developers and operations. Once you address that you find the next and the next. It could be in your code administration or in your test management. But to do that, you need to understand your overall flow," said RJ.
He suggests starting with a pilot that shows success before moving ahead more broadly.
When it comes to lessons learned through his journey, RJ says the big challenge is with automated test coverage.
"How can you adopt DevOps if you don't have high levels of test automation? It's hard to solve because there aren't tools that create the automated tests - you have to go out there and write them. It requires the development team to pitch in".
For that to happen, RJ said you need to get the business owner's buy-in so developers can take a break from writing new features to support the testing needs.
"That's one of the hotspots in this journey. It's difficult to move from a traditional model".
In the past, many organisations had quality teams and, although the development tools and methods have changed, those people are still valuable. However, rather than being in their own team, the expertise is now distributed.
RJ also said getting access to production logs and then reverse engineering them to determine what users are actually doing can be valuable in understanding how applications are being used and to construct test scenarios and cases based on that data.
"What are they doing in production and actually mapping that to 'what are we testing?' Often times, you'll find there's a big gap between those. That's an opportunity to optimise your testing".
Anthony Caruana attended Knowledge 19 as a guest of ServiceNow.