Why you need software lifecycle virtualization

So you’ve virtualized your servers, and the benefits have been great: no more server sprawl, less energy use, lower capital expenditures. But you don’t have to stop there. Other essential pieces of your software development process can be virtualized, with similar success.

The next step? Software lifecycle virtualization. Thanks to this emerging trend, you can virtualize every step in the development lifecycle, from initial planning and architecting, to coding, testing, tracking, and ongoing maintenance. 

Software lifecycle virtualization is made up of discreet components that can be joined to create a whole greater than the sum of its parts. You can now combine virtual and cloud-based labs, service virtualization, network virtualization, and data virtualization to allow for greater flexibility, resource allocation, productivity, and return on investment (ROI).

The advantage of going virtual lies in constructing a complete environment that encompasses development, testing and operations, virtual services, virtual networks, and virtual data. The upshot? You get to market quicker, boost your brand value, attract and satisfy customers better, and bring down costs.

“Virtualization is now very important,” says Theresa Lanowitz, a leading IT analyst and founder of Voke Research, which published the 2011 report that initially popularized the lifecycle virtualization concept.

“It’s about going to production with something that is of higher value and of higher quality.”

Software lifecycle virtualization helps you balance schedule, quality, and cost tradeoffs

The software development process has always suffered from the complexity of balancing schedule, quality, and cost. And the increasing complexity of cutting-edge software is making finding that perfect formula even more difficult. Lifecycle virtualization allows for much better synchronicity of these elements, leading to increased productivity and value for money.

Schedule

Development and QA teams often must wait to access the tools they need, from hardware to network connections. Provisioning and maintaining the physical environment they need for architecting and testing wastes time and delays progress. With lifecycle virtualization, the necessary environment provisions and maintains itself automatically, allowing work to proceed unencumbered.

Voke's "Service Virtualization Market Snapshot," published in December 2012, found that development constraints had dropped sharply for those engaging in lifecycle virtualization. The average subject of the study reported a 23 percent plunge in software cycle times.

“You’re able to keep the software moving through the lifecycle, so it will get to customers more quickly,” Lanowitz says.

Quality

Lanowitz emphasizes that performance testing is often relegated to the last minute. This allows many defects to slip through, guaranteeing more work in remediating them or building fixes to accommodate them. With complex software, engineering out a defect after a product has been fully engineered is difficult, if not impossible.

The 2012 Market Snapshot found that the average development and performance testing teams are able to gain unrestricted access to only 18 of the 33 components and services they need to get their jobs done properly. With lifecycle virtualization, testers can employ automated defect identification, remediation, and removal earlier in the lifecycle.

Lifecycle virtualization obviates manual testing, which still accounts for an inefficiently large amount of testing. Running regression suites manually often leads to unreliable results, considering the system being tested is constantly changing. It also racks up labor costs. Automated regression enabled by virtualization solves both problems.

“I really think the key value that lifecycle virtualization provides is that it gives you a much more efficient and effective way to do application testing,” says Stephen Hendrick, principal analyst at Enterprise Strategy Group.

“Testing is often the most complex part [of the development lifecycle]. It’s certainly the most underappreciated part. But if it’s a mission-critical application, it’s worth a lot to know it can perform under any workload you envision.”

Cost

Lifecycle virtualization drastically cuts the time, hassle, and cost of engineering fixes made to product defects. Removing a defect when it's first discovered is more cost-effective than allowing it to pass on to later stages of the lifecycle or, worse, to be cemented at the production stage. The increased efficiency and availability of resources in virtualization also reduces the software cycle time, translating into an immediate cost savings.

In fact, the ultimate benefit of software lifecycle virtualization is moving from simply driving reductions in capital expenditure and operational expenditure to a "total value of ownership" (TVO) concept. TVO occurs when you have a lifecycle management system that can allocate resources as needed, reduce labor expenditure, eliminate errors, marry operations functions with lifecycle phases, and deliver products to market faster. Hendrick says:

“In a public cloud environment, it’s a pay-as-you-go licensing scheme, you can spin up hundreds of servers for your stress test and use them for 20 or 30 minutes or whatever your test takes. And now your test is done, and you’ve learned a tremendous amount and you’ve used someone else’s resources.”

Where to start with software lifecycle virtualization

The lifecycle virtualization ecosystem is large and complex—with many parts and many vendors vying to provide the tools in various combinations. A useful entry point can be found with virtual or cloud-based labs.

When using these resources, says Lanowitz, “anybody in the software supply chain at any time can have any environment they want for as long as they need it, with everything included in that environment.” It sounds like a dream come true for developers and testers, whose efforts at coordinating their tasks are often frustrated by working in slightly different environments.

Another high-value way into this process is to engage in service virtualization. This can be particularly useful in simulating how your application will function when engaging with a mainframe, application, or service that’s owned by someone else. Lanowitz offers the example of a bank that must connect with a credit agency’s mainframe in processing each loan application. She says:

“You can virtualize that mainframe and test against it as much as you want, you can slow it down. You can speed it up. You can see what it would look like if you were processing a loan application from Fairbanks, Alaska, or from midtown New York.”

That kind of location-based testing is a natural lead-in to network virtualization, which allows you to simulate the network your application will encounter after production to see how the software will function when accessed from anywhere in the world. Data virtualization is more complicated because of privacy and security issues, but this technology is progressing rapidly, too.

What’s the ROI of lifecycle virtualization?

The ROI of lifecycle virtualization is hard to predict because much of it revolves around heading off potential, highly costly problems. In cases where your stress testing uncovers no problems, you may feel the return isn’t worthwhile, but at least you will be confident that your app can deliver on its promises to customers without any unsavory surprises.

“Lifecycle virtualization and stress testing is invaluable because it’s better to find out before you go to production all the changes that need to take place,” says Hendrick. “There is immense value in knowing that your application can perform under any workload.”

Lanowitz emphasizes that service virtualization can provide especially good value for the investment, considering you can virtualize environments you usually have to pay to engage with, such as third-party mainframes.

Use software lifecycle virtualization to balance and improve scheduling, quality, and cost, and you'll be ahead of the curve because it will create a more effective development process for your organization.

Image credit: Flickr