


Managing a Global Programming Team? 737
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?"
Yes. (Score:2, Funny)
- A.P.
Re:Yes. (Score:3, Informative)
Re:Yes. (Score:2)
Re:Yes. (Score:3, Informative)
Re:Yes. (Score:2)
Re:Yes. (Score:3, Informative)
India has 14 official languages. Hindi is widely used but is not the native language of many Indians and is not even related to the languages spoken in South India.
So, while it would be commendable if you learned an Indian language to communicate better with your staff, you might have to learn several if they come from different regions of India. Not very practical IMO.
Re:Yes. (Score:2, Funny)
Re: Real costs of Indian development (Score:5, Informative)
Background: I've invested five years involved in the management and growth an Indian engineering team, and spent one year working for an engineering company based in Bangalore. I'd like to share some real experience and raw numbers for educational purposes.
First off, two things compel management to explore Indian development as a viable option:
1.) Cost savings
2.) They speak English
First, cost. The burdened rate for your average full time US software developer currently runs around $30-$50 an hour. (Burdened rate= hourly expense to the organization, which includes hourly wage, PLUS hourly breakdown of benefits, PLUS hourly breakdown of an individual's share of the operating expenses, calculated roughly as "AnnualExpenses / NumberEmployees / 2080", 2080 being full time work including vacation and all that.)
The burdened rate for your average web developer in Bangalore India runs anywhere from $6.50/hr USD for entry level engineers to $20/hr USD for intermediate host software end embedded engineers. Note that Bangalore is perhaps one of the more expensive markets for developers, certainly more so than Chennai and in Hyderabad (see below for regional discussion).
Quick - do the math. From a cost accounting perspective this makes loads of sense. The devil, of course, is in the details.
Next issue: "they speak English." That is true, but in the south, where the "High Tech Triangle" is defined by the cities of Bangalore, Hyderabad, and Chennai, often they speak Kannada or Tamil first, THEN they learn Hindi and English in school. Sometimes English isn't even their second language.
At this point many laugh and point out that there is then no way one could hope to understand these people, but that's an oversimplification. I've yet to have an experience where I've been unable to understand what an Indian Engineer is telling me.
Where this becomes an issue is where communicated expectations and requirements are sloppily conveyed verbally or through informal channels, such as Email. This audience of any should know to manage requirements well, but I've seen this mismanaged repeatedly.
Number 2 on the aged list of "Sex Best Practices of SW Development" states one should "manage requirements." Working with teams in remote locations, regardless if they are across the country or around the world, will fare far better if you nail this essential rule.
What happens if you don't manage your requirements? I encourage anyone to try working for a US company while located in a remote office...or even managing your project while on the road and working out of a hotel room. Working in India is often like working at the end of a 10K mile whip. Most people forget that hallway conversations don't make it to your remote office.
One more point on requirements: make sure your specifications include a definition of UI, preferably developed in the market where the product will be used, and look into using a string table to manage your strings, which helps greatly in your localization efforts. I actually make these recommendations regardless of where the SW team is located. Since when have traditional SW developers created winning interfaces?
If an Indian engineer has been toiling to get into SW development since they were 13 years old, how would they gain the experience to know what UI is intuitive? And even though developers have a good command of the English language, don't expect them to fix typos in your strings...which is why a string table is often better.
This is actually a huge issue, but in summary, nail your requirements and you come close to nailing this whole "they speak the same language" deal.
Finally, don't be shy to call during their operating hours, which on the west coast is 11.5 hours off. The work day typically begins at 9-10 am, and continues till 7-8 pm. Lunches are at noon or 1, and there is a coffee time taken at 3 or so. A phone call will nail close to every issue, far more so than an Email.
Finally, know your regions and how to take advantage of them. The "High Tech Triangle" is getting pretty sophisticated and therefore expensive, relative to other developers in other areas in India. Step outside this triangle and find some fat development deals, such as Profluent (not the one in San Jose), who is located outside this region and therefore hit even harder for business than those within, but my getting access to Profluent came through a strong personal relationship I have there. It pays to network.
Bottom line: process exists to negate risk, so evaluate the risks, then staff and define processes as appropriate. If I were to do it all over again, and I am, I'd invest in a project manager whose not afraid of 36 hour flights and 2 am calls, and I'd work with a smaller development shop before I'd work with a large one, for reasons I'll not enumerate here.
I'd like to end by sharing why I continue to chose native Indian developers for personal start-up ventures involving my investments: the developers I know there exceed the technical sophistication of domestic US resources. Too many American engineers smugly avoid cramming on diverse topics, a skill learned in the high-stress schools that weed our slackers. If I want good engineering work I call my friends in India.
I hope this has helped.
Re:Yes. (Score:2, Funny)
12 vowels and 36 consonants.
Wow. Unlike all the other languages which have the same grammars and idioms.
You are wrong.
Yeah, it's a slow day at work.....why else am I replying to AC's?
Yay! A commerical... (Score:3, Funny)
Keep click "refresh" on this story (don't forget to use those slashdot subscription pages) and see the advertisement for sourceforge!!!
*ahem*
regardless. (Score:3, Insightful)
hire american.
Re:regardless. (Score:4, Interesting)
Re:regardless. (Score:3, Insightful)
Re:regardless. (Score:3)
The project manager at the place I work said he had to manage an Indian team while working at a previous company. He said it ran him ragged. If I were you, I'd tell management to just get the 2 guys back and forget the India idea. If they only care about the $, you might as well quit because you'll either die of a heart attack or will likely miss the deadline and get fired anyway.
Or set it up so the management has to move to India....now that would be fun.
Re:regardless. (Score:2)
If you had an entire team from one country, that would be different. Even more so if they had a spokesman who spoke english well. But mixing and matching with people that don't speak English well is really stresfull.
My advice is to take your money and hire a starving college student or two. Hell, set up an internship and have them work for free (or give them ~$10/hr. They'll still love you). You'll get about the same quality code, much better documentation, and a lot less headaches.
Re:regardless. (Score:2)
nationality is irrelevant (Score:2, Interesting)
Why should the nationality matter to me? All I want is the optimal price/skill ratio. I couldn't give a fuck if you're from bumfuck Somalia if your code is good, you finish it on time and don't ask for too much pay. Isn't that's what the free market system is all about anyway?
YES EXACTLY (Score:3, Interesting)
So why should we answer this guys question, Its just helping him fire us!! Let him go to indias version of slashdot and ask THEM!
I'm sorry but I'm not stupid enough to help my boss figure out how to replace me.
This is why I'm so against globalism, this kinda thing will happen all the time as globalism becomes standard.
Re:YES EXACTLY (Score:2, Funny)
There is no India slashdot -- that's why they're more productive. Maybe you can keep your job by reading less slashdot and writing more code.
Re:regardless. (Score:5, Informative)
If there's that much more money in Bangladesh, though, then people there can afford to go to the hospital, and that many people are no longer dying in the streets. Moving jobs around doesn't destroy wealth -- it simply redistributes it. What globalism does is help make the market more even -- smooths out the particularly rich areas (as labor will be imported from elsewhere) and the particularly poor ones (as they'll be able to export labor cheaply). The net result, then, is that the standard of living everywhere will move closer to average -- without the use of government wealth redistribution (which I find repugnant) but merely market forces.
The point I mean to be getting to, however, is that people won't starve -- they'll just have to work for less. Countries without minimum wage laws will do much better, of course (they'll be able to export the labor of folks willing to work for less than the minimum wage elsewhere, whereas those in countries with minimum wage laws will be unable to find work at all in fields where the going market price is below the mandated minimum wage) but that's a problem with government interference, not globalism in general.
The main reason I can see people being homeless and starving due to such smoothing is artificial price floors -- minimum wage laws (allowing foreign competition to result in unemployment rather than merely lower pay), building regulations (raising the minimum price of housing and forcing people to be homeless rather than merely poorly housed), that variety of thing. Those problems can all be fixed -- and the net result will be less starvation. If there's less conspicuous wealth as well... so be it!
And I say this as a capitalist myself -- but as a fellow who'se convinced he has even globally a better-than-average product to sell, and who is happy to have more buyers (and more competition among his suppliers!) even if it means competing against more of my fellow sellers. I also say this as a fellow with a sister who'll be halfway around the world in a few months who may not come back -- I hope that she can always find work able to cover food and rent wherever she goes; if that means taking a job exported from elsewhere (like my employer, which has offices around the world), all the better!
You claim to be a "capitalist", but what you want is not a free market but a market rigged with tariffs and restrictions and taxes to benefit yourself alone. It's a short-sighted thing to want -- it may benefit you immediately, but the infrastructure set up to profit you immediately may bite you in the ass later; and the power to lay those tariffs in your favor can every bit as easily be used to raise the cost of the goods you sell. You mistake capitalism, a means of efficient resource distribution via fair competition, with unadultered greed; and shame the former in the process.
Its simple (Score:4, Funny)
Effective Recourse (Score:3, Insightful)
"Trimming fat". (Score:5, Insightful)
Trimming the fat implies that everyone who was laid off was useless. Just globs of ugly fat slowing down the company. We were glad to get rid of them anyway. Thank God this financial crisis came along so we could get rid of those chunks of lard clogging the arteries of efficiency. Whew!
It makes them feel much better about destroying lives.
Plus, the people who remain feel good about themselves, because they were the "lean" not the "fat". They're so important they didn't get fired!
Re:"Trimming fat". (Score:4, Interesting)
Ever wonder why downsizing/timming the fat, etc, etc seems to be much more common these days? Well, the overhead for paying management is much higher, and as usual, the middle to lower tier pays for it by being subjected to trivilizing and belittling buzzwords designed to protect people from having to swallow the 'reality' pill.
Re:"Trimming fat". (Score:2)
Re:"Trimming fat". (Score:2)
Do you have a source/citation for that statistic?
It's most likely a simple transformation of the stats for the gap between the lowest and highest paid people in large multinationals (usually a minimum wage mailroom drone and the CEO). Observe how the gap has changed (possibly going from a factor of 40 to a factor of 200) and multiply that change by current minimum wage.
Re:"Trimming fat". (Score:2)
I usually don't post twice in the same thread, but this needs to be commented on.
If it HONESTLY DID cost that much to hire the best CEOs, then great. Good for them. They're worth it.
But it doesn't. The salaries have grossly inflated in an "i'll scratch your back, you scratch mine" kind of way over the past few decades. CEOs of one company are on the board of directors for other companies and they've steadily upped their compensations.
They're simply taking money away from the company and the stockholders at the price of their employees.
Re:"Trimming fat". (Score:2)
Re:"Trimming fat". (Score:2)
Interesting thought. I suppose if you believe in that 'the more money you are responsible for generating, the more you make' rule of thumb, it makes sense from the stand point that as single entities take on larger market shares, than the dude at the top is entitled to make more, while the production line (well, if stuff was still produced on western soil
It could explain it, to some degree, although I'd argue that it doesn't make these people intrinsically deserve a disproportionately higher piece of the profit pie. And think that is responsible for only a percentage of the reason the disparity continues to increase. But thats another argument
Re:"Trimming fat". (Score:2, Funny)
Of course they did. I mean, all those penguin energy caffeine mints and bottles of Mountain Dew go straight to your thighs.
CEO shortage (Score:5, Funny)
Re:CEO shortage (Score:3, Funny)
Not too hard (Score:3, Insightful)
If you're treating the overseas programmers as an outsource, then the hardest parts will be nailing down the requirements, accepting code drops, etc.
If you're treating them as staff with a really long commute, then the biggest problems will probably be language barriers and time differences. (Get REALLY GOOD at IMing!)
In either case, it may also be tough to get test environments set up for the foreign staff, if it's not feasible for them to use your machines over a VPN or something.
At least, this has been my experience, in a place that does both (development staff in three countries, and outsourcing from two offshore companies).
Talk about a kick in the groin (Score:4, Insightful)
No offence, but I hope you understand if some of us offer you NO HELP.
Look for a new job (Score:4, Insightful)
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?
Do not do it! (Score:5, Informative)
I'm not sure what all the root issues are, but the time difference is huge. Get used to 9pm phone conference meetings. It was horrible explaining the software needs to the offshore groups. And fiunally, it's much harder to do quality control with people who aren't actually there. It's much harder to get them to fix problems when you don't have an in-person presence. Most programmers by nature get things done in the worst possible long term way. In the offshore situation, you will have almost no power to encourage them to create code that's built to last.
One more thing... (Score:4, Insightful)
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.
Re:One more thing... (Score:5, Funny)
International Teams (Score:5, Interesting)
But, as has been pointed out here already, there are thousands and thousands of US developers out of work, which makes it a buyer's market. To put it into perspective, a top-gun Russian developer is going to charge 25/hr. I am certain that you can find a comparable US developer right now to do it for approximately the same; plus or minus 10% or so. It's amazing, but even software developers like to pay their mortgage... ;-)
Re:International Teams (Score:2)
House has probably long since been foreclosed, boarded up and turned into a Wal-Mart.
flamebait? (Score:4, Funny)
You are asking a bunch of unemployed programmers how to best manage the foreigners you hired to take their places?
Hope you brought your asbestos suit.
Yes. Don't. (Score:2, Interesting)
no difference really (Score:2)
Agree on the statements of work
Make sure that the statements of work are adhered to.
Smile and enjoy the fact that you're helping keep americans unemployed by implementing a plan which will not bring the savings you were hoping for.
Budget for travel (Score:2, Interesting)
Quit (Score:4, Insightful)
Wrong place to ask (Score:2, Funny)
Over here everybody is a code-monkey who hates the managers because they have a (completely unnecessary) university degree, get paid better and are, in general, smarter and equipped with a better human-to-human interface.
(good?) Advice (Score:2, Interesting)
Keep in touch daily, don't hire yes men (Score:3, Interesting)
Also, make sure they have the same scheduling paradigm you have; for some reason a lot of people think that estimating a schedule means padding by tenfold, others think it means come up with the shortest conceivable timeline to please the boss.
Suggestions. (Score:5, Informative)
In terms of working with them off-shore.. You have the time-zone differences, which could be a potential headache (not sure exactly what the time difference is). Most Indians would already speak english (with decent clarity) so that usually isn't a problem.
I personally enjoy working with the Indian co-workers (off-shore or H1B's). The Indians that I have worked with have always been very productive, friendly, and don't slack off as much as their American counterparts. They almost always have better education backgrounds (due to the need for visas) but conversely have less real-world experience. Granted, I don't exactly like the idea that they are taking jobs away from Americans, but I can understand why companies will hire will hire them. Especially in this economy, where they are very excited about being able to get a position and will typically take a lower wage to work.
Re:Suggestions. (Score:2)
The real issues are communication ones, which I've seen a few people address. Of course, the funny thing is that most of the suggestions are things that should be done anyway - like nailing down requirements.
Interesting (Score:2)
Now, I'm all for free and open markets, but this doesn't sound like a choice.
What's the motivation? What's the benefit to not hiring someone here? Could it be that management is still having a tantrum about having to pay a living wage for a few years? Programmers gettin' too uppity?
It's sickening.
Dear Slashdot.. (Score:2, Funny)
Dear Slashdot,
Since i'm the kind of guy willing to cut corners and drive nails with a socket wrench, i'd like to hire some Hindu guys to code for me. The 12 hour time difference means i'll never have to talk with them, and whenever they call, i'll be out of the office. This is great. Who cares of Indian coders know they'll never be held accountable for their mistakes, being half a world away? I dont want it done right, I just want it done. Who cares if they dont have indoor plumbing? I want 500 lines of code per day for 3 Rupee an hour, or i'm outtahere. What should I do?
Here's one opinion (Score:5, Informative)
In general I wouldn't recommend offshore development for a small company. The overheads of managing the operation will kill you, and you will typically be doing exactly the sort of work an offshore team is less suitable for. It is much more suited to a large company that can build a long-term relationship with the offshore team and use them to help out several different projects. This allows you to amortize the overhead costs over a number of teams and projects.
Good luck.
Cost less for a reason (Score:2, Informative)
Be prepared to document more than you've ever documented before. You can't 'wave your hands' and get the point across. You have to do rather formal and complete documentation for any portion of the project that you would ever want them to do. You can't do small-group programming, like when your programming partners are staring over your shoulder, when the rest of your team is 10.5 timezones away. This may seem obvious, but a lot of folks miss this one.
Nail down your code/source/project management tools, and choose ones that can work in a multi-master (when more than one server can maintain data for the same project) or disconnected mode (see note above about connectivity).
I don't know if this is cultural or just a bad experience, but it seemed to me that there was no reguard for schedule or deadlines. Trying to get folks to actually attempt to meet a deadline was difficult most of the time. We had to go to India and sit on some of the people to get anything out of them. What's the ROI on that?
English is one of the official languages of India, but you'll still have language issues. Usually not too bad, but can be humorous at times. I remember once a sever was taken down for 'upgradation'. If you are having them document any of their own code, have it proofread by a US tech writer.
Be prepared to go nocturnal at times. There are times on any project when all folks have to be available at the same time. You will have to match your schedule to theirs.
Good luck.
As an unemployeed american programmer.... (Score:3, Insightful)
Enjoy!
Can't wait to see how far this get's modded down!!
Re:As an unemployeed american programmer.... (Score:2, Flamebait)
So much for american pride.
Re:As an unemployeed american programmer.... (Score:2)
It'll be interesting to see how the US manages things though - sending all its high paying jobs overseas and then wondering who's going to buy all the $200K houses, $20K cars, taxes, etc.
I left Canada cause the major employers were all gung ho to send all the jobs away. Now it looks like the USA is doing so, too.
Re:As an unemployeed american programmer.... (Score:5, Interesting)
Simple question. Why? America has done more than any other to usher in the era of glabal markets and global business. Someone in India offers the service for less cost, then I say all credit to them. America delegates almost all manual labour to the far east - where are your clothes made? Now they are handing out contracts for skilled work, and because many asian contries have excellent numerate education they are kicking ass. The same will happen in russia when it gets in gear.
The Indian guys we shipped in at $ORK[-2]were a fuck of a lot better than me, and as good as most of the rest of the group. Bear in mind that this was in a research group where the average PhD count was still above one despite two secretaries and a student on work placement. These guys are for the most part _good++_. I don't know where your degree is from, but they probably have two. And cost half as much. Put yourself in the position of the manager - If the project is reasonably atomic and QC isn't going to be a problem then shipping out contracts is a no-brainer.
now watch _this_ get modded to shit.
Re:As an unemployeed american programmer.... (Score:2, Insightful)
Salt Lake City is BAD NEWS. Lineo. Novell. Corel. PowerQuest. All have either been laying off of "trimming the fat." Couple that with the certification mills working at 110% efficiency promising prospective students jobs in the $40-60K range upon "graduation", and you have the following scenario:
Experienced, high-paid programmers/sysadmins competing with inexperienced paper-bred geeks for the same non-existent positions. "Managers" tend to overlook experience for "pedigree" thinking that just because someone has a piece of paper on the wall means they know what they're doing.
I've been doing "this" for over eight years. I can run circles around these newcomers, I have a killer portfolio, and have the scars to prove it. But is there a job to be had here? And this jerkwad is looking to hire H1Bs?
To these companies I say "May the fleas of a thousand camels infest your crotch."
Karma is a bitch.
--
My experiences (Score:5, Insightful)
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.
eXtreme programming (Score:2)
If you find you are still having troubles working with programmers that are difficult to communicate with (language/time zone), then you're programming methodology is insufficiently eXtreme.
.
as someone whos done this.. (Score:4, Interesting)
Beside having people just walk away with your initial money, you have a language problem, a different work ethic(niether better or worse, just different),you'll have to juggle time zxone issues, you have no legal recourse when they tell you it will be another 4 months. When you get the code, and get it working, you'll need someone to maintain it. Hopefully its written in a way that keeps that in mind. After the project, you'll have to fight for documentation.
again, after all is said and done, hire locally. It seems you'll only need contractors, and nows a good time because a lot of them are hungry for work.
Deep pockets with strings attached? (Score:2)
Something worth considering: if you have deep pockets with respect to hiring off-shore talent, you might actually save money by hiring American talent. The overhead is significantly cheaper, and these days, you can probably get experienced, quality coders for a fraction of their pre-bust salaries. Plus you have everybody on the team operating in the same time zones, and the face-to-face communication is better. Just something to consider.
Requirements, proper selection of tasks (Score:2)
1. Hand over independent projects. The more interaction their part has with everybody else, the greater the chance of problems. The communications differences are going to cause issues if there's a lot of interaction with the rest of the project.
2. Be very explicit on requirements. Nail down the exact behavior of what you want their software to do. Be explicit about the development environment and the target environment.
3. Avoid giving them tasks that you'll need to modify heavily for the next release, because they likely won't design with the next release in mind (the next release's requirements are likely not explicit yet. See #2 above.)
4. As much as you can, try to interview the people who you'll be dealing with. With remote development, it's all the more important that you get smart people.
5. frequent milestones -- since you're not there, you have no real way to tell where they are on your schedule, unless you have a set of milestones that they need to meet. Build meeting the milestones into the compensation plan.
So, the point is to segregate their development from the US development as much as possible. Work to minimize communications problems. Take strong measures to measure progress.
It's quite possible to get good work out of off-shore development. But, it'll take a lot of work on your end as well.
Here's my resume! (Score:2)
Set up a temporary email box and post the address here. Sure, you'll get a lot of crap, but you might just find a few good US-based programmers, too.
Like me! Like me!
India isn't your only option (Score:5, Informative)
Software development--particularly business software development--isn't about computer "science" or "engineering." It is about communication--communication amongst your team, communication with the computer, and communication through the computer with the end user. Communication is the key.
In hiring offshore developers you face substantially more complex challenges than you do working with a telecommuter. People who telecommute have established relationships with their employer--so they already know the implications of the tone of your voice, and what you mean when you preface your sentence with "I don't mean to be rude, but...." An offshore development team doesn't know that--you don't have the kind of relationship, based on trust, common bonds, and plain old time, that are necessary to make a team work.
There is a simple way to deal with that problem. It is called an airplane ticket. You go to them, or they (all of them) come to you--naturally that means you're the one on the plane. You can find a whole range of airfares, and a whole range of hotel prices, and a whole range of expenses involved in traveling literally halfway around the world. And unless your project is huge, you'll blow any conceivable cost savings on the travel.
You have other options
One (warning: self-serving promo coming) is to outsource to a consulting firm [windgap.com]. They'll charge you a fee--but at the end of the project they will go away. You don't have any overhead costs, you don't have any headcount, and you don't have costs for machines and toolsets that you no longer need.
Another option is to consider outsourcing to an "offshore" country that is considerably easier to get to. If you're in the United States, you might look very carefully at consulting firms in Canada: the Canadian exchange rate makes tech workers up north very attractive. And Canadian "offshore" development avoids a lot of the problems with outsourcing to the Indian subcontinent: Canadian firms are (mostly) on the same time zones as U.S. firms; Canadians and Americans share a common language--most of the time; and Canadians and Americans share a common cultural heritage (most of the time). In general Canadians are more polite than Americans, more funny than Americans, and perhaps more serious about their work than a lot of Americans.
Believe it or not, sometimes outsourcing deals don't work out....
An old dictum of business law says that you don't need a contract when everybody is making money. You only need the contract when things go bad. That's true--and that's why you'll need a solid contract before you start any project with any outsourcing firm. It is a lot easier to find legal help with contracts between U.S. and Canadian firms than it is to find legal help with contracts between U.S. firms and Indian firms. And--(look for articles on this subject in Fortune [fortune.com] or The Wall Street Journal [wsj.com]) the legal climate in India is not as stable as you'll find in developed countries. Long before Enron hit the headlines with its accounting problems, Enron was embroiled in a long-term dispute (see this BBC article [bbc.co.uk], for instance) with the government of India. There are all kinds of charges and counter-charges, but many in the West have viewed the debacle as proof that in India contracts are not nearly as ironclad as we view them to be. If it comes to it, it is substantially easier to litigate in Canada than in India.
Bottom line:
not to be trollish.. (Score:2)
If you've been granted "deep pockets", why not just rehire the guys that got laid off? Or hire a new crew of US citizens. Companies farming out their cash to foreign sweat shops isn't going to do diddly SQUAT to help the tech industry recover.
Yep (Score:4, Funny)
Include with your check all external telnet, ftp, vnc http ports and usernames/passwords you need to use for the project.
We'll take care of ya.
(Slightly OT) Exploiting Visa Workers (Score:3, Insightful)
What I think is disgusting is how many US companies cheat foreign workers who come to the US on H1-B visas. I helped one of my coworkers with his taxes because he had never filed a US tax return before. We have similar skills but our employer was paying him a third of what they pay me. Apparently, this is very common and I think it's wrong. Salaries for visa workers should be determined by the cost of living of where the employee is working and living, not his country of origin.
Not quite the advice you asked for, but... (Score:2)
...You need to be pointed at a few "help wanted" sites!
Seriously, don't burn your brains out (or sport-death your team-mates) to meet this fabricated emergency. If you complete the task, but wreck somebody's health, the senior management will most likely see this as a success, and an endorsement for chopping geek staffing beyond rational levels.
Considering "offshore" - consider Canada (Score:5, Interesting)
The price is right. Typical rates for Canadian consultants are 10 - 20% discount on US rates and then discount a dollar that only worth $0.65 US. No time zone issues or language barriers. Frankly, I don't understand why a US company would consider going anywhere else.
Don't. (Score:3, Informative)
To make that sort of operation work, you'll have to write such detailed specifications that you'll practically be coding it yourself. You're much better off with a couple of coders who will look at what you're trying to do, and make it work that way.
Off Shore Development (Score:2)
Long-Distance Teams (Score:2, Interesting)
Since we are primary an linux-run development business, we found that using phpBB's (www.phpBB.com [phpbb.com]) web board system we could keep things private and moderated, then we also utilized a few web based project management suites (you can find these through freshmeat.net [freshmeat.net] easier) for delegating tasks and having a calender available to everyone for upcoming milestone meetings and what not. Overall, the web boards/suites allow us near real-time interaction for discussing issues and for working on other problems when they arise.
-- M
Move your company to india. (Score:4, Insightful)
If only you could tell us the name of your company so we can boycott it.
Re:Move your company to india. (Score:2, Insightful)
I have to believe there are a large number of Americans who would love to see an organization of this sort spring up. Perhaps if there was enough force behind this organization it could help to lobby congress against all of this bulls#%t technology legislation they've been passing.
Where do I sign up?
My experiences (Score:5, Insightful)
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.
Don't Do It --- Big mistake (Score:5, Interesting)
Oversea outsourcing has problems beyond the traditional remote support. I have and continue to be a strong proponent of remote support. You get the benefit of hiring expertise that may not want to locate near you. For example, I work remotely for clients where the cost of living is easily three times what I pay here. And they do not offer three times the compensation. It sounds like that is what you are after. A win-win.
Here are just some of the issues:
- Time zones are more than inconvenient. If a question does not get answered by 8 a.m. , it will sit until the next day. Picking up the phone sounds easy, but will not be. How many issues can pile up before the communication is complete or they stop asking and just begin assuming? Who gets to call meetings and who attends? As the person leading the project, are you ready to work day and night? Team, status, and planning meetings need to be held with everyone so when?
- Code is not code. Simply put, cultural differences create issues in code. If you wish to own the code when you are done, both parties need to understand what is acceptable standards and what will happen with code that needs to be reworked (do you still pay while they rewrite it?). Standards for names, fields, tables, access types, how and what type of inheritance is allowed, etc. Assuming they will be coding in English (yes, you do need to make it a requirement), unless you all agree (or they have worked extensively in the US), someone will be rewriting the code. Or you will need to look at it like generated code. It does the job, but you never want to maintain it.
- Cultures different. As Americans, we tend to be naive in the assumption of cultural neutrality. And while many organizations do their best to be neutral, language continues to be a barrier. Consider how difficult it can be to understand someone with a varied US dialect. Add the phone, email, and 5,000 miles and a simple statement "You wish the account number removed, no?" takes on a whole new meaning. My unscientific number of 30 -40% redundant communication will work to minimize these types of issues.
Some companies put an American in charge from your side. You work through them and they make sure the details get hammered out with the team. This helps a little, but sounds a lot better than it works in practice. I was approached by a company to have mine work as that front. I passed when I saw the only difference was I would now have all the issues the client had, plus my own.
- What if it fails? This is the one that can be a stickler. Suppose you are being told that your project is on schedule and all the areas are coming together. The status reports look good and the code is getting delivered right up to the point everything stops. What are you going to do? While this problem exists in many contractor type arrangements, these folks are overseas in a country where use of the legal system is unknown. I hate to say it, but at least here you can sue someone if for nothing else but to get the code that was created.
At this point, I foresee a number of people reaching for the "reply - he's a bigot button." Hardly. These are business decisions and people make them from the cost/benefit. Often the price appears cheaper, because the assumption is made that given any programmer "X" they will generate lines of code "Y" and the result will be the same. That is not the case and is simple as the difference between hiring a person out of school and one with 10 years experience. The both know C++ so the results will be the same, correct?
Finally, consider the current economy. You did not say where you are, but I am willing to bet you could get the project staffed locally (or even US remote) for less TCO than you think. If they insist you use off shore help, then research carefully and find out the number of oversea projects done by the firm managed from the US. Of that total, how many were on time and on budget when complete. Then contact those customers and get their input. If their references are not glowing consider what the unhappy customers would be saying.
You may be the one that kicks the trend. However, I would be careful about putting your career on the line for it.
Canada (Score:2, Informative)
-Duke
bridging the gaps (Score:3, Insightful)
He'll be able to manage both of your offices more efficiently from there!
#2 - move the company HQ (incl. all of the top brass, finance, marketing,
and HR) to India and sub-contract the tech jobs to the US. Think of
how much $$$ your company will save then!
There are far too many people out of work in the US to be doing this right now.
I took a 20%+ pay cut after being unemployed for several months.
I lucked out because I REALLY like my new job, despite the cost adjustment,
and I'm sure that many people who are out of work would dearly LOVE the
opportunity to apply for the positions you have at a reduced cost.
Your company is not helping itself if it shortchanges US workers, unless
what you're selling is for a nearly 100% foreign market - if we're all
unemployed, how can we afford to purchase it? Another way to look at it:
how many Indian companies are contracting out to US workers?
Wrong forum (Score:2)
Having said that, I'd recommend that if possible, go with well-known companies like InfoSys, Wipro and Tata. They have extensive offices in the US and Canada, and in the unlikely event that legal recourse is needed, you can drag them into court.
Danger (Score:3, Funny)
Slashdot's worthless opinion (Score:2)
There are a lot of serious issues to consider, but you're not going to get much in the way of answers on slashdot.
I have been doing it.... (Score:2)
P.S. -- make sure they have a fast connection direct into your network.
Yes, Don't. (Score:3, Informative)
Unless:
- Your 6 Month deadline is flexible to ~ 9 months (b/c it'll take a loooooooooong time to get in sync)
- You know of specific competent people there that you know you can rely on (b/c mostlikely you cannot)
- You have specific requirements spelled out precisely how you want it implemented
- You do not need to worry about performance and memory (b/c mostlikely you'll take a hit there)
- You can't just hire another American employee and try to sweat it out... (b/c otherwise you're obviously working against the common good of the programmers in this country)
- You can deal with severe communication barriers. Lets face it, I know of PLENTY of H-1's that have lied about having a college degree to get a job here. Its obvious when they don't: they can't speak or write english well! You're mostlikely going to hit this problem!
- There's nothing preventing these people in India from blackmailing you for more money by not providing what they promised (its happenned to us!).
Need more??
RE: Managing a Global Programming Team? (Score:3, Informative)
The Dutch product is supposed to integrate with the product I work on, but in more of an inter-process-communication way than a codebase-integration way. That is to say we collaborate on interface, but implementation is generally determined locally.
Even so, the geographic separation has been a nightmare! At the very least, the nine-hour separation makes the round-trip turnaround for an email Q&A one full day: (I ask a question at 9AM PST - which is after quittin' time in Holland - so they don't see it until 8AM their time (11PM here) - and I don't get an answer until I come in the next morning.) And these are locally-managed developers with an execellent existing infrastructure. The problems would increase exponentially with the required granularity of long-distance management.
A recent assesment of the problem by an outside consultant suggested that the only cure for this problem is a large increase in spending on plane tickets. Our developers will have to fly there, and vice-versa, for face2face communication far more often than the semi-annual visits we currently do. If we had hired the Dutch developers just because of their lower cost/hour, we would have seen the savings completely blown in the additional travel costs (not to mention the lost productivity from jet-lag - you're not going to get anything useful done when you hit the tarmac at Schipol at 8AM local time, but your body is telling you it's bedtime.) This problem would only be worse if the remote office were in India, with a 12-hour separation.
Summary: The overhead of long-distance management will far outweigh the savings realized in hiring cheaper developers. Don't do it.
Elbonia have a National Anthem? (Score:3, Insightful)
Make everything and I do mean everything a configuration item:
configuration management documents,
object repository
class/method code, (The CVS itself)
data instance (data sources & sinks)
project & subproject
tasks & milestones,
configuration item production and consumption
(critical) paths,
human resource experience set
skill inventory
task experience requirements,
design specs,
analysis docs,
layouts of
files,
tables,
object models &
relationship models,
presentations (screen & report),
system architecture documents,
strategy documents on
database,
middle ware,
business logic &
presentation layers components & reuse
coding specs,
reusable components
code classes and methods/functions,
test plans,
test runs & results,
implementation/deployment plans,
migration paths from
development, (stages and what
testing,
production to
final deliverable packaging.
Then, maybe, just maybe, you may be able to create something and deliver something that won't make you want to stick your head in a bucket in shame, at all, never mind on-time or under budget.
There's a lot more to managing a project than inspirational speeches and waving "The One Minute Manager" around and failing to remember Brook's "Mithical Man Month."
From a project manager from India... (Score:4, Insightful)
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 !!
Re:The usual suggestions... (Score:5, Informative)
Just do the usual stuff...
...but in spades.
My employer first began contracting work to India about 10 years ago. The first couple of projects were dismal failures; but we eventually got the hang of it and continue to use lots of India-based developers. Here are a few of our learnings:
Re:The usual suggestions... (Score:2, Insightful)
I'd agree, we use IRC to keep in contact with a team spread all over Europe and America. One major bonus of using IM/IRC/chat clients would be that people often find it easier to understand typed english than listening to it. It may also help you understand them if their accent is not so good.
Unfortunately if you're in the USA and your team is in India (which is what...12 hours ahead?) I'd guess the timezone effect may make using realtime chat very tiring
Email does get around this...but emails tend to go unanswered when people are busy. The solution we use is to employ mainly insomniacs who don't mind being awake at odd times to check in.
Re:The usual suggestions... (Score:2)
My understanding is there isn't much you can do about that because the phone calls/internet to that region was via sattelite. Bouncing off a sattelite(s?) was just too much distance even at the speed of light.
Expect frustration.
Re:The usual suggestions... (Score:3, Informative)
Re:The usual suggestions... (Score:2)
Re:Why go offshore? (Score:2)
It's not an issue of quality here; it's an issue of money. While some companies have taken the opportunity to trim dead wood, most people are out as the result of projects cancelled, departments eliminated, and entire companies gone bankrupt. If you can't find a programmer here in the USA for half the price they made in 1999, you don't know how to recruit.
Even with that, you'll certainly find programmers cheaper in India. Costs are much lower there, so the demand for salary is likewise lower. But there will also be some increased costs to deal with. And there are greater risks. Large corporations with offices there can manage those things a lot better, but a small business will be entending themselves a lot to do that.
So say what skills you need (C? C++? C#? Java? SQL? Linux? Unix? Windows?) how much you want to pay and see whether or not Slashdotters laugh ... or send you resumes.
MOD PARENT UP (Score:2)
Sourceforge Onsite! (Score:4, Insightful)
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.
This is EXACTLY why I'm anti GLOBALISM (Score:2)
This is a perfect and I mean absolutely PERFECT example, of Americans losing jobs to some cheaper guys in india.
Indian programmers will ALWAYS be cheaper and eventually companies when they get to a certain size will not hire Americans anymore.
Why should they? If they can just get people from the third world.
SLashdot programmers and technicians, take a stand and refuse to answer this question, we DONT want them to know how to manage a global programming team, I mean unless you are the manager why should you help them fire you?
Re:This is EXACTLY why I'm anti GLOBALISM (Score:3, Insightful)
Re:GPL? (Score:2)
It sounds like this is going to be a close source proprietary application, but would it be adventageous to GPL it?
What the Hell?! Do you suggest this for everything? It isn't a magic bullet, you know - someone still has to write it.
Re:Rational has some good software (Score:2)
Our company uses *ack* SourceSafe and SourceOffSite with very few problems. One programmer is using Notepad for all her T-SQL programming. One guy does his Visual C++ development in xemacs under Cygwin. Most people here are doing PHP editing with Visual Slick edit. We have a dedicated Mandrake box running Bugzilla. I do my design documents in Netscape Composer. HTML or text do a nice reverse delta compression in SourceSafe and it is easy to parse in PERL if I want to do some autogenerated code.
One of the problems I see with Rational software is that it ends up not being cheeper than home grown solutions, and you can't modify the heck out of it as easily as the stuff you built.