Managing a Global Programming Team?
cwimmer asks: "I work for a technology company in the United States who survived the economic slowdown by trimming fat where necessary. Unfortunately, it seems that my small programming team must've looked like mostly fat to management: it has been trimmed from a high of 5 to the current 2. We have been given a very large programming project that we estimated would take 4 coders (the size of the team at the time) 6 months to deliver. I have been given deep pockets with regard to moving some or all of the project to an offshore partner, and I can probably get 4 or 5 programmers in India. Does anyone have any pointers on managing a team of programmers on the other side of the world?"
Go to Slashdot, where there are undoubtedly a whole lot of North American coders looking for work, and ask them about some good ideas for getting cheaper labour overseas.
No offence, but I hope you understand if some of us offer you NO HELP.
How long before your firm realizes that they can hire a manager on-site in India for a fraction of what they're paying you and not incur the language barrier and communications problems?
.technomancer
Seriously, the people you are working for are incompetent. If you said it would take four people six months, then they should believe it would take four people six months. Whatever immediate savings are to be had by laying off three developers and hiring Indian contractors are going to be lost in the loss of experience with your product and the overhead of managing developers on the opposite side of the world. Give up, now.
One more thing. I agree with the others that suggest looking for a new job. If your management
is giving you money to complete the software but then telling you how you should spend it (ie. india), that's a sign they don't really respect your management decisions. If they really empowered you and had trust in you, they would say, "Here is $X. It's your responsibility to get the project done."
It seems like they won't accept any situatuion except one involving India programmers, and that is 99% guaranteed to fail. The failure will be blamed on you, you'll be out of work, and have trouble finding a new job (because of the previous failure which wasn't your fault).
The mere fact that they fired your team when you said you had just enough for the project should let you know they don't really value your opinion. Find a company that respects you. They do exist.
In the company where I work we have a partner in India that we can outsource to.
A few important rules do apply.
1) Projects should be of a fairly large size. Don't try to outsource a small part of a project.
2) Be precise in you specifications. We typically document and develop the architecture and design of the system together with management consultants and our customer.
3) Send you architect to India. When your architect (or lead programmer) has got a firm grip of the project, send him to the development team in India. You may loose a lot if you try to do everything by email, notes etc. You don't need to move project managers etc, but architecture is critical.
4) Make sure the outsourced parts can be boxed. I.e. develop in components, and specify and test each component individually. This should be done in most projects, but when you outsource, keep focused on splitting down the project in small (and easy to solve) components.
We work with a partner company in India. This provides us with project management of the remote team. It might be difficult if you try to have freelancers spread over a large area. Try to take contact to one or more companies over there and establish control of the project that way.
Many comments are about the language. We have not had many problems with that. The employees we work with in India are all fairly good to speak and read English, and I think that goes for most Indian programmers. That will be solved, as you will be able to determine their language skills when you talk (or write) to them.
In regards to tools there are many. Most of our contact is done by email, word documents etc... The issue about managing the versions of source code require tools, but there are a lot of good tools out there. The most important rule is to define the handling, updating and deployment of code. (Did I mention you should build often?)
When outsourcing don't underestimate the importance of quality control (testing etc...).
Hope it gave you some ideas.
-:) Oh no - not again.
www.rednebula.com
Combine the tools at elance with sourceforge (free or commercial)... and you're probably most of the way there...
At least that's what all the banner ads here tell me.
You could always hire a Canadian team - you'd get someone in your own basic timezone that speaks (more or less) the same language - and works for 63% of the money (last check of the currency value).
Of course - as always - your mileage may vary.
BlackNova Traders
Oh it just makes me sick. If you are a american you should quit your job and find a company where the owners care a little more about their employees. I've left companys for less. For instance I quit a company because they wanted to fire american workers and run the software on Citrix clients in Mexico. Rather then help them I left. Left them with out any developer support for the 450+ user system and laughed my ass off when they tried to call me for help. In this country we don't have any type of labor party to look after national IS workers interests and it is starting to show. From what I understand about 6 out of 10 projects that try to use overseas programmers fail for one reason or another. Mostly not being able to convey the business logic to the overseas developers.
If only you could tell us the name of your company so we can boycott it.
Last one in jail is a fascist.
These come from my experiences working with Indian programmers off-site. I am making no claims wrt Indian programmers on-site at your location as, in my experience, things work much better in that case. Furthermore, I am not saying Indian programmers are useless, only that the culture and language barriers make them much less productive than on-site developers.
Assuming you have four people including yourself on-site and, say, four developers in India, you will need to dedicate at least one of your developers (probably you) to managing the Indian programmers. This will be a full-time position. You probably will not do this and as a result, the productivity of the four Indian programmers will be approximately that of ONE of your on-site developers, and that is optimistic.
With a person full-time on managing the Indian programmers (and please note, an Indian manager in India is not the same), you will find that the four Indian programmers can develop at the rate of two to three of your on-site developers. This is because, in my experience, they are never willing to work overtime and also, because of the rather extreme language barriers, infrastructure problems, and culture differences.
Note that you will likely also need someone to do design for this project and furthermore, the design for the code you are shipping out to the developers in India need to be much more detailed than that you give to your on-site developers. In my experience, this can only be done on-site.
Add in a manager as you have a team of eight and you are now looking at:
- One manager
- One liason with the Indian programmers
- One (or two) designers
- One (or zero) local developers
- Four Indian developers, producing approximately 2 - 3 on-site developers' worth of code (and no design)
So your eight person team will be, optimistically, as productive as a four-man local team. Pessimistically, they will be half as productive.
You are likely to become slightly more productive with eight Indian developers and four local people.
For every four developers, you need one full-time person locally to do detailed design documents. For every eight or so people on your team, you need a manager. And you need one person solely managing the off-shore developers, assuming you keep their number down to reasonable numbers.
That means that with three local people and four Indian developers, you will achieve roughly the productivity of two local developers.
With four local people and eight Indian developers, you will achieve roughly the productivity of five local developers.
With five local people and 12 Indian developers, you get productivity of approximately 7 local developers.
It is rarely worth it to do development like this.
Oceania has always been at war with Eastasia.
P.S. contrary to opinion expressed in most mails. Time zone difference is an asset. I do most of my client calls from 7 to 11 pm India time which is early morning in US. Also, most of our first-time clients are pleasantly surprised to find that 40 bugs they reported last evening have reduced to 2 by today morning !!