Software Testing Business Models
Software Testing: Insourcing vs. Outsourcing vs. CrowdSourcing Overview: Before the Business Process Re-engineering wave, Big Enterprises had every business function of theirs done in-house. Once the advantage of outsourcing non-core business functions to outside enterprises was highlighted, Megalithic Enterprises started to become lean. As a Consequence, many highly specialized service firms began to bloom and thrive alongside the Big Enterprises. But now, Outsourcing has largely come to get associated with getting work done in low-skill, cheaper developing nations. Against this backdrop, CrowdSourcing had emerged as an alternative - outsourcing of high skilled business functions to best of talent at very cost-effective scale. This document explores the in sourcing vs. Outsourcing-crowd sourcing options specifically in the Software Testing Domain which are available to a business manager today. Software Testing as a Business Function: Till the emergence of the web, software testing was a function to be accomplished by a smaller team with significantly less complexity, especially when compared to the development effort. During those days, the users of software developed were a very restricted crowd and hence any system failures had adequate time to recover. Software Testing was limited to writing test-cases and ensuring the software performed correctly under varied situations according to the design specifications and with erroneous use case scenarios. During this time, in-housing of software testing was the right and only option available. But with the advent of the web, the users of the software moved away from a known set of in-house employees or partners to whole wide world and devices on which the software itself used started to be widely varied. To cope up with the complexity, software testing communities have responded by developing specialized test automation tools. Gone are the days when a developer can double up as a testing professional. Mobility has further increased the complexity of device testing task. I today s eco erce sce ario, every software fault invariably causes a loss of revenue. Software Testing has taken a mission-critical function role - shifting away from the peripheral technical niche, business augmentation role.
Software Testing Team - A Reflection of the Current Enterprise Model: According to the former Netscape Founder and Highly Successful Venture Capitalist Marc Anderson, Software is eating the world. Today every product - right from your shoes to medical equipment, is having some form of software embedded in its core. As a result, every Product Manager has to manage Software Testing as part of his work. When he is organizing his project team, He will be inevitably faced with the question of forming the team structure for software testing as well. Should this function be done as part of the in-house team by selecting a resident testing team, should it be outsourced or crowd sourced? It is important to realize that worldwide, the organizational structure of software testing too is starting to resemble the overall business organizational structures. The Software Testing Team Structure is always being impacted by the same business forces which are affecting the enterprise as a whole. So before forming a Software Testing Team structure, the decision makers have to view the options in right perspective. The question is not just about organizational team structure alone. Alongside Command and Control over the team, it is also a question of complexity and cost as well. Work organization and team formation structures are determined more by complexity and cost factors also. When viewed with giving proper weightage to all the parameters of the equation, the right mix of the options can be easily arrived at. For getting to this right mix, we should consider the strengths and weakness of all the three models available vis.-a-vis. Software Testing domain. In-Housing Model for Software Testing: The standard argument for in-house development is applicable for In-house model for software testing. If the users and the devices on which the software product is used are very restricted, the in-house model can be very effective. Also, if the need for control is very high due to nature of the product, Inhouse model is preferable. However, the key assumption behind this model is that the Software Testing talent is easy to recruit and retain. The Key advantage of having an in-house team is that there is no "invisible wall" of developers / US versus them/testers. However, the in-house model has two very big disadvantages in the long-run. First, the bonding between the developers and testers which initially gives good results will become the bane in the longer run because the testing team will slowly tend to cut-corners by starting to accept substandard efforts of development team. The management team would come to realize late that this bonding defeats the very purpose of the testing itself in the first place.
The Second disadvantage of the in-house model is that the in-house testers exposure slowly become restricted only to the scope of the in-house projects. Sooner or later, they become less exposed to the latest trends, best-practices and learning from the testing-community-at-large. Hence instead of Rigid In-house only model, a mix of In-house and outsourced model becomes indispensible. Outsourced Model for Software Testing: The Key Business benefit of outsourced model of software testing is that it provides an outsider perspective to Software Testing. Right Talent: As Software Testing itself is getting automated, expertise in specific tools is critical for effective execution. Certified, experienced and trained consultants for specific tools and methodologies can be easily recruited from an outsourcing enterprise. Flexible Teams: When working with an outsourced enterprise, customers can increase or decrease the team size based on the project phase without impact. For High Specific Domain Specialists, the engagement can be contracted in hours for greater efficiency. Efficient Cost Model: The Cost Effectiveness of an outsourcing enterprise depends on the pay-perengagement model instead of having to incur fixed costs as in the in-house model. CrowdSourcing Model: CrowdSourcing had evolved as Social Networks started to evolve as Trust Networks and entrepreneurs were able to create Trust Mechanisms on their collaboration platforms. CrowdSourcing Platforms enabled small and nimble players to compete effectively with Large Outsourcing companies, especially overseas. Tasks which are of very high specialization in nature and require just one person to get executed got traction in the CrowdSourcing Platforms. As the CrowdSourcing idea had gained momentum, more and more industries are adopting Crowdsourcing as a viable alternative to Outsourcing.
What is the key differentiating factor between CrowdSourcing and Outsourcing? While there are many differences pointed by others like crowdsourcing.org, some of the significant factors in our view are a. From Talent Perspective: In the CrowdSourcing model, you would be able to hire multiple, sometimes even competing vendors as part of your team, so that your team is broad-based. In Outsourcing, mostly your options for talent get limited to what is available with the outsourcing partner. b. From Cost Perspective: In the CrowdSourcing model, the enterprise would have to pay only for the output specified ; whereas in the outsourcing model, the typical pricing model is head-count based. In short, CrowdSourcing Model trumps Outsourcing model in the two key areas which made Outsourcing model scoring over In-Sourcing Model. Summary: When one is considering the Software Testing domain specifically, the enterprise typically hires an outsourcing vendor specifically for a hiring a few highly specialized resources. But they end up paying more for the additional standard resources which can be easily recruited from the open market for significantly less costs. When employing the CrowdSourcing Model, the enterprise can select the specialists from a separate pool or region and the standard resources from another region. The Enterprise can gain two benefits from this approach. The first is that the talent gets broad-based and the overall costs gets lower further without much risk. The Success of the early adopters in CrowdSourcing model for Software Testing has started to establish CrowdSourcing as a viable option when compared to Outsourcing Model. Being a value-added Platform enabler, 99Tests is working towards establishing effective synergies between the software testing vendors and the enterprises which are leveraging the CrowdSourcing option.