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:

  1. 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.
  2. 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[1]. 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.
  3. 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”[2] 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[3].

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[4].”

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.

Notes
[1] James Hamilton, Internet Scale Service Efficiency, September 16, 2008.

[2] David Anderson, The Principles of the Kanban Method, December 10, 2010.

[3] Jeff Sutherland holds a different opinion on distributed teams in the Scrum context. Click here for details.

[4] Michael Mah, Is the World Not Flat? Cutter Consortium, Business Technology Trends & Impacts, August 31, 2006.

avatar

Israel Gat

Israel Gat is Director of Cutter Consortium's Agile Product & Project Management practice and a Fellow of the Lean Systems Society. He is recognized as the architect of the Agile transformation at BMC Software. Under his leadership, BMC software development increased Scrum users from zero to 1,000 in four years. Dr. Gat's executive career spans top technology companies, including IBM, Microsoft, Digital, and EMC.

Discussion

  13 Responses to “World of Streams: How Social Networking in Conjunction with Kanban Transform Offshore Outsourcing”

  1. [...] This post was mentioned on Twitter by David J Anderson, Bob Marshall, Israel Gat, Olaf Lewitz, Zane Puetterschmidt and others. Zane Puetterschmidt said: The Cutter Blog » Blog Archive » World of Streams: How …: [3] Jeff Sutherland holds a different opi… http://bit.ly/dGMTOV [...]

  2. Hi Israel,

    interesting trend that you are not outsourcing to large companies but through individuals all over the world. I think in order to make this succeed, you need to effectively address the common focus and communication problem. You could leverage social tools like chat, and other tools for this, so a traditional development is becoming a person who support this adhoc/virtual group. This will require different skills as you lack the face-to-face communication.

    You can also draw the parallel between how opensource has worked, a group of central maintainers with the aid of a lot of different individuals with different skills. It’s great to see organizations adopting this style of working. Very similar to something I experienced at XP days, called wolf pack programming.

    While a Kanban visualization can clearly help, it’s quite difficult to make reliable estimations of capacity if the people involved fluctuate a lot. The manager will become a capacity manager of the process.

    I think the way of working, really needs to be driven by results people deliver, because it’s the only way you can see/measure progress. What makes it harder to interview and very the skills of the person that does the job, and with a strict timing, it might be too late before you notice that there aren’t good results.

    Thanks for insight!

    • avatar

      Indeed, it is fascinating to witness how new tools and techniques reinvigorate established paradigms. Patrick’s shedding light on open source aspects is so well taken. IMHO the combination of {Open Source, Kanban, Social Networking} is dynamite.

      Best,

      Israel

  3. Hi, like the post and agree with the theory, do you have any data on the quality of the artefacts that were generated ?

    I have found that some people generate ‘better’ artefacts if the work is going offsite for implementation then those that would be going in house, so would be keen to know if your case they were similar ?

    Cheers
    Cuan

    • avatar

      It varies greatly, Cuan. The #1 factor I noticed is cultural predispositions. For example, folks in Control culture tend to be quite rigorous with their artifacts.

      The important thing to be aware of IMHO is that it is a zero-sum game. Time put into elaborate artifacts takes away from the time available for doing development, testing, etc. It is usually time very well spent up to a point, but not beyond.

      Best,

      Israel

  4. Really nice post. I think you hit the key to success very strongly. That key is management; not just process and style, but tools and infrastructure to allow for proper interactions. Agile places an emphasis on facilitating interactions, which is the reason that co-location is so strongly promoted within the Agile community. That’s one of our goals- to facilitate rich interactions amongst colleagues.

    • avatar

      IMHO it is soon going to be an amazing transformation – we are getting closer and close to being able to manage knowledge work in a scientific manner. My expertise, passion and focus are software, but I believe it is much bigger than “just” software.

      Best,

      Israel

  5. [...] the full article here. By: Israel Gat February 6, 2011 A nice read on why outsourcing can be a thing of the past if [...]

  6. I’m in the outsourcing business, the company has been in this business for 6 years.

    My feeling is quite the same, I think decomposition of requirements and the ability to manage quality are very important.

    But it will not be a good idea to have your team members in too many separated places, it will give you a better result if you can hold them in one place.

    My question is, how social networking change the outsourcing business?

  7. I agree that these innovations offer an opportunity to be game-changing. One of the challenges is institutional knowledge that grows as people become familiar with an application’s design and business intent. If you farm bite-sized stories out to a marketplace, it is not clear how to gain the benefits of this experience and knowledge. Perhaps the open source community can lead the way in this loosely-coupled model.

  8. avatar

    Two thoughts about this -

    (1) as others have alluded to, the end product is not always the sum of the parts. It is very important that the dev manager, the architect/designer(s) and the business owners have a clear way and a definitive say in whether the final product ‘cuts it’.

    (2) If you buy into the comment above, then software is becoming very similar to the ‘Hollywood model’ of creative development. In fact, I would argue that clear roles, responsibilities and culture on top of an effective collaboration environment that will create the best software. It’s not just the director (parallel to the development manager) that makes a great piece of content – it’s the team, from the producer on down, and the culture of that team, no matter how virtual.

    Successful software production companies will understand this and will have the culture and organization in place to make it happen.

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>