Tuesday, March 4, 2008

Quality-as-a-Service: The Next Step?

Quality – Function or Service?

Software quality is usually considered to be a function within an organization. Whether we are talking about setting up and enforcing quality assurance processes or validating product quality by testing, we are usually thinking about a set of roles within an organization that are responsible for QA and testing. From time to time external consultants can be brought in, or the whole testing department can be outsourced, but quality control still will be a permanent, recognizable function owned by the company.

In the same fashion, until recently, companies have owned software applications. They could be installed on an internal server or on a rented space in co-location, yet they still would be an organizational asset.


SaaS, or Software-as-a-Service, introduced a new trend. Instead of owning software, a company would use it as a service on a subscription basis. Lower cost of ownership makes the SaaS option quite appealing: subscriptions are usually cheaper than licensing and upgrade fees. Furthermore, new hardware for hosting the application is not required, there is no need for extra personnel to maintain it, etc.


Here is the question, though: can this model be extended to other IT areas, namely to providing quality assurance and testing services?


The Anatomy of Software Quality

Software Quality can be separated into two categories: process setup and service delivery.

Process Setup entails defining the procedures for verification and validation activities throughout the software life cycle: reviews, inspections, testing, test automation, metrics and such. For each of these activities, we define its place in the software life cycle, design entry and exit criteria, and create templates and guidelines. We also configure tools to manage the deliverables: defect tracking applications, traceability links, and testing aids.

Process Delivery is about taking all these great processes and implementing them: conducting reviews, preparing test plans, designing and executing test cases, logging defects, and calculating metrics.


However, there is a problem: many of these tasks are either temporary or periodic. For example, the setup usually happens once and then requires infrequent maintenance. Requirement reviews do not happen every day or every week either. Testing has its peaks and valleys, too. The smaller the company, the more difficult and costly it is to maintain permanent personnel for these tasks. Resorting to temporary contractors does not bring much relief either: the learning curve frequently eliminates the cost advantage; attempts to shorten the learning curve negatively affect performance.


QaaS – a Win-Win Possible Solution?


Quality-as-a-Service, or QaaS, is an attempt to implement the SaaS-like model for software quality assurance and testing.


The idea is quite simple. A professional services company focusing on software QA and testing will offer its services to multiple clients on a subscription basis. Each single client does not have a need for full-time QA and testing personnel, yet has its peak periods. Together, they provide enough work for a number of QA professionals and software test engineers. Just like one accountant can serve a number of small businesses, one QA architect will set up and maintain processes for multiple clients. One test engineer will be familiar enough with a number of application lines to be able to design and execute tests for all of them without a significant learning curve.


The client companies will pay a subscription fee for a defined scope of services, plus a discounted rate for extra effort. This will be similar to SaaS clients who pay a subscription for a set number of transactions, with each additional transaction requiring an extra charge.


The Economics of QaaS


Quality-as-a-Service offers a number of benefits:


- No recruiting of QA and testing personnel: usually a costly endeavor


- No expense to maintain permanent personnel between peaks


- No significant learning curve for new contractors


- Knowledge cross-pollination: QaaS people will be able to implement lessons learned from one application to another


- More interesting jobs for QA and testing professionals together with the security of a stable job


The technology for QaaS does not constitute a challenge. The work can be done on-site as well as off-site, depending on the client’s needs, similarly to the way it happens now. The management expertise, metrics and their visualization exist as well in professional services companies that focus on software QA and testing.


QaaS Adoption


There are no significant technological challenges to the QaaS model. Many of the concerns such as enforcing data security, disclosing confidential information to competition or maintaining control over dedication of resources exist and are successfully handled when companies deal with contractors, employees who leave and go to work elsewhere or off-shoring.

In the end, the main challenge is to facilitate a paradigm shift. There is a great need to get out of the box, take a fresh look, and do something new.

I believe that companies developing and implementing software are ready for it.





Technorati tags: , ,