Why Performance Testing and Test Automation Are Ignored? Are There Better Options Than Building These Capabilities In-house?

Posted by Ram Garg on April 8th, 2010

Presentation1There can be no argument that you must provide a high-quality product. High quality for software products implicitly means that you must have an efficient and effective testing process and infrastructure to assure that your product is ready BEFORE your customers ever see it.

An effective testing infrastructure recognizes that the cost of defect caught post-release is exponentially more expensive than a defect caught pre-release. It detects and corrects defects before the product is ever released to your customer. An efficient testing infrastructure optimizes the cost-risk equation, minimizing the cost for testing activities while maximizing the probability that your product will meet or exceed your customers’ requirements.

Arguably, many companies do have reasonable functional testing capability. However, they seriously lack the regression, automation and performance testing capabilities that could greatly improve the quality of their product in the eyes of their customers. Why? There is constant pressure to invest scarce resources to deliver more and more features to stay ahead of the competition. AND, this typically happens at the expense of testing. Test automation and performance testing are activities that companies always seem to plan, but never actually get the resources and time to perform thoroughly.

Does your company have skills and bandwidth to perform these tests? If you are like most other companies these days and have leaned your workforce to the bone, chances are that you must focus your limited resources on introducing features to stay ahead of competition.

How then do these mission-critical testing activities get done?

There are options, of course.  You could build the capability in house. BUT you may end up needing more resources and time than you have to build a team, define effective and efficient processes, and establish the purpose-built infrastructure.  For a lot of companies, hiring people and investing capital in areas that are perceived to be outside the core, revenue generating activities of the company is simply not an option. 

You could outsource testing to a generalist IT service provider, BUT this testing is really a specialized activity and you could find yourself with exactly the same quality, management, and cost issues you had to start with. 

A better option may be to leverage new breed of specialist testing service providers that already have people, processes, and technology infrastructure that is purpose-built for this type of testing.  In essence, you plug into an optimized highly effective, highly efficient testing cloud. Risks are reduced, costs are controlled, and results are predictable. Problem Solved.

Lack of Cloud Testing may Impact Your Business

Posted by Ram Garg on December 10th, 2009

Cloud COmputnig - on-demand anytime anywhereIn a world of new IT trends and buzzwords, a new one has emerged …. Cloud Computing.  Many past trends, buzzwords, and technologies have offered a lot of hype, but little impact when it comes to improving IT and, ultimately, business results.  However, Cloud Computing really does have a very compelling value proposition:  it allows IT organizations to focus on strategic activities that offer real benefit to the business without getting bogged down in resource-hungry day to day activities, AND it offers a real opportunity to reduce IT costs. Cloud enables solutions on-demand, anytime, anywhere.

Of course, there are challenges, both real and perceived.  Business leaders worry about mission critical things like cloud security, vendor locking, cloud performance, and availability. In order to protect their businesses, businesses should, and likely will, undertake a lot of due diligence before selecting a Cloud vendor.  And even that is not enough … For cloud to be effectively deployed and deliver real business upside, cloud applications MUST be thoroughly tested before release to customers, internal or external. 

Cloud testing / SaaS testing is not same as in-house application testing. Cloud applications intSaaS Application Challengesroduce many new challenges and traditional testing skills, methodologies, and tools are just not sufficient.  At the same time, testing is more important than ever as frequent issues may, at best, result into customer flight and loss of revenue.   At worst, a loss of customer data or violating customer information confidentiality may result in lawsuits that could devastate the business.

