The business environment is extremely dynamic in the app economy and the development cycles are greatly compressed. The traditional manner of writing code and testing it, does not suffice. It can no longer be a sequential process and everything must happen almost simultaneously, says Ashok Vasan, Vice President, Solution Sales DevOps & Application Delivery, Asia Pacific & Japan, CA Technologies. We asked Ashok how DevOps is changing the software development lifecycle process. Here are some excerpts from the interview.
Q. How has Digital Transformation changed the way products and services are delivered to customers?
Ashok: Digital transformation is happening because of the way customers are expecting businesses to transform. So new business models are replacing old ones and the way services and products are being brought to market is changing. And we see that a good part of the services business is software driven.
The innovation and technology cycles are getting compressed. Outsourced partners or disruptive collaborators and third-party developers are now involved (in product development) and people require ways and means to bring all the artefacts together and yet deliver a quality product.
It’s a complex environment and it’s technology driven. So it is also an API economy. The organization is not sure what kind of service its partner wants to deliver.
Yet there are underlying challenges like security.
And this all stands on a three-legged stool, which is Cost, Quality and Speed.
Q. DevOps is really about the culture and behaviour among developers and IT professionals. What should organizations be doing to foster this? What are the big challenges?
Ashok: The first is mind set. The CIO needs to look at his job very differently. The CIO and his team has to implement any concept generated by the CEO or CXOs. The CIO’s mandate has changed and is no longer about keeping the lights on and making sure that everything is secured. CIOs have got to foster a culture of speed and agility.
We believe that this is a business-led approach; it is not technology-led. The conversations between the key business stakeholder and the IT organization have got to work very closely together. They have to involve the team that is going to facilitate the idea. And the team has got to believe in the idea.
Secondly, there has been a siloed approach within the IT organization, for various reasons. Developers always focussed on developing code, and then the testing team would come in. Everything was done sequentially and communication was done on an ‘as needed’ basis. The testing department would not co-mingle with the developers, so it was always separation of duties. And production was separate. And this led to bugs late in the development cycle, and by then, nothing could be done about it.
So those walls have got to be torn down. We have to move from separation of duties to a DevOps culture, where people are collaborating more closely together, with a common shared objective.
Q. How has the product development cycle changed in the App economy?
Ashok: Agility is now the name of the game. If you fail fast, you have to recover faster. The product development cycle has also changed. Previously, you’d start with market requirement, product function, features and specs. In an app economy you start with the end user first. You start with the user’s device and then move backward to the enterprise systems. User experience becomes more critical. This all ties into physical infrastructure and costs. For instance, in banking, you don’t have to give a withdrawal slip anymore. You just use an ATM. So the app has got to be intuitive with a short learning cycle for the end user. And of course, it has to work with speed, security, and reliability.
Q. What are the technology constraints that need to be addressed in the App economy?
Earlier developers faced some physical constraints when testing code, and couldn’t test as much. Systems were disparate and in different locations. And systems were not easily accessible due to licensing issues, or infrastructure limitations, so you could not easily duplicate an instance of an application, for a developer environment. There was also a lack of testing data when it came to launching a new service. Extracting a data set was a huge task. Add to that the complexity of massaging the data, cleaning it up, maintaining privacy etc. That task in itself became a huge project. And the moment you take a snapshot of the data it is already out-dated as changes are frequent. All these issues prevented developers from testing extensively.
Q. And how does CA solve these problems with its DevOps platform?
Let’s start with service virtualization. We take all these systems which developers need and we virtualize them. So we take a particular instance and virtualize it, so nobody’s relying on having physical access to it. This happens at a level across many different protocols. We record the traffic between the development system and the system that I require – whether it is a backend system, or a middleware. So a channel team for instance, can work in a virtualised environment of almost anything that sits in their backend. A NEFT or RTGS system can also be virtualised, so you are putting together a new payment platform, for instance. And it is no longer necessary to work with a physical system to do all this.
The second way of eliminating constraints is test data management. CA just acquired a company called Grid-Tools, a leader in test data management. This gives you the ability to identify the source of the data, to extract it, and to maintain the integrity of where that data comes from – even if it is a system of record.
These two things provide 30 – 35 percent improvement in terms of dev and testing organization.
The third constraint was the sheer time taken to deploy software code. These are complex applications being developed. There are open source configuration systems that handle hardware, software, and operating system configurations. But you need a specific method under which the application under development has to be deployed. And rules and policy have to be followed. You need a workflow for code promotion from one environment to the next. This moves an organisation from large batch deployments to a delivery model.
Release Automation can do zero touch deployment. The minute a developer submits a piece of code, Release Automation picks it up, checks if various conditions have been met, and then promote it to the next level. So the release team has a visual depiction of this workflow and can know the status of the deployment at any given time. Then we have some monitoring tools that help you pinpoint where the bug occurred. So you prevent rollbacks when the system does not work. It’s like doing a hotfix. We also provide a test automation suite so you can test the application after fixing the bug.
All this has resulted in 85 – 90 percent improvement in the deployment time. The speed and quality gets addressed and the development cycle gets compressed. And the cost issue is also addressed. This is the three-legged stool that I spoke about in the beginning.