- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
I'm an "overseas programmer" (overseas to some, at least) and I've been many times underbidden by some or other "more overseas" programmers. I can't but laugh in my inside when I see what those "tenth of the cost" guys do. It's been several times already I've seen the WTF-ish results you get for that price.
As for the client, I too say scr*w them. If they don't put value on working software, let them play with crap. Don't even waste your time considering their projects.
Admin
I would rather:
Logger.Print(new StackTrace().GetFrame(0).GetMethod().Name);
Admin
Its interesting. I currently work for a western company that operates in China. Western management styles and chinese programmers. Some of the code comming out of them is really first rate. I guess it depends on the style. We tend to hire very good chinese programmers who can speak some english. The idea is that we can reduce costs signifacantly because a chinese developer commands a smaller salary in relation to someone from america after exchange rates. Because of this rather then charge $150 an hour we can reduce it to perhaps $75. The developers arent any less talented, just that english is a second language to them.
Admittedly the biggest issue we have is the language barrier, which is why I am here. I serve as a communication link between clients and the team leaders/project managers.
Frankly I dont think that blaming things on overseas developers is the problem. You get what you pay for. A western team that charges one tenth of what a project should cost is going to be as bad as a chinese one doing the same thing.
Admin
classic!
Admin
Join the club. The IHOC club that is.
Admin
In the US there is frequently a culture of "hero programmers" -- PHB waves his hands, sends a few emails, and the heroic programmer infers the proper requirements (hopefully) and churns out the code. (These type of guys are both rare and expensive.)
Outsourcing has forced a lot of people into a culture of process. This is one of the great ironies of outsourcing: that it is teaching US companies how to better manage their requirements and overall software process. A number of Indian programmers I've met have been excellent at solving technical problems, but not so good at making the creative/intuitive leaps that (skilled) US programmers make. If you give them crappy requirements, you end up with crappy code.
Of course I've also met a few Indian programmers that have been wonderfully intuitive and creative...caveat generalization.
Admin
Assuming you weren't ironic... Changing the code to suit the IDE? Sounds like someone's confusing means with ends here...
Admin
That is, assuming they got the price they expected, which is, shall I say, rather optimistic. Things aren't all that cheap "overseas". It's a myth.
Admin
That is not string addition, it is Java for string concatenation.
Admin
were is overseas anyway? I live in Europe. I was born in Australia - now that's gotta be overseas to most people, but to me, right now, I am overseas myself! i should try outsourcing my work to myself and see how much money i can save. :-)
Admin
100K ist really not much in the real world of IT. You can pay one programmer for one and a half year for that amount of money, but then there is not much left for the salesman, the analyst, the boss, the secretary, the cleaning woman, the office rent, the few servers and the license costs of the operating system, the database, the middleware and all that stuff.
And how much can a single programmer create in one and a half year? Depending on who does the estimate, it's 15000-30000 lines of code. Not much for real-world application.
Admin
I think that finally they will get the system at the original price that Timothy suggested because, as many quoted before, you get what you pay for. This is going to be true even if they only pay to the overseas contractor half of "Timothy's price". Why? because of the delay, when a company needs a software that will cost >100.000$ they do it in order to save 8-10 K$ a month, so if the project is delayed they are loosing "save-money" so the end cost can be equal or greather than the original offer.
PS: Everyone knows that current compilers increase the speed of compiled code by 1% each time they encounter the word "Enterpise" in code, and 2% if it's complete UPPERCASE.
Admin
The cleaning women aren't a factor around here since I just give them The Business (wink, wink) and they accept that as payment. That's right - man-whoring in style with chambermaids. Saavy?
sincerely,
Richard Nixon
Admin
Damn... that's how you do it... always 100 USD cheaper than the competition...
Admin
Really? - I do hope that the refactoring features of your IDE deal with renaming the class/method references in your logging messages or you're definitely going to fall foul of the adage...
"The only thing worse than no information is bad information!"
This is, of course, assuming that you do refactoring at any point.
If you are using Java and log4j, for example, you can get the class/method name included in the output automatically (Although there is a performance hit for the method name output)
On a more general note, many people just don't get the difference between 'cheap' and 'inexpensive' - and thet're usually the people who 'know the cost of everything and the value of nothing'
Bob
Admin
Admin
Did he remember the 50% stupidity tax requist on quotes like this?
Sometimes you just have to charge more for less.
Admin
We actually have a team in Australia, and we used to have a team in Spain. The team in Spain obviously caused some language difficulties, but there were other issues, and we're having the same issues with the Australian team (obviously not the language issue).
One issue with the Aussies is the time difference. Doing anything with them takes so long because when we're at work, they're asleep. Often we have to wait until the next day to see a reply to our emails, whereas with people here in the UK we get them a lot sooner (or we just phone them or walk up to them and talk to them and get an answer immediately).
Another issue is that the remote teams is that we can't always just go and see what they're doing. The Spanish people did things that, had they been in the UK office, would have been caught earlier. They refused to comply with our development practices, causing no end of problems and forcing me to redesign the installation to prevent their WTFs as much as I could, and threaten them with removing their apps from the installation (meaning they would have produced nothing useful). I think this is partly because they felt a certain sense of impunity being in a completely different country to the project managers.
The remote teams were also created from existing teams at companies we bought out. Those companies obviously had their own way of doing things, and they had trouble adapting to our practices. We've had this issue with both the remote teams we've worked with.
It's not that anyone who works from abroad is a bad developer - far from it - it's that the very nature of remote teams causes a set of issues that we don't have a perfect way of solving.
Admin
=============
One issue with the Aussies is the time difference. Doing anything with them takes so long because when we're at work, they're asleep. Often we have to wait until the next day to see a reply to our emails, whereas with people here in the UK we get them a lot sooner (or we just phone them or walk up to them and talk to them and get an answer immediately).
==============
You're on the wrong side of the dateline. We always get our answers yesterday.
Admin
90% of the time, the quality just plain sucks
This is also true of American coders. Most programmers are not very good, period. This seems to be because the barrier to entry is low (get hired --- there is no licensing, no educational requirements at most companies, etc), and despite the "at will" employment, companies don't fire the bad ones fast enough.
(I'm not saying you have to have a degree to be a good programmer, but the fact that there are no standard qualifications means its much easier to get a position one has no ability at (also the fault of bad/rushed screening/interviews). I'd imagine, but I can't prove, that you see fewer bad civil engineers, or mechanical engineers, since they tend to have much stronger base requirements).
Throw in the fact that most US companies probably don't know what to look for in overseas programmers, and you may get a higher rate there --- but the rate is way too high in the US as it is.
Admin
Truer words were never spoken. Being a beginner programmer myself, I can't help but be amazed by the quality (or lack thereof) of programming I see from most people, people who get paid fairly decent sums of money for their crap. I guess I was somewhat naive in the beginning, believing most people doing this as a profession would actually have some idea what they were doing.
At the end of the day though, it just comes down to the client being clueless most of the time. Ultimately they don't care how good the code the programmer produces is, because they don't really know any better. Then, a few months down the track it's people like me who get to go in and clean up their messes and explain to the client why something as simple as changing the layout on some of their php pages took as long as it did because their previous programmer didn't have the slightest grasp of modularity with the closest thing to a function that they used being an include of a header file.
Admin
You do realize that a proper logger will print all that for you right?
Admin
I once met a guy who had a degree in "software engineering" from an advanced technical college and could not program at all. My experience with self-taught programmers is not that they are unable to write programs - they hardly get hired if they can't code - but they have a strong tendency to reinvent wheels and they often do not know the more abstract methods of software development, like requirement analyisis, modelling etc.
Admin
(I'm not saying you have to have a degree to be a good programmer, but the fact that there are no standard qualifications means its much easier to get a position one has no ability at (also the fault of bad/rushed screening/interviews). I'd imagine, but I can't prove, that you see fewer bad civil engineers, or mechanical engineers, since they tend to have much stronger base requirements).</>
Programmers generally are not repeating stuff. If you need to repeat yourself, you put the code behind a suitable interface and call that. Most other engineering disciplines repeat themselves all the time. This puts programmers in the same category as artists or writers. However, the disciplinary requirements for exactness and accuracy put programmers in the same category as engineers.
This is why software is hard.
Admin
The client wasn't overstock.com, was it?
Admin
It's true that PHB-type managers tend to vastly underestimate the problem potential of offshoring software development, but many people here are asserting that it plain doesn't work, and that is foolish as well. The difference in salaries and buying power is really big enough and there are ways to do it smart that overall, even including the unmitaged distasters, it averages out to a savings of about 20% (in a study I saw somewhere). Now that's far from the "less than 1/10th" fairy tales, but still a lot and something that "non-overseas" developers.have reason to worry about rather than putting their head in the sand.
Admin
...isn't such an unknown... WTF? It's a known. English is one of the two official languages, and it's the main one.
The three differences between New Zealand and the United States?
* When we have a world sporting event, we invite other countries
* We do speak English
* When we meet our head of state, we only go down on one knee
Admin
Just a quck note on the overseas debate that is ranging a few posts above.
Absolutely there are gross generalizations when talking about overseas programmers. I am certain there are solid overseas programmers. But overall, I"m not too concerned about losing my job to them, and here's why.
First, even in the U.S., there are LOTS of charlatans--people and companies who claim great software development skills but have none. So as the story illustrates, even though there is a lot of perceived competition, much of that competition will fail miserably and lose the client unless the client is completely unreasonable as in the story above. In which case, I don't want that client. Charlatans overseas are going to be harder to recognize and avoid and so that is probably part of the reason for all the stories of failure.
Second, most programmers suffer from one fatal flaw--communication. We all know the programmers that are "hard core nerds" and there are LOTS of them in our industry. These guys are great with code and networks and servers but have no social skills, no tact and are poor communicators. I think I am a pretty good developer but more than that, I can communicate to non-technical people effectively and can interact with people without necessarily stepping on toes are acting like a "Napoleon Dynamite." This just as much as my technical skills has pushed me ahead of others in my career. I am far from a perfect communicator but I don't suffer as much as many others from the "Nerd factor."
When you take the overseas dynamics ADDED to the difficulty of communicating business needs to programmers, things get much hairier. Indian developers are just as likely to have a high factor of communication and social ineptness as the U.S. Tack on the language barrier, the cultural differences, time zone changes and just plain DISTANCE, and communication really suffers. I and my company are not comfortable with developers working from home here in the U.S. because face to face communication is best, period. Thats going to be even harder to manage when the developer is across the world. Or to put it another way, I'll quote what I told some overseas freelancers who wanted a job at my company but to work in their home country: "I can't even get many of my programmers in this office to commuinicate effectively with customers and business people. How am I going to get an overseas programmer to do so?"
There are exceptions and success stories with oveseas development, but the two reasons above give me SOME sense of security.
Fregas
Admin
There is one issue with outsourcing, be it off-shore or local: In most cases, the client pays per hour. Even if the price is fixed, they will come back and ask for more. That's part of the game.
They will not work as good and fast as possible, but just about as slowly as they can do without losing the contract. Since they only hurt themself (less hours=less money) if they work faster and better, where is their incentive to do so? Without strict control, things will cost more and take more time than expected. But how can you control people on the other side of the world?
I live in Austria, very close to Eastern Europe (Slovakia, Hungaria, Czechia less than 100 km away); and I've seen outsourcing projects go awry even at these short distances.
Admin
@Zuluman: LOL, +50 Funny. You made my day.
@Fregas: Agree completely. The issue isn't with coders outside the West, it's an issue with remote programming in general. A company based in India would have the same issues if they hired a team in the US or the UK
Admin
Just a quck note on the overseas debate that is ranging a few posts above.
Absolutely there are gross generalizations when talking about overseas programmers. I am certain there are solid overseas programmers. But overall, I"m not too concerned about losing my job to them, and here's why.
First, even in the U.S., there are LOTS of charlatans--people and companies who claim great software development skills but have none. So as the story illustrates, even though there is a lot of perceived competition, much of that competition will fail miserably and lose the client unless the client is completely unreasonable as in the story above. In which case, I don't want that client. Charlatans overseas are going to be harder to recognize and avoid and so that is probably part of the reason for all the stories of failure.
Second, programmers suffer from one fatal flaw--communication. We all know the programmers that are "hard core nerds" and there are LOTS of them in our industry. These guys are great with code and networks and servers but have no social skills, no tact and are poor communicators. I think I am a pretty good developer but more than that, I can communicate to non-technical people effectively and can interact with people without necessarily stepping on toes are acting like a "Napoleon Dynamite." This just as much as my technical skills has pushed me ahead of others in my career. I don't suffer as much as many others from the "Nerd factor."
When you take the overseas dynamics ADDED to the difficulty of communicating business needs to programmers, things get much hairier. Indian developers are just as likely to have a high factor of communication and social ineptness as the U.S. Tack on the language barrier, the cultural differences, time zone changes and just plain DISTANCE, and communication really suffers. I and my company are not comfortable with developers working from home because face to face communication is best, period. Thats going to be really hard to manage when the developer is across the world. Or to put it another way, I'll quote what I told some overseas freelancers who wanted a job at my company but to work in their home country: "I can't even get many of my programmers in this office to commuinicate effectively to customers and business people. How am I going to get an overseas programmer to do so?"
There are exceptions and success stories with oveseas development, but the two reasons above give me SOME sense of security.
Fregas
Admin
It's funny but the code imported to my office in Australia from our old office in the U.S.A is some of the worst code I have ever worked on. Now I don't think all American programmers are terrible just because I saw piles of bad code from people working there. Indeed my experience as a programmer so far has been that the majority of programmers no matter where they are, are not that good. when I have to interview candidates for positions, I am continually surprised by people with 10+ years experience who can answer the simplest questions or do the simplest of tasks. My theory is that there a still lots of bad programmers left from the good old days of the dot.com boom when you could get hired without even knowing what a compiler was.
Admin
* You're not all fat and have decent (as in smaller) sized meals
* You didn't declare war on terrorism and spent gazillions on it just to get the one asshole who started it all
* You do know that there are other countries in the world other than the U.S.
* You do care about other people outside of your own country
* You're not an idiot of a patriot hanging you flags out for every fart
* ... Need I continue? [8o|] Or should we just stop starting a war on our own here?
Needless to say that "the overseas" doesn't always have to be a bad thing (being from the Netherlands, one of the top IT countries in the world) and that the U.S. isn't all that great too. Live with it. Face the facts.
Admin
I've got an idea, let's use a programming forum to make cheap shots the entire population of a country we don't like.
Admin
This illustrates sozin's point very nicely. Communicating with the customers and business people is NOT the programmer's job, and not just because programmers are often bad at communication. In a proper software development process, you have division of labor, and talking to the customer / business people about requirements is the analyst's job.
It's great if you can do both jobs, but you still shouldn't, unless the project is so small that one or both are not fulltime jobs.
Admin
Admin
Yeah, I'm always surprised by that as well; it's so rare I get the chance to ask non-simple questions when interviewing.
Admin
And I thought only the US had a bad crack problem...
Admin
Since when did a site for having a little fun at programming devolve into a forum for having such massive diatribes against other people.
People its just a job, dont take it quite so seriously
Admin
When everybody would only use a programming forum to make any kind of "shots at the population of a country we don't like", the world would be a better place...
But on the topic. It may also be the case that these oversea projects fail more frequently because, as was pointed out before, the specs have to be formulated clear and understanable. But then something interesting takes place. The results are checked against the more finegrained specification and are found not to reach them. I would not be suprised when this was also the case for a lot of projects done by the "local boys", but it passes undetected because no such strict checking is done. So where exactly is the screw up?
Admin
But in this case, it wasn't right, it didn't turn out to be as cheap as advertised, and it sure wasn't done fast. So they scored 0 out of 3 with their "cheap" outsourcing!
You can choose any two if you have competent developers. Otherwise, you'll be lucky to get just one.
From what I've read about how Indian software development firms work, none of the people doing the actual development ever have more than one or two years of total experience. After they get more experience than that, they get promoted to management. So if you want your software project built by a team of rank beginners, by all means outsource it cheaply to India (assuming you're not in India already). But if you want it built by people who actually know what they're doing, you'll have to find a different method. Not that hiring local talent is necessarily an improvement, but at least it has the potential to be!
Admin
AmmoQ wrote: "once met a guy who had a degree in "software engineering" from an advanced technical college and could not program at all. My experience with self-taught programmers is not that they are unable to write programs - they hardly get hired if they can't code - but they have a strong tendency to reinvent wheels and they often do not know the more abstract methods of software development, like requirement analyisis, modelling etc."
I am primarily self-taught, although I do carry 60 credit-hours of a CIS major with a focus on software development. Most of the stuff I learn in those classes was java sucks, and that I knew more about software developlment than the instructors. I ended up working for the college while I was still taking classes. When I got into the Software Engineering class though, I was blown away by methodology. There are just some things you have NO expossure to when you are self-taught. Of all my college books, my Software Engineering book is one of the few I still keep.
Now, because I don't have a degree, only some credits, most companies turn their nose up at me for employment or I never hear from them, but ever person I ever met in college who was almost finished with their degree just didn't get the idea of programming for the real world. They had all these theoretical ideas in their heads pounded into them by the instructors, theories that have no place in a production software environment. Being Self-taught does have its advantages. Most of what you wrote to learn was written to serve some purpose--to work.
Making code that works, and making code that your instructors would aprove of, not always the same thing.
As for overseas, I've met a handful of programmers from India, and I would dare say for the equivalent levels of education and monetary exposure, they have the same percentage of good coders and bad coders as the rest of the world. For the most part, even if you have a BS and 10 years in the field does not make you a good coder. As the saying goes "Dazzle them with brilliance, or baffle them with bullshit, either way you you win."
(btw, wtf is up with this forum software)
Admin
Unfortunately, you are both right. In the past year I've hired a few programmers and the quality of the candidates made me want to weep in despair.
That said, my comment above was in the context of domestic programmers sucking. This means the offshore programmers had an even higher level of suckage.
One more note: by "overseas" or "offshore" I'm not referring to places like Neq Zealand or Europe, but to places where the rate is very low, like China, India and SE Asia.
Admin
I have no problem with fair competition. But when it comes to China, we in the West are being complete idiots. Why we allow "free" trade with a brutal communist dictatorship that manipulates its currency price to put its trade partners out of business is one of the true mysteries to me.
Admin
Your post is 100% dead-on. Whatever happened to working from home and telecommuting? Companies can't even outsource to your study at home a couple of days a week. They have trouble managing people that come in to the office every day. Why do they think they can outsource thousands of miles away to someone that communicates poorly and is on a completely different schedule? They very often can't. 20% savings (the number I've seen as well) is not much when you consider the long-term and the big picture. Most of the time, I doubt there's any savings at all if you factor in all of the costs. Off-shoring makese sense for a big software company that can invest in the management infrastructure required to make it work.
Admin
LOL, I have never heard of someone "commanding" a smaller salary. Way to make getting paid peanuts sound so empowering! *chuckle*
Admin
Interesting discussion.
I once worked for a consulting company (read that as domestic outsourcing) and our pricing was firm. Our contracts were written so there was a defined deployment date and a defined price. If we got in under the date we got a bonus, if we were late we started to pay the client in penalties. This model works for the good of both parties, but it was wholly up to us to make sure we had defned specifications. Any change would have to be priced and timed differently.
This allowed the client to get thier product for the price we quoted in the time the need it. No going back to ask for more money. This is the ultimate failure of outsourcing today, they don't hold themselves accountable. If they did, less of them would be successful. Of course if they did hold themselves accountable, and were successful, programmers here in the US would really have to start to worry.
CAPTCHA = paycheck (maybe I should start earning mine)
Admin
And next they'll realize just how much they can save in payroll by firing all the employees.
Admin
It's the "offshore" ones that you have to watch out for. They sit out there on massive derricks, cranking out shitty code by the ream. Then, when you want to track them down for support, they move the derrick. It's like the Black Fortress in Krull.
Admin
I think before attacking all different countries here on all sorts of issues, I'm just noting that this is a programming forum. However, besides that, the US is one of the most closed markets in the world so I don't really think the term 'free' trade quite applies. The US demands that all other economies open to free trade yet will not offer the same in return and exploits many developing countries along the way, but this isn't an economics forum...
As for the judgement of overseas developers, it's wrong to generalise. I'm technically a Singaporean citizen but grew up and trained in Sydney and then the US and I've worked in both Sydney and London and have been sent over to India to bring a company's codebase back in-house. Does this make me crap? or good? Can anyone tell?
I've seen bad quality code, everywhere from the US to London to India to Australia. Yes, I've seen outsourcing fail both domestically and internationally but it's wrong to generalise what nationality good developers are. Outsourcing generally fails because it is difficult to manage, wherever you're from.