While there is a clear and compelling business case for Cloud computing, there are significant risks including performance, security, and availability.  To assure that cloud delivers on it value proposition, it is critical that you address:

  • Confidentiality: You must ensure that strict security measures are in place in your cloud application. Only authorized users are able to access information that is relevant to them. You must thoroughly test the security of your applications to preserve confidentiality of your customers’ data.
  • Resource Sharing (multi-tenancy): Cloud allows elasticity (e.g. resources are available on demand for your changing needs). If a proper resource quota is not in place, some applications can consume significant resources and negatively impact other applications. Your cloud environment where your application is deployed, should assure that enough resources are reserved for varying load, and that consumption of resources by one application cannot negatively impact other applications. Each application / customer must have a strictly enforced quota to ensure smooth delivery of all applications.  You must thoroughly test availability and quota boundaries for cloud applications
  • Performance:  As your customers access your cloud applications over the internet, loads will inevitably vary based on things like the number of customers, how many are logged in at give time, and how extensive the operations they are performing. You must thoroughly test performance to understand behavior with varying loads, identify when you need to increase resources, and limit certain operations during peak usages
  • Availability:  Resource sharing and dependence on internet infrastructure can caused availability issues for many cloud applications. You must perform exhaustive load stress tests with resource utilizations metrics and soak tests to assure that your application does not have availability issues.

To deliver real value to the business, proper steps must be taken before revenue-generating and/or business critical applications are migrated to cloud. Testing is clearly of critical importance. Without proper testing, migrating services to cloud may, and likely will, negatively impact your business, from disruptions that are merely nuisances to customer data confidentiality issues that could land your business in court.  The stakes are definitely high and mistakes could be costly. Today, social media will ensure that failures with your cloud infrastructures will be front and center with future prospects and customers. 

To complicate matters, cloud testing requires specialized capability. There are few organizations that have the skills, methodologies, and tools to effectively test cloud applications. The better approach may be to partner with a company that specializes in testing cloud applications.  Beyond the risk management and cost saving aspects, you may be enhancing your marketing message by highlighting the steps you have taken to address concerns around things like data security, vendor locking, performance, and availability.

Cloud computing looks to be an unprecedented opportunity, and not just another fad. But, you must be willing to take the steps required to assure that its potential is fully realized, while at the same time addressing real risks like security, performance, and availability.  A well thought out testing strategy and plan is one critical component that cannot be overlooked.

Leveraging Specialists to Assurance Software Performance

Posted by Ram Garg on December 10th, 2009

Offshore outsourcing is nothing new to the software industry as it was one of the first areas to really embrace the offshore outsourcing model. The abundant workforce and lower labors costs overseas lulled buyers into thinking that dramatically reduced overall costs were guaranteed from outsource arrangements.  Unfortunately, reality and perception are not always the same.  Despite a maturing outsource industry and constant improvements in infrastructure, every year countless software projects either outright fail or experience massive cost and schedule overruns, costing companies millions if not billions of dollars. Why is this happening?

A single-minded focus on direct cost reduction has led many companies to select outsource partners that are really generalists in their fields, basically offering bodies at a discounted rate.  They then task the outsource partner with multiple, interdependent specialized functions. Is it realistic to expect a generalist partner to provide enhanced value, and to do so in multiple independent functions?  Of course not! The best that can be hoped for is average performance, and therein lays the problem.

While cost is obviously an important factor, the overriding goal for any outsource decision must be to achieve enhanced value and an overall competitive advantage through improved return-on-investment, product quality, and time-to-market. The outsource decision moves from tactical to strategic, where it must result in increased value to both the end customer and the business.  The bottom line? An outsource decision is far more complex and important than a lower hourly rate for a resource.

As companies fully understand the strategic nature of outsourcing decisions, it becomes increasingly clear that selecting outsource partners based solely on price is not the best answer. Additional value must be created by improving the way things are done, improving business processes, and this is the domain of specialists, not generalists.   A new paradigm has started to emerge to address this reality and it represents the next generation of outsourcing: multisourcing.

