How can you reduce risk when implementing agile development in your SDLC?
To readily understand the difference between QA services and QA as a Service, it's necessary for us to explore the relationship, and fundamental differences, between outsourcing and crowdsourcing.
Outsourcing is a well-known and general term used to describe contracting out a process of some kind to a third-party. Outsourcing largely came about during the rise of modern business practices in the late 19th century. As technology improved and railroads became the norm for transportation of goods, businesses soon found it financially beneficial to outsource manufacturing or other services of scale for their own business needs, rather than doing everything "in-house."
The term crowdsourcing is a far more modern by comparison, first coined by WIRED contributing editor Mark Howe in his 2006 article, The Rise of Crowdsourcing. Loosely defined, crowdsourcing is the act of taking a task, typically performed by a specific agent (such as an employee or agency), and instead assigning it to a undefined, larger group of people.
While crowdsourcing has been used historically for centuries, most modern references to the term refer to the use of the Internet and other modern communication tools, as a means of gathering input and feedback from a wide range of individuals in near real-time.
For the most part, a QA service is able to provide testing services that are very specific in nature, utilizing a particular in-house team with a specific level of expertise in various areas of quality assurance. This could be anything from designing and developing a series of automated load tests to implementing specific technologies necessary for your project's required technology stack.
Therefore, a QA service is ideal for targeted, smaller quality assurance and testing practices that are simply too time-consuming to be handled by the in-house QA team. Developing automated tests, performing script maintenance, and analyzing service response times are all likely candidates for the services of a particular QA service.
Unlike QA services, QA as a Service is far more flexible and provides a very broad set of testing capabilities. Due to the huge number of individuals that are involved in the crowdsourced nature of QA as a Service platforms, particular aspects of a project can be tested and retested by thousands of individuals in real-world settings, from various locales, and using real-world devices.
QA as a Service can be implemented at whim, to perform testing during an entire software development life cycle, just to test a specific prototype build, or even to test a particular feature of a much larger project. This, in turn, allows testing to be performed at as broad or as detailed a level as necessary, with costs scaling appropriately to those specific needs.
Perhaps best of all for QA teams and managers, the crowdsourced component of QA as a Service means that testing processes are flexible enough to be scaled as necessary, from week to week or from one component to another, as the demands of the project shift.
Since QA services can best be thought of as a form of outsourcing the quality assurance procedures for a project, whereas QA as a Service more closely resembles crowdsourcing, we can begin to examine the differences between the two practices and where one may outshine the other.
The reason QA services are largely a form of outsourcing, in the realm of software quality assurance, is simply because they typically come as a predefined package. Any given QA service is likely a team from a single locale, which speaks the same or very few differing languages, maintains a rather rigid workforce, works a specific range of hours a day, and usually charges based on man-hours worked in addition to flat fees.
Moreover, outsourcing quality assurance services largely requires a great deal of managerial overhead, such as establishing a third-party project manager, creating detailed scope documentation and contracts, and properly educating the outsourced team on best practices and procedures.
Conversely, QA as a Service is comparable to flexible, on-demand cloud-based services like Amazon Web Services and Heroku. Rather than hiring and managing a specific, predefined team or company to perform quality assurance services for you, you're effectively hiring a wide range of people from all backgrounds, across all devices, from all locales, at whatever level of detail and scalability your project requires.
This crowdsourced nature of QA as a Service means that the testing procedures of the project are far less rigid than when utilizing a QA service. Since each individual within the much large crowd comes at the testing from a slightly different angle and perspective, this can often result in finding (and eventually squashing) a wide range of bugs and quirks that simply wouldn't have been noticed in a more stringent QA Service environment.
Additionally, while QA services typically charge flat fees and rates, along with dynamic charges for man-hours invested across the team, many crowdsourcing platforms only charge fees for actionable results, such as newly discovered bugs. This means not only do the testers in the crowdsourced method have personal incentive to perform efficiently and effectively, but it also means you don't pay for extraneous services or fees which may not produce useful results.