The fast rise of software talent marketplaces like oDesk and uTest represents a profound transformation. Software is no more a world of places – Silicon Valley, Seattle, Bangalore, Krakow or Tel Aviv. Rather, software is fast becoming a world of work streams. These streams are tied together through social networking and collaborative techniques in which virtual team spaces replace the site, the conference room, the metaphorical shelf on which the software artifacts are stored… and the water cooler.
Three trends drive this transformation in software from a world of places to a world of streams:
- Shortage of talent. Have you recently tried to hire highly skilled programmers in areas such as mobile applications or cloud computing? No matter where you site might be located, most of the skills you need in these critical domains are not within a radius of 25 miles from your site. You find the programmers where they reside, not necessarily in your vicinity. This reality applies both to your own company and to the outsourcers it uses, whether onshore or offshore.
- The economics of on-demand computing. Economies of scale in very large data centers have been shown to produce efficiencies that reduce cost of computing by a factor of 5-7X compared to the cost of computing in small and medium data centers. Such economies are not restricted anymore to the monolithic data centers of ITO companies such as EDS, Infosys or Perot Systems. They are available through providers like Amazon to anyone of us who is in possession of a run-of-the-mill credit card. You scale your computing environment as needed in a manner which is not much different from the way you scale gift buying toward Christmas.
- Decomposition of requirements. The Agile movement put a strong emphasis on user stories as tiny, granular piece of client-valued function. Scrum practitioners batch “bite size” stories (and derivative tasks) in sprints whose duration is typically a couple of weeks. Kanban goes an extra step forward by implementing one-piece flow. Each story is tracked individually, not as part of a multi-piece flow. This granular decomposition of requirements uses “a work-in-process limited pull system” to scientifically monitor and manage the stream of stories/tasks. Programmers and testers in your virtual team are out of sight – to you and to other team members – but their work streams and the particular challenges these streams pose are very visible and actionable.
Forward-looking development managers already utilize the three trends to achieve impressive results in productivity, time-to-market and cost of software. They “acquire” talent on a per-task basis wherever it resides through marketplaces such as those mentioned above. They procure computing resources inexpensively, when they need them, through the good services of Amazon Web Services or similar providers. And, they effectively oversee the work stream(s) of dispersed programmers and testers through Kanban tools. These three ingredients of the ‘secret sauce’ are immediately available to anyone who is willing to take the initiative to use them. The only real challenge in developing software in that manner is that it requires highly competent development managers. These development managers need to be able to break down requirements and oversee their implementation at a very granular level without having the benefit of interacting with a co-located team. Competent and empowered that various members of the virtual team might be, there is no substitute in this paradigm to the skills of the development managers – they must be of the highest caliber.
One could conceivably argue that the advantages of collaboration through cheap and rapid iterations
are largely lostunder the mode of operation described above. I believe this argument fails to take into account the harsh realities of most offshore software projects. Team interactions are systemically difficult across the three ponds separating the West Coast of the United States from Pune, India. And, flying folks back and forth from one continent to another is not quite consistent with the economics of labor arbitrage. The world might be proclaimed flat, but reverting to collaborative software to compensate for time-zone differences is just about the only pragmatically feasible option for teams distributed across continents.
With this analysis in mind, one is hard pressed to identify fundamental advantages to outsourcing, let alone offshore outsourcing, over the software development paradigm presented above. No doubt, outsourcers offered tangible benefits, including system management, system integration, centralized transaction processing and private digital voice, data and video networks to their customers during the heydays of the industry. It is not at all clear that similarly sustainable advantages are available to outsourcers in an era characterized by cloud, kanban, mobile and social.
The point is, you don’t need an outsourcer to pull together talent for you from far away countries. Use modern tools like LeanKit Kanban, oDesk, Sococo and/or uTest instead. These tools will do the kind of harnessing you need in order to be able to carry out expert sourcing on your own.
The remarkable thing about doing software in the manner described here is that it brings to the fore the unspoken truth of traditional labor arbitrage. To quote colleague and friend Michael Mah:
“… offshore projects exhibited nearly 2.8x higher defects [than US-based software projects]. When factoring in the added time and effort to resolve these higher defects, the cost was nearly the same as US projects, which eroded the advantage of lower labor rates.”
There is precious little an outsourcer who parcels out work to offshore locations can do that cannot be accomplished through the combination of competent development managers, global talent marketplaces and the Kanban method. Moreover, the economics of so doing are compelling. For example, the cost per bug reported by uTest is an order of magnitude lower than that achieved through traditional in-house testing.
I would be a little nervous these days if I were in the outsourcing business. My ability to recapture value through labor arbitrage is being eroded by the twin ‘brothers’ – Social Networking and Kanban. A third ‘brother’ – Cloud Computing – enhances and accelerates the erosion.
 James Hamilton, Internet Scale Service Efficiency, September 16, 2008.