Put simply, multisourcing involves leveraging multiple specialized teams to deliver enhanced value to the enterprise. These teams can be internal or they can be outsource partners. The idea is that a specialized team focusing on a single function (i.e. software testing and verification) can do that function far more efficiently and effectively than a team of generalists. A multisourcing strategy allows companies to break down key organizational requirements into multiple specific functions, and then align specialized teams with those functions that can execute in the most efficient and effective manner possible. How does this differ from a generalist approach and why is it so important? 

  • The specialist is much more likely to be abreast of industry trends and best practices in their function, and to have a purpose-built process and operational infrastructure in place to efficiently and effectively execute on those best practices.  
  • Specialist teams, focusing in a single function, are likely better-trained, more experienced, and more knowledgeable in that function.
  • As teams specialize, project status information timeliness and reliability improves. Why?  The conflict of interest inherent in a single generalist team handling multiple interdependent functions is removed. It is in every team’s interest to point out real and potential issues upstream and downstream in the process.

Companies can either build specialized capability inhouse, OR they can leverage a multisourcing strategy to tap capability without the need to invest in internal infrastructure. In many cases, it makes far

more sense to work with multiple, specialist partners than to try and build all capability inhouse. Trying to do everything inhouse can distract from the company’s core revenue-generation activities, not to mention that finding and hiring good people is expensive and organization building is inherently high-risk in today’s environment. Companies, in general, are leaning more on outsource partners for enabling functions and processes to allow more focus on core revenue-generating business activities and processes and that trend can be expected to accelerate.   

A multisourcing strategy may offer less risk and more predictability and certainty of results

Even five years ago, a multisourcing strategy may not have been possible as true specialist partners didn’t really exist, but this is changing. As the outsourcing market has matured, and as competition among providers has increased, providers have been forced to specialize to gain market share and competitive advantage. A multisourcing strategy leveraging multiple specialist partners now represents a significant opportunity for companies to achieve much more than a better hourly rate for resources. A well 

Put simply, multisourcing involves leveraging multiple specialized teams to deliver enhanced value to the enterprise. These teams can be internal or they can be outsource partners. The idea is that a specialized team focusing on a single function (i.e. software testing and verification) can do that function far more efficiently and effectively than a team of generalists. A multisourcing strategy allows companies to break down key organizational requirements into multiple specific functions, and then align specialized teams with those functions that can execute in the most efficient and effective manner possible. How does this differ from a generalist approach and why is it so important? 

·         The specialist is much more likely to be abreast of industry trends and best practices in their function, and to have a purpose-built process and operational infrastructure in place to efficiently and effectively execute on those best practices.  

·         Specialist teams, focusing in a single function, are likely better-trained, more experienced, and more knowledgeable in that function.

·         As teams specialize, project status information timeliness and reliability improves. Why?  The conflict of interest inherent in a single generalist team handling multiple interdependent functions is removed. It is in every team’s interest to point out real and potential issues upstream and downstream in the process.

Companies can either build specialized capability inhouse, OR they can leverage a multisourcing strategy to tap capability without the need to invest in internal infrastructure. In many cases, it makes far 

more sense to work with multiple, specialist partners than to try and build all capability inhouse. Trying to do everything inhouse can distract from the company’s core revenue-generation activities, not to mention that finding and hiring good people is expensive and organization building is inherently high-risk in today’s environment. Companies, in general, are leaning more on outsource partners for enabling functions and processes to allow more focus on core revenue-generating business activities and processes and that trend can be expected to accelerate.   

A multisourcing strategy may offer less risk and more predictability and certainty of results

Even five years ago, a multisourcing strategy may not have been possible as true specialist partners didn’t really exist, but this is changing. As the outsourcing market has matured, and as competition among providers has increased, providers have been forced to specialize to gain market share and competitive advantage. A multisourcing strategy leveraging multiple specialist partners now represents a significant opportunity for companies to achieve much more than a better hourly rate for resources. A well thought out multisourcing strategy really can offer companies access to enhanced value and an overall competitive advantage through improved ROI, better product quality, decreased time-to-market, and an overall reduction in risk associated with software product development.

 

Copyright © 2009-10 ramgarg.com