Service Virtualization - Where is it applicable?
Service Virtualization is the new buzz word today. My belief is that most of organizations understand the applicability of Service Virtualization but, the real challenge they face is to understand its working.
Bearing this understanding, I landed at HP Discover 2011, Las Vegas, Nevada. Besides the blistering heat what hit me was that clients were still grappling with the very applicability of service virtualization.
A sample conversation follows.
A QA director from a leading fortune 500 company walked up to me and as I was talking about Service Virtualization looked at me and said, in a rather loud tone, that Service Virtualization would never work for him as he was not a small-time product company. He added that Service Virtualization could at best be used for critical application testing in large organizations like his and nothing else. My response to him was a simple question, "Sir, do you know where service virtualization can be used in your organization?" After a long pause, he replied that he definitely saw no use for it in day-to-day testing at least.
I didn't know where to begin correcting his misconceptions. Over a long coffee break, I did share with him that Service Virtualization was useful to both small and large organizations. It was equally relevant to complex and day-to-day testing programs. Most importantly, every testing professional needs to understand its relevance to be able to decide if he needed it or not.
I have since revisited my earlier belief that organizations understood the business applicability of Service Virtualization. Between then and now, I have put forth this question to most of my client contacts and with every response I received, I was sure that the problem with the adoption of Service Virtualization was not in the understanding of the working of the solution, but more in terms of understanding the applicability of this solution given an organizations testing requirements.
So, here we go...Service Virtualization is an approach that is fast becoming a business reality. We need to accept this. With businesses changing every minute, the demands on IT to develop, implement, test and release quality applications, within shorter and shorter timelines, is growing rapidly. All these demands are putting significant strain on the resources that organizations have to execute these business requirements. When trying to respond to the demands placed by business, IT organizations are facing the constraints of cost, quality and time at every step. All these situations are perfect ingredients for organizations to use to understand, adopt and implement Service Virtualization.
Let us consider a scenario to understand the applicability of Service Virtualization in an organization. Let's say that we have a Payments Processing Engine (PPE) which is currently undergoing changes and is hosted in a traditional QA environment. This PPE system needs to talk to 2 major external systems - Legacy and Data warehouse systems, that are not currently available and are out of scope for testing. If the organization is to test the PPE system end to end, then they will need to acquire access to these external systems. Besides this the systems in question have other constraints associated with them. For example, access to the legacy system is expensive and is made available in a 2-hour time window only, and the Data warehouse system is not available in the testing environment. In a normal testing situation, this organization will have no choice but to deploy these dependent systems in 4-5 different environments to ensure effective development and 100% validation of the different sets of requirements associated with the PPE business application. Though this setup would increase the CAPEX flow for the organization significantly, it still wouldn't help the organization answer the question related to the availability of the associated system to enable development and end-to-end testing. These would bring down the overall implementation efficiency of the program in question. The only way out for organizations faced with such situations is to adopt Service Virtualization.
With Service Virtualization, organizations virtualize services for all external/dependent systems, like the Legacy and Data warehouse systems in this particular example in multiple environments. This helps the organization remove dependability constraints associated with the non-availability of associated systems for ensuring effective development and thorough end-to-end testing.
In fact, Service Virtualization is not something that we use for the testing of critical applications only. It is in the situations of day to day testing and development that organizations will see the maximum benefit from Service Virtualization. Service Virtualization is also perfectly suited for ERP implementations that organizations plan. Be it a claims processing system, payments system, order management system, sales order system, be it anything, Service Virtualization is the only way we will be able to ensure the 100% validation of the system, with the given time, cost and quality constraints prescribed by the business environment.
Given the ever changing and demanding business environment that we operate in, I have no doubt in my mind that Service Virtualization is THE approach that organizations, both big and small, should adopt going forward. I borrow from Yul Brenner's famous line from the movie "Ten Commandments", Service Virtualization is here to stay "So it is written so shall it be VIRTUALIZED".