The push for faster application delivery, particularly from Agile proponents, is changing the nature of application deployment. Developers and QA testers are beginning to recognize how the cloud and tools based in the cloud can support rapid delivery, and experts say that within the next year, these trends will fully take hold.
"Think about what has changed in software, particularly around Agile and the speed of software delivery and the increased expectations of delivery: faster delivery, more incremental deliveries, more customer-focused deliveries," said Kurt Crowley, president of Blubird Technology Consulting. These all push to a faster delivery in general, he said.
Luckily, virtualization and cloud environments are giving developers and testers the tools to support rapid delivery. For example, virtualization enables QA to set up testing environments a lot more quickly. Instead of waiting several weeks for operations to build a new server, QA can use the management software that is layered on top of a public or private cloud and provision their own environment to their own specifications, explained Crowley.
"They know how to get their own software, deploy it and start their testing. Now it can take minutes or hours instead of days and weeks. That's a huge, huge thing, not just for the QA testing community but also for that rapid delivery of software to the customer," said Crowley.
The cloud itself, specifically Platform as a Service (PaaS), is also supporting rapid delivery efforts. "People are developing applications either directly in a PaaS environment or using PaaS tools to deploy applications. You have developers that work in these environments, and it's an automated step from there to get the applications deployed," said Paul Burns, analyst at Neovise.
The automation eliminates the manual, human activities involved in the deployment process. "From a QA perspective, there is some potential increase in quality because when developers develop apps, they can push a button and have the application deployed properly," said Burns. "You have deployments that work rather than, 'We put the apps in the wrong place and the app didn't start.'"
Crowley said that for the large enterprise customers he works with, "a lot of this stuff is still in the future." Even today, for the majority who are deploying to the cloud, it is still either a largely manual process or they are writing their own scripts to automate it themselves. In the coming year, Crowley predicts that the idea of putting the organization's own software in the cloud and using cloud-based tools to automate that deployment will become more accepted.
According to Burns, automated deployment tools are currently available for either on-premise or cloud deployments. "What's coming in this next year is you're going to see more and more tools that cover both on-premise and cloud so that you don't have to buy and use two sets of tools to deploy on premise and into the cloud," he said. "The second part is there are also tools that are focused on deployment to one cloud only, but we should expect more tools to support multiple clouds. Not just deployment to cloud or on premise, but also a variety of different clouds."
The changing role of QA
The increased pace of delivery, driven by Agile and enabled by the cloud, is also impacting the role of the QA tester. "The tester of yesterday is, to some degree, still testing, but to a large extent a lot of quality professionals are moving further up the lifecycle and being integrated into the front end, working with developers as functionality is created and becoming much more involved in the deployment and release management side of things. Those siloes of roles are becoming much more blurred than they have been in the past," said Crowley.
Burns referenced the trend toward DevOps, which is the blending of tasks performed by a company's development and operations teams. "Where DevOps comes into play, once it's time to deploy into production the developer team continues with the ownership of the software," said Burns. When a defect is found in production, it is taken straight back to the developers, he explained. This has a big impact on operations' role in deployment, but it also impacts QA's role.
"It's more common that developers and QA, because of Agile and rapid delivery cycles, are working together as a team on features for software and doing it in parallel. That changes the role, to some degree, of the traditional tester. That person is now much more involved in the front end of the lifecycle," said Crowley.
"For a QA person who is thinking about those deployments, the primary consideration is, 'How good do I feel about the environment that this code is going to?'" said Crowley. In other words, the QA person needs to ensure consistency between the testing and deployment environments. Application lifestyle management (ALM) tools can help in this regard.
"I'm a QA person and I want to spin up an environment, but I want to spin it up with this configuration, with this data that looks like the data that I tested against last week -- and it handles all of that for you. [An ALM tool] provides the comfort that you're going to get consistent results," said Crowley.
Clearly, ALM tools and cloud-based tools play a significant role in rapid application delivery and deployment, but they are not the end-all be-all. "You need solid testing processes, solid software delivery processes and solid configuration management processes across the board, otherwise speeding things up will just speed up the problems you will see inevitably," said Crowley.