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?"
Learn to speak Hindu.
- A.P.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
This is a good time for OSDN to push their "Sourceforge 3.1" software! Unite everyone globally with one piece of software!
Keep click "refresh" on this story (don't forget to use those slashdot subscription pages) and see the advertisement for sourceforge!!!
*ahem*
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
regardless of costs, there are a heck of a lot of talented programmers here in the US who would take work.
hire american.
your jesus is another mans xebu. chew on that hypocrites.
You just need to learn how to shout "do it again but do it right this time" in several languages.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
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
For the love of God, DO NOT DO IT! I've worked with or interviewed for positions at 3 different companies/departments that used off-shore india programmers. It was always a horrible experience. In each situation, after 6 months they said that hiring the offshore team actually hurt progress. That is to say, X programmers on site would have made more progress than X on site and Y offsite.
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.
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... ;-)
Let me get this straight.
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.
Karma: Good (despite my invention of the Karma: sig)
---
SCO is weenies
Gator is Spyware
Microsoft is thugs
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 a lot of travel on short notice. You will need "face time." Expect the trave to exceed what you will save in salary for such a small project. If you are hiring 20 or 20 programmers you might see a real savings if it comes out right. Also, plan on switching your US team to the graveyard shift so you can have enless phone calls with them. Been there, done that.
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.
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.
As a programmer whose company is thinking of hiring help from a local company that uses Russian programmers, I'd say: don't do it. The amount of complications possible by far outweighs the advantages (cheap!) in my opinion.. Like: -You've got your working program. But hey! there are two major bugs in it..but the offshore team is too busy with some other job, or are not reachable for some other reason. -From experience, everything you buy that is cheap at first, might turn out te be quite expensive later. I'd say, that might as well be true for hiring programmerskills. You're gonna need people to communicate to those programmers, even if they speak english or not. That person will cost money as well, unless you're willing to give up 70% of your own time to integrate, test, debug etc. the code you're getting from them. -Losing control! What you don't make, you cannot control easily..i.e.: you can check the code itself, but not how it was manufactured, or what kind of design decisions were made. I'm sure other /. will have better stories on why you should / should not do this..Basically, I'm just saying: don't make this complicated. If you need more manpower, try looking around in your own country first.
My 2 cents..
While I havent done it myself, I worked with others that have, and seen success and catastrophe. Whatever you do, don't hire somebody who is going to hedge the truth about progress. Ive seen projects completely cave in when the found out that their oversees components were months behind schedule, but the managers lied and said everything was going great. Remember they may not have the same American get-it-done attitude you have.
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.
My company has hired "off-shore" programmers, however we have always brought them in. You tend to get a really good rate even bringing them in (much cheaper than typical $200/hr consultants.. I think we pay around $40-80/hr for the off-shore ones), and I would wager that you would more than make up for it in the problems that would arise doing off-shore. The other thing with bringing them to where you are is, they tend to be more willing to work (what else are they going to do, hang out in the hotel?).
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.
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:
Question, who's time zone do you schedule your meetings on?
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.
Deep pockets, but only if it is to hire someone in another country.
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,
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?
Bowie J. Poag
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.
Sailing over the event horizon
Connectivity there sucks. Connections can be down for many days at a time and no one there thinks anything strange is going on. Getting any kind of response from the local phone companies can be nightmarish at best. And assuming you partner is large, and they have a dedicated line to the US, then be prepared for a VERY small slice of the bandwidth pie. We're talking 14.4k equivalent.
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.
Sig? What sig? Do I have to have a sig!?!?
As an unemployed American programmer (with CS degree in hand), who is desperately trying to land anything from a small time contract work to entry level full-time work, I'd like to send a big "Fuck You" to your company.
Enjoy!
Can't wait to see how far this get's modded down!!
Check out my podcast: DreamStation.cc Video Game Show
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
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?
So, we've done this with off-shore contractors. The tips I have are...
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.
I will happily entertain any employment offer. There's a certain number below which I can't go, obviously, because I have to make mortgage payments and put food in my fridge. But I won't send you a shitty resume and then demand $100,000 a year.
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!
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. 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 or The Wall Street Journal) 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, 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:
..but I can bet money that the "fat" that got trimmed from your department would be quite incensed to learn the company just turned around and outsourced their jobs a few months later, probably paying out more money in the long run than it would have cost to keep full time employees.
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.
Send me a check for $1195.00
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.
I'll concede that when US companies pay workers who live and work in another country lower wages than a worker who live in the US, it could be a beneficial situation for both. The worker (hopefully) is getting a higher paycheck than he could get from a local employer and the US company saves on labor.
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.
When violence rules the world outside / And the headlines make me want to cry / It's not the time to just keep quiet
...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.
Canada has highly talented and educated programmers. Many of them, like myself, back from stints in the Bay area.
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.
- Tune in next time for.. a clever sig.
In my experience, I have never, ever seen the "farm it out to cheap foreign programmers" dream work. When the code comes back it's worthless. Programmers that far from the project, with no emotional, financial, or professional involvement, have no reason to write quality code. They have every reason to churn out code which barely conforms to the specs. And if the specs are faulty at all, you're screwed.
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.
I used to work for a company that has offices in India. As a project manager and QA manager, I can assure you that it can be tough. If you're going to hire off shore, don't do contractors, hire a company. That's the only way you'll have accountability. They're like used car salesman, though. You'll want 5 basic developers and they'll try to sell you 5 here, 5 there, and a PM. Stick to your guns. They need the business either way.
"Don't rely on email for your communications. Use IM from your home PC to stay in touch during the evenings."
:)
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.
I run a online game development business (www.murpe.com) where most of my development and support team are found all around the world (England, India, Russia, Japan), so we had to look at a common place for having meetings and discussions. There are times my adminitrative staff cannot connect to our online games (due to firewall restricts on telnet), so using web interfaces was an option we considered.
Since we are primary an linux-run development business, we found that using phpBB's (www.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 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
Artificial intelligence is no match for natural stupidity.
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?
If you use Linux, please help development of Autopac
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.
If you use Linux, please help development of Autopac
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.
I used to do PC Anywhere support connecting to a PC in South Africa from North America. Man! that connection was sloooooooow. Very early in the morning it was pretty bad, but once the east coast US woke up, it was unusable. Don't know if internet to India is any better, but even talking on the phone was a chore. There was such a long delay between the time you stop talking and it message gets received, then they respond, but you already said "Are you there?"
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.
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.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
I think you misunderstood his "deep pockets." He can hire 4 programmers overseas for 6 months. That's the equivalent of 1 floating license for a Rational product. Also, I don't know if you've used Rational tools much. Hiring a fresh college grad or unemployed programmer on the cheap to work on a product will probably give you a better return on your investment than a rational tool. The cost difference between Rational tools and alternatives is staggering. My company bought 3 Floating licenses to Rational Enterprise Studio (or whatever the heck it was called) before realizing that it just wasn't worth it (we still use Rose on occasion).
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.
Network Security: It always comes down to a big guy with a gun.
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.
Having done several of these, as your first project, with deep pockets and a compressed do date, you are going to have problems. Major, miss the date, lose your job type problems if you attempt to remote source it.
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.
Why go all the way to India when you could move to Toronto or Vancouver and take advantage of the Government of Canada's "scientific and experimental development" tax credit program (see Revenue Canada's SR&ED website for more info). For every dollar you put in, you could get forty cents or more back... with respect to your project, this might mean an extra coder for free.
-Duke
#1 - send the person who is telling you to sub-contract in India TO India. :-)
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?
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, Danger!! [robot swings his arms in terror]
room101 -- how much can you stand before they break you?
(they always break you eventually)
There are a lot of serious issues to consider, but you're not going to get much in the way of answers on slashdot.
(Outsourcing to a team of 3 in India) for 4 years now. The answer is simple -- spend much time getting the technical and functional documentation together!!! Main problem: In order to have the kind of documentation it takes to make it smooth and productive -- the time involved from your team in the US to prepare the kind of detailed details -- (in a lot of cases) you could have spent that time doing the actual programming....because the design, specs, examples, revisions, etc, etc....usually are akin to the end product minus the time it takes to type the code in.
P.S. -- make sure they have a fast connection direct into your network.
(+1 Funny) only if I laugh out loud.
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??
Internet Time is your friend.
It's tough enough to get two native English speakers sitting across a desk to understand technical requirements: try it with non--native English speakers halfway around the world. From my experience the best advice one could have in your situation is, never assume that they understood what you meant, or that you understand them. To make this work you have to make the term "overcommunicate" into a reason for existance. Good luck!
- spec your work as detailed as possible. That includes GUI look, feel, nav, etc. If you don't do this, you force your offshore friends to get creative - and you definitely do not want this. It's amazing how much cultural influence you get in a GUI design....
- this goes double if the work is OO-based! OO development is by nature a collaborative effort, so we tend not to spec the details. This doesn't work when the team is somewhere else. Believe me.
- establish up-front how software testing will be done. In my experience, unit testing is about as far as you want to go before they hand it over for system and acceptance testing. Otherwise, you end up with a big heasdaches (security, connectivity, etc.) connecting these folks to your internal development infrastructure.
- bring a few of your offshore friends in-house to get a feel for the people and approach your IT shops uses. This is really key to building trust and context for future endeavours.
- Only outsource what you know. Don't ask your offshore friends to develop stuff with which your company has no real experience. It will be a disaster for all involved. Trust me.
Guess that's it. Good luck.CrazyLegs
"Pork!!" said the Fish, and we all laughed.
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.
The speaking english is a big part, kind of hard to communicate without a common language.
Hey Dumbass, the Indian programmers do speak English.
Technology has become a primary asset in your organization, and software is at the core. Those who leverage software to respond to rapidly changing market demands will thrive, while those who don't may perish. SourceForge Enterprise Edition provides the flexibility and clarity needed in this day and age of Enterprise Application Integration (EAI) and co-development with strategic partners.
SourceForge facilitates agile software development, which in turn promotes creative collaboration and brings cross-team development projects to fruition, faster. The cost of software is based on developer efficiencies; therefore, reducing the time it takes to complete a project is key.
Managers and developers waste valuable time in meetings and teleconferences to coordinate their development activities. SourceForge addresses this issue by automating the collection of data and centralizing communication. With SourceForge, it's easier for developers to hand-off code to other team members, while managers have the necessary tools to make proactive decisions.
SourceForge provides the edge you need to stay two steps ahead. You will gain a more comprehensive and accurate vantagepoint of all cross-enterprise activities. With enhanced clarity, your organization has the ability to produce quality software in an efficient manner, while reducing excessive administrative overhead, unnecessary spending and duplicated efforts.
SourceForge is the leading collaborative software development (CSD) platform used by more than 400,000 developers worldwide.
VA Software provides SourceForge as an enterprise software product that integrates the essential tools for building applications. SourceForge enables companies to develop better software faster by bringing together the critical information and resources they need to collaborate more effectively across different locations, teams and participants.
By integrating tools for software developers, development managers and executives, SourceForge helps companies become more responsive -- and better leverage existing resources -- while reducing costs.
Learn how SourceForge and CSD are transforming innovation in the enterprise.
VA Software's flagship product, SourceForge Enterprise Edition, provides IT and engineering organizations with web-based tools that enable developers to collaborate, managers to monitor projects, and executives to obtain critical information on demand. Designed for installation behind customer's firewalls, SourceForge has the capacity to support development teams from 30 to upwards of 20,000 users across different locations, groups and participants. By enabling collaborative software development, SourceForge Enterprise Edition helps organizations become more responsive -- and better leverage existing resources -- while reducing costs.
No, Thursday's out. How about never - is never good for you?
I am an experienced software deveoper that is fairly competant in what I do. I am presently living in Southern California, but i am willing to relocate to most places (especially moving back to the San Francisco Bay Area). A full resume can be found at http://xcf.berkeley.edu/~nordwick/resume.pdf or you can just go the homepage to find other formats.
Yes! I am using my +1 bonus, because I need a job badly.
"rule 1: understand the foreign culture"
Which in the case of India means Tiger Penis Soup and forehead dots!!!
When you can't call the developers except at 1 AM, and when they don't have an intuitive understanding of the the cultural situation in which the product will be used, you've got a difficult time. If you add to that developers who do not feel personally responsible for producing quality software [and developers like this exist in ALL countries], it's very difficult to make any progress at all. You probably have techniques for dealing with uninspired programmers working in the same office, but you should realize that when they are working 11 timezones away you will have very little leverage.
later,
Jess
I am programmed for etiquette, not destruction!
And your point is?
That the other guys statement was dead wrong, and is an exemplar of the sort of thing witnessed in this discussion.
Since when did speaking english meant two people can automatically understand each other? When did communication become so easy and trouble free?
I made no such argument. Your argument here is bogus-- you try to restyle the other guys comment into something semi-coherent, and then pre-emptively rebut straw-men based on the bogus assumption that I'll blindly oppose out at your refined version.
Communication is more than just a written language, well unless it's coming from your mouth of course.
Cheap invective is not victory.
Start with a really good CVS (Check-out check-in.)
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."
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
I work for the state. It's a lot of work but state workers get a LOT of time off. I generally accumulate more leave than I can use. I'm looking at 4 weeks of unused leave this year.
Instead of going off-site, try and recruit currently working programmers to chew up their leave at YOUR office. You generally only need warm bodies in copious amounts at certain phases of the cycle. You can hire three or four warm bodies to hammer code for 60-70 hours a week for a few weeks and complete much of the base code. Your in-house staff should be able to do the rest.
If you aren't part of the solution, there is good money to be made prolonging the problem
If you just hand off the programming work to a team overseas (especially in India), be prepared to have it utterly fail. I've seen it happen time after time after time...
Your only chance is if you have key company personnel overseas managing things every step of the way. You've got to have a very good manager there making sure that *your* priorities are being adhered to.
Overall, I'd say to be extraordinarily careful before undertaking offshore development.
Why are you letting these clowns ruin our country?
A problem with managing remote programmers is that it can be hard to quantify our work. This is where I suggest weekly reports. I know most everyone hates to do something like that, but they are useful for both the employer and the programmer. A weekly report due friday allows the programmer to quantify their work for the week, explain programmatic issues and provide a refresher for them monday morning when they resume work. As a team building exercise, it can be useful to read each others reports when you run into a problem because someone may have already ran into it. I may be working on server code and am having a problem with UDP packets and someone else may have an insight that would help me.
For the employer, it helps you understand exactly where each programmer is at in the project. If a junior programmer seems to be hung up on the same problem for a couple weeks, you might have another programmer temporarily help him resolve it or move him/her onto a different task. Since you can't physically be there to check on progress, this is the next best thing. If it gets to the point where you have a performance review, there is a lot of existing documentation available for you to review.
We do our weekly reports in HTML so it can be viewed from any machine with a browser. As someone who hops back and forth between Unix and Win32 environments, I prefer HTML over the dreaded Word Document. Bleh. The hyperlink ability is nice because it can refer to earlier reports.
Regarding HTML weekly reports, I'd suggest making a password protected website available to all team members that contains the weekly report archive as well as a couple discussion boards. You can have general team announcements and have general product discussions. I believe a board would probably be better since you'll probably have team members in different timezones. The discussions can also serve as a knowledge repository. If, 7 months down the road, you wonder why one of the developed programs uses TCP instead of UDP you might find the answer several months ago in a discussion about that very subject. At my previous job, Terra Lycos, occassionaly someone on the team would wonder why we did something a certain way. Often the answer was that it wasn't feasible when we first implimented the technology. Or we didn't have the hardware. Or we didn't have the staff. Etc. Project histories (especially searchable ones) are damn useful.
Thats my 2 cents worth... I hope it helps. :)
Michael
In California, the average house price is about $350K. In the Bay Area, the average house price is more like $450K. Maybe it's time to move to Mexico..
cpeterso
I wonder how many whining techies here that are loudly proclaiming "Hire American!" also dribble disdain about MS anti-competive practices and attempts to manipulate the market?
A global and free market place is the way of the future. You will need to learn how be competive on a global scale and not try to place artifical barriers to "protect your market".
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 !!
Detailed design docs, GUI prototypes, communitation are all very important.
However, check the quality of the company.
1.) Look for a company that is owned by an Indian who lives in the US. This will save you a lot of problems as a company owned by an Indian-American is more likely to have already addressed many of the cultural, not to mention technical, issues. Plus you want an Indian-American owner because they can better explain to you what to expect from the Indian business culture, some of which is actually better once you know what to ask for.
This is important because you don't want to spend your time and money teaching another company how business in done in America.
2.) Ask the company to provide you a written list of what documents and work products you can expect from them. This will cost you, but it will save you lots in the long-run. Every company claims to have process, but if you hold them to delivering an SRS document (etc.) before coding then you will quickly get a real feel for whether or not they use a formal development process.
3.) Ask about their facilities.
Find out if they own or rent the building. Companies that own have better financial backing and are more stable (usually).
Also, are they connected with a local University (this can save you lots of money and time for mundane programming tasks!). Affiliated companies can also hire more quickly should your requirements rapidly change. Also, they'll be more flexible with regards to a sudden and short-term need for additional staff.
Also ask about their Internet connection if you will be transfering large files. Everyone will tell you they have broadband, but you should test this by sending several large files (40MB) over a period of several days. Also, put instructions for downloading the second day's file in the first.
---
And Finally:
All in all, I would highly recommend checking out the company and not just they technical capabilities.
Also, don't listen to all the negative people who say that Indian programmers are not good. If they are not good, then how did they develop a multi-billion dollar software export industry (which happens to be the world's largest supplier of software services to the good 'ol US of A).
As an owner of a trans-atlantic software development firm, I wish you the best of luck. Plus, on the off chance that you get a lemon with your first attempt at hiring offshore, don't give up, just analyze what caused the problems and fix them.
Thanks,
Akbar
President, COO
America Technologica, Inc.
We (my partner and I) have 20 programmers that work for our very own foreign-owned company in Vietnam.
:-)
Our guys are *good*. They're smart, constantly learning new things and are quite dedicated. At need, they willingly work late hours for special projects and accelerated deadlines.
But one thing that makes our projects work so well is that we think of it (as another poster said) as a **long** commute. One of us is there for about two weeks every month. Houston to Saigon averages about $1000-1100 per flight. It is a *required* business expense for us.
And it's a two-way commute: we're very anxious to get individual staff members over here as soon as we can (lots of visa problems thus far). Not only do we want to get them property indoctrinated with US business practices (!) but we want to show them that a Houston summer is at *least* as unpleasant as one in Saigon.
That's entirely true: practically everybody I talk to about a prospective project asks me who we've done work for. Nobody ever asks who we have worked for twice. But that's a very important metric: how many clients have given you another project after you delivered the first one? How many clients have given you a fifth, or a sixth, or a twelfth?
In the case of this thread, the original poster is stuck with a contract shop--he thinks his options are an outsourcing company in India. My point was to emphasize that unless his project is huge, he's a lot better off looking for outsourcing help closer to home. One option is to hire a firm like us (and nobody has ever suggested that our code was anything less than spectacular, I might add); another is to hire a Canadian firm. Any way he approaches this problem, his employers have decided they're going to outsource the project.
Depending upon the project and the consultant, you may not have to have a lot of in-house support for a project. One of our clients is a major industrial gas company--we've done a bunch of work for them over the years. Some of those projects have been turned over to in-house staff; others, generally smaller projects, have a corner of somebody's desk, but if the app needs tweaking they'll toss us a couple of bucks to make the changes. We're sufficiently tuned into the client's release procedures that we look like just another development team at roll-out.
Other consultants have different views--and perhaps they make more money than we do. My view on consulting is that I want a continuing relationship with a client, doing new and interesting stuff. I do not want to spend my career fixing bugs and writing tweaks for ancient projects on out-of-date platforms. The way to get to do that is to be the guy the client thinks of when they're talking about methodology, be it "software engineering" or something else.
What a bunch of FUD!
It is also risky since India is a third world country
Software developers in India have as much access to the latest technology when it comes to computing as any developer in the US would. I don't see how India being a third world country in any way negatively affects the expected output. On the contrary, lower costs means you will get more bang for your buck.
and its neighbor is about to launch a nuke at it.
Pakistan is no more likely to launch a nuke on India than Cuba is to launch one on the US or than someone is likely to fly another plane into a major US landmark. For all the posturing that occurs, the last time Pakistan and India were at war was over 30 years ago. War hysteria is something politicians stir up to distract from local issues and rarely result in much action.
The rest of your arguments are valid but the xenophobe in you sticks out when you make blunt statements like above.
Mmmm.. Donuts
" Does the company have more of a duty to its American workers or its American shareholders?"
Neither, or more accurately, both. It should have a duty to America itself that supercedes them both. Get it?
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
don't do it, it will be a total clusterfuck. Unless you like daily conference calls at 11:30pm.
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
Listen to 570KVI - there's a guy running ads for web sites developed under $1000. His team is in Asia, so he can pass on the savings to you!
I'm sure all you out of work HTML coders appreciate this.
--- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
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.
Your nationalist views are stupid and short-sighted, IMHO.
"I love my job, but I hate talking to people like you" (Freddie Mercury)
A cardinal rule of software development: "Adding more developers partway through makes what would otherwise be a late project even later." See The Mythical Man Month for a full, well-thought-out explanation as to why.
Tastes like burning! - Ralph Wiggum
Who matters more? They're both Americans.
No, the high level investors are suits/beancounters and therefore except from all rights privileges and sympathies that are given to humans / lower forms of life.
I have more care for a stray dog then I do for some damn rich investor who doesn't give a f*ck about science or technology and instead just worships the almighty buck.
Fuck'em, quality is what counts, not just the bottom line.
---- is having a very bad experience with tech-support that was outsourced to India.
Need help treating your acne? Come here!
That said I have also heard that Bulgaria has very good and very inexpensive people.. but yet again I have never seen this team used for the most important, time sensitive things. An Indian team might be appropriate for a lot of work that doesn't need brains to build or test, has no hard deadline, and has an extra person or two on your side to manage them. This is DEFINITELY not a solution for a 4 or 5 man project. BIG MISTAKE!
If you really want to go offshore, call me. I am a highly experienced American in Tokyo. I'd try to be competitive of course but I'll be straight forward. It is not going to seem cheap but it will save you a ton of money. I understand engineering and have also used documentation, face-to-face, and telephone meetings to solve problems that developed in large projects that involved many offices around the world. For example I was hired to solve problems in a project that included a U.S. corporation, their U.S. developer, the Australian branch and their developer, ditto for Japan and cases of where things were going wrong in Australia, China, and Germany. Obviously the problem was with the parent organization and in the end, the Japan side decided the solution was to tell them to go to hell. You need someone like me, preferably based in the U.S. if you can find him or her, who has seen the same problems over and over again. Get your boss to give that person some control over the project and fire teams quickly that don't act professionally.
I think your company has made a mistake though. It's not like you can't find good developers in the U.S. who need work. Maybe if you and the remaining programmer threaten to quit your boss might get a glimmer of understanding. It's not like you would be spending your time doing anything constructive if you get into this mess. Look for a new job!
One thing I suppose I or someone like me could do would be to coordinate development while standing between the two timezones. I just have experience in it because there are a lot of Indian programmers here and I work with lots of Americans and Canadians. But best for you to get a consultant in the U.S. who can come in from the outside and tell your boss the same thing.
If you absolutely must use a given Indian team, prepare for spending lots of money on phone calls, hotel stays (at least one person, one month), trips of a 5 person team, lost deadlines, extra documentation to make sure everything stays on track, and an extra budget for a wig since you're going to pull out all that hair. If this thread doesn't convince you and your boss, you both deserve all the trouble you get.
The guys were talking about trying to find a Chinese team (China to Japan is like India to the U.S.) that could do it. When someone is sitting in front of them who has the experience, the time, and is willing to meet the budget. If you have a hardware factory China or better yet Taiwan is great. But NOT for an important smallish project. You'd be better off outsourcing the thing to a small shop in your neighborhood.
If your calculations are right, the total cost of a Chinese programmer is even lower than that of Indians. This fits with the view I've heard from some other big companies discussing outsourcing; India is getting too expensive.
Plus in China, with so many foreigners here chasing "the wild-wild east gold rush" you have excellent native-speaking systems analysts, project managers, even designers on the ground!
I've worked with Indian teams as well, and here are my experiences:
Language barrier
Over the phone it takes quite some effort to understand what they are saying; if you're used to the Indian English accent, ignore this.
Crap requirements management
Even companies claiming to be CMM Level 5 didn't manage requirements; they just casually talked about them over the phone. This seriously destroyed my faith in CMM Level 5 as a useful quality measure. Note that I'm not claiming most Chinese companies will be better, just questioning value of CMM.
Poor user interface design
Here I agree with the previuos poster: outsourced to Indian software development companies, the user interface will be everything but user friendly and obvious. One company that had the user-interface for their website developed in India had to offer 2 day training programs to teach people how to use the site! Talk about self-evident design! Let professionals designers do it. In China you can find plenty of US and English designers, at a very reasonable cost; they're here for the experience, not the money.
I'd be glad to forward requests to software development companies in China.
I work in India doing offshore work. Keep these things in mind
1. Document and explain (by phone) the architecture and design well to the team
2. Identify one technical or team leader who will manage and give them clear deliverables. Do not treat them as if they are in the same room as you. Break your design into components/subsystems with clearly defined interfaces and give them one/many of those sub systems
3. Ask them to estimate their work and plan their work. Review the estimate and plan. Manage the sub project instead of trying to manage tasks. Challenge the team and give them autonomy instead of trying to micro manage. These are smart people.
4. Clearly lay down coding standards you will follow, checklists for code review and unit testing strategy
5. You can use a common repository but lay down the rules about checkin quantums, build procedures and integration points.
6. Talk to the team everyday for 10 minutes to get a sense of where they are at.
7. Review the code everyday. This gives you a sense of the actual progress, code quality and helps address issues up front.
I am telling you these things since I see developers in the US trying all the time to micromanage the team out here since they cannot see them and they feel very lost without "visibility". This leads to over management and lack of control.
O this learning! What a thing it is - William Shakespeare
The american legal system would be calm down a lot by the simple adoption of a rule, the loser in a lawsuit generally (with limited exceptions) pays the lawyer fees of the winner.
All of a sudden, medical care gets about 50% cheaper (unless you have a doctor in the household, you have no idea how much defensive medicine inflates costs), people stop using lawsuits as revenge tactics and political weapons, and the contingency fee crapshoot goes out of fashion. Even with this insane system, we've got the #1 economy in the world (and extending our lead), if we had a decent loser pays rule, nobody would even come close.
Both the US and USSR (Now Russia) have sophisticated systems that keep nuclear missiles from being launched by accident or merely go off in their silos. When Pakistan and India get their nuclear weapons to an equivalent level of engineering safety, the equivalence argument *might* be worth having.
Until then....
So start your own firm, run it your own way, hire the best talent (who will be fighting to get into your haven instead of working for 'shitty working conditions') and you will find your company's work ethic imitated by all the MBA clueless as the next hot management style.
Oh, you don't want to do that? Well, 'shitty working conditions' it is for you!
One reason to outsource programming jobs is that it does a hell of a lot more to better their country than foreign aid does and it certainly is going to provide more good will and a reduction in the number of people who want to kill us while raising the number of people pressuring their government to stand with us the next time some pissant nihilists with a death wish decide to make a 'statement' written in the blood of thousands US citizens.
i've been worthless, and hardworking. but yes, it depends on my mananger, the work given to me, and how i am treated. but doesn't that seem like common sense?
-Jon
this is my sig.
If you even hesitate to make a call to your working companions, how do you figure they will work with you? You'd better take that flight not and get to know them now...
Actually you are wrong, the top 1 percent holds about 90-95 percent of all the capital in the US.
Bill gates. Warren Buffet. Larry Ellison.
IF you combine all their money you get trillions of dollars.
Ok, so please tell me, how giving these guys tax breaks, and giving them cheaper labor could possibly help a working class citizen like myself?
Bill gates wont use the money to innovate, he'll put it in the bank with the rest of the 40 billion already there.
All of these top 1% will use the money to buy themselves a new set of cars, maybe even a new mansion.
Thats bullshit, I say tax them so a person whos living on the streets can be helped, or so we can solve the teen pregnancy situation and help girls so they dont have abortions.
The money can be used so some guy whoso already rich can buy a new mansion and brag about his money, or the money can be used to help the majority.
What I cant figure out is why anyone whos poor would want to put the majority of the money into the hands of the few instead of into the hands of the many.
So ok, lets say globalism puts money into the hands of the many, IF it does, shouldnt the many have the same rights we do? Which means they should get the same wage as us, and their talent will be the deciding factor, not their price.
I dont believe in corporate welfare, tax breaks which help them, just makes bill gates and Microsoft richer.
You'll say it creates jobs, but putting more money into the system doesnt always create jobs for US.
You say indians should ask for more? Hah! They arent in the position to ask for more money, they dont have a union, they dont have a WAY to ask for more.
I just think its wrong to exploit these people, while at the same time taking money away from us.
The Global Economy Idea just wont work, we arent ready for it and we wont be ready for it until all the other countries have a democracy, a decent economy with their own businesses to compete with ours, and a good education system.
If their countries dont have this, they'll end up being slaves. And American workers will lose their jobs to the slaves.
Its slavery all over again, Corporate slavery, but no one sees it!
If you use Linux, please help development of Autopac
This is already in effect in a lot of places and doesn't work.
So, Let's say Microsoft sues you. You have $20,000 in the bank, you take another loan, you can set up a slush fund of say $50,000 to cover your legal bills. MS have 10 - 20 times that. They can afford a bigger legal team. If they lose, they've to pay $50,000. Shucks. On the other hand, if you lose (already weighted against you seeing as they have more and possibly better lawyers) you have a potential bill of $500K - $1M.
All other things being equal, which they aren't, the big fish will always win. That's why the BSA is so successful - they threaten legal action on the small fry from the big fry. Small fry don't want to get involved in potentially astronomic legal bills, so they cough up.
jer
We may be human, but we're still animals
- Steve Vai