I talked about global teams at latest rails conference in Berlin, also naming them the next "big thing" and trend. Andy could amazingly "repeat" my ideas. I fully agree with him!
The short idea is - outsourcing is not a way in ourdays. If someone just going to cut his budget putting some work to India, i bet 99% he will not be success. While global talents, skills and knowledge + newest communication technology born new phenomena of today: GLOBAL TEAMS
Absolute mustread!
When people see our process in action, they often call it "outsourcing", but actually, it's quite different. We work with single, unified, global teams. Nobody is "in" or "out". The shift from outsourcing to global teams is a big trend. This article will explain the difference and give readers some hints about choosing the correct organizational structure for any given project.
We can classify work at the level of a software team into three broad categories:
Co-located
This is the traditional group of people working together in an office.
Outsourced
An outsourcing arrangement involves two or more separate teams, with responsibilities divided explicitly between the teams. For example, the "in" team might be located in Boston and do specification, and the "out" team might be located in India and do implementation and testing.
Global team
A global team is distributed geographically, but it does not have a fixed division of responsibilities between locations. Work goes to the team member who is best able to do it.
What about Enterprise? If a big company can seamlessly coordinate its various offices, does that represent a different form of organization? It does not. Enterprise management actually breaks down into a combination of the three previous methods. No coordination is seamless, and the people that manage big companies understand that. So, they will break down projects into a combination of the three forms of organization described above. They will set up some local offices with co-located workers, and some global teams that are managed and funded as a single distributed team. At a larger scale, they divide working groups into cost centers with budgeting and chargeback arrangements that closely resemble outsourcing arrangements.
Co-located teams have an advantage in productivity, because communication is simple. Managers also feel they are easier to manage, because most managers have experience managing groups by personal interaction. However, they are increasingly difficult to arrange, because it's hard to get all of the necessary talent in one place. Geography makes it hard to get these teams together. In any given locality, there appears to be a talent shortage. And the natural and random movement of people makes it hard to keep them together. How hard? In the last year, I have not seen a single team bigger than eight people that was co-located.
Outsourcing has spread rapidly for reasons of cost, quality, and scalability. It achieves cost advantages by moving work to locations where people get paid less. It can achieve quality gains by moving work from organizations that don't offer a senior career path for the outsourced task (eg server admin) and don't offer wide experience, to organizations where specialists can get promoted in their specialty, and gain more experience. And, outsourcing arrangements have proven to be very scalable, with big companies able to make big purchases.
Unfortunately, the advantages of outsourcing are shrinking. The cost advantages have mostly dissipated because of wage increases and currency gains in "low cost" locations. The potential for quality gains has been limited by a focus on low cost and an depletion of the talent pool. The benefit of scalability is canceled out by the cost, in the form of risk, of problems in a big contract.
Specifically, outsourcing is a bad choice for the kind of product development work that I specialize in. There are three major problems that develop - quality, workload, and risk. First, the focus by most outsourcing firms on low cost and fixed pricing per "resource" means that they are motivated to give clients the cheapest or most available individual that meets any set of buzzword requirements. This works well in stable enterprise situations where predictability of process and year-on-year cost reduction is the explicit goal. In the business making new software products, individual talent is a huge variable that controls the productivity of the team and the quality of the output. Outsourcing arrangements are not designed to get clients the best individual talent, and in fact, can be disastrous. The second problem is that the explicit division of labor between teams leaves a lot of work for the client. To send a job "out", you have to do specification, and then acceptance testing. If the outsourcer is only doing implementation, it saves little or no work for the client. Other ways to divide the tasks produce similar workloads for the client. The third problem is risk. When a client hires an outsourcer, the client hires the management team, work process, work infrastructure, and implementation talent in one package. If any of those components don't work out, you have to unwind the whole process and start over from the beginning. That's costs a lot of time, money, and management attention, and is likely to be a fatal event for a startup. Hiring an outsourcer is a lot like hiring an individual contributor. No matter how careful your interview process is, a new hire has only about a 50% chance of working out for both sides in the long term. So, a startup accepting an outsourcing deal, without the resources to start over, runs a 50% risk of total failure. And, it takes extra time to get started because you have to carefully qualify candidates and manage this risk.
So, we have focused our energy on the third way of organizing - the single global team. It's more challenging to manage than a co-located team, so we have studied the tools and processes that make a global team easy to manage. Most software teams are distributed, so they need these tools and processes anyway. We believe that any loss of efficiency is more than made up by the savings in time from not moving people around. Global recruiting relieves the talent shortage.
We have also worked to solve the specific problems we identified in the outsourcing model. We raise quality and productivity, sometimes dramatically, by qualifying each individual with competitive trials. We qualify people who are good enough to perform the complete range of tasks required, and we distribute everything to the team, from initial design discussions to final delivery and customer support. It becomes a unified organization where everyone is "in" and ready to work on any task. Finally, we reduce risk by not sending things "out" in big chunks. Everyone is hired individually, including the team lead. All IP, including discussions, code, build processes, etc. is held on the Internet under the control of the client. So, if you need to make any changes on the team, you can bring new people in one by one without massive disruption. Risks are small and incremental.
Unified global teams are the next big trend. Work with one today.Posted by Andy Singleton on Sun, Dec 09, 2007 @ 06:13 PM
No comments:
Post a Comment