Outsourcing Winners and Losers
An anonymous reader writes "The New York Times has an article on the winners and losers of the outsourcing trend. It's a Q and A session with a distinguished panel of experts on the topic, including Professor M. Eric Johnson, who says that, 'Low-skill jobs like coding are moving offshore and what's left in their place are more advanced project management jobs.' Now I know coders aren't rocket scientists, but less advanced than project managers? Ouch."
I have programmed. I am VERY bad at it. Sure I CAN code but I can't do it well. To find a quality programmer is not easy - I've tried. I wonder if this is why most software sucks ... because people think ANYBODY can do it.
...And when they came for me, there was no one left to speak out for me." - Martin Niemoeller (1892-1984)
New York Times reporters have been outsourced by 100 chimps with 100 laptops.
I strongly feel that programming is a creative process, and anyone that describes it as a low-end job, does noet knows what programming is. It's like out-sourcing art-painters to an other country and letting the important managers of the painting-creating process say inside, to send e-mails like: "Don't forget to use a lot of blue in the right corner, art-buyers like red."
-- (:> jms cs.vu.nl (_) --"---
My hospital uses Russian programmers. The entire job of OUR coders is to learn and debug the Russian code...
Talking to them it seems that the majority of their time is really spent rewriting the code in a more readable, more secure format. However, they don't have the time or manpower to do it all.
Therefore, more bugs get in the final product...
What an odd system... especially in a hospital were errors can mean lives.
davak
Outsourcing managers is a big no-no. Suddenly, the company is not American anymore.
Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
Some may think this is the best way to do things at their company, but it's essentially turning their coding process into a factory job.
Look at it this way: would you rather have the wristwatch that is hand crafted to perfection, works better, and will last forever, or would you rather buy the watch that came off of the assembly line, always loses time, and will break on you in a year or two?
By leaving the coding process to people outside of the company and its interests, and thereby making the whole process more mechanical than creative, they are essentially assuring themselves the lowest-quality product. It's unfortunate if they think that's the best way to go, but in my opinion they will eventually get what they paid for, so to speak.
FWIW, and to bring it back on on topic:
Those that can, do.
Those that cannot: teach.
Those that connot teach: manage.
So, I guess 'those that can' are on the bottom rung, huh?
Ads are broken.
...that we've seen over and over. More interesting is the mistaken impression that it's only coding jobs going to India. Look at Business Week for another take.
You're missing one very importan one:
Those that cannot manage: sue.
Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
As a coder turned project manager I fell that my current position is harder then my old coding job. The demands are higher the blame falls entirely on me and the worst part of all, I have to deal directly with the customers. As a coder I could work on things in small pieces and just meet the requirments, as the manager/designer I have to know how those pieces will go together and recognize the obstacles before hand. Really for the little extra pay I get for the new job I'd go back to being a coder if it wasn't for the lack of job security.
I know I could outsource my coders, but that's mostly due to the design being complete enough that anyone can just sit back and code up exactly to spec. It's not hard to code when given "you need a box that takes in X out puts Y and here's how you convert X to Y". I would guess that you couldn't outsource a design of " We need something that does Z. I suppose my job could be outsourced but I already find dealing with the customers over the phone in the specification gathering stage quite difficult. I happen to know their markets quite well and that tends to be how I get through. If I didn't understand the market then I'd be screwed. So yeah someone that knows the market including all of the little local issues(taxes, strange holidays, legal issues...) could do my job from just about anywhere in the world, It's over the phone anyways. Someone that doesn't know of the little things couldn't do it.
When I looked into outsourcing our coding I decided not to.
Reasons include
- my programmers are already paid slightly below national average and the cost savings wouldn't be huge.
- My programmers are proven known pieces in the puzzle. I know which guy does what best and I can pretty accurately estimate delivery schedules based on that.
- I like working with my guys, they help out a lot when I do design or come up with ideas on things we may want to try.
- shipping jobs away from here doesn't help me or anyone else enough to be worth pissing the locals off.
- If I screw over my workers by shipping their jobs away, who will be their to back me when the owner decides someone else can do mine.
There will always be market for high-quality programmers.
Higher quality means higher prices, which means higher wages are acceptable.
It's basically a refinement of the market, not a disappearance.
I live in Sweden, which has some of the highest labor costs in Europe. Yet, Sweden has a strong steel industry, despite steel manufacturing being quite a 'low-tech' industry, with cutthroat international competition.
(Coming from Japan, and increasingly China)
How do they compete? Simple: They don't. Sweden switched its industry to high-quality and specialty steel production requireing more skill.
The USA really needs to move their steel industry in this direction, but instead they leveled tariffs on imported steel. (now dropped after trade-war threats)
(Also, note that swedish steel was exempt from these tariffs, for the reason that they don't compete with american steel manufacturers, who aren't in the specialty market)
So, for the software market, I think we'll see something similar. And a choice will have to be made whenether to face reality, at a cost of the lesser-skilled jobs, or give the industry artificial resuscitation through tariffs.
All i know is that if project managers went on strike for a week, they would come back to find the entire project had been completely redesigned from scratch, it would be amazingly efficient and well structured and it would work perfectly and within budget, whats more it would have 100 new useful features. If programmers went on strike for a week they would come back and find a list of 100 random, totally flawed and un-thought-out things to do on thier desks.
This comment does not represent the views or opinions of the user.
You're missing one very importan one:
Those that cannot manage: sue.
I think you meant "Those that cannot manage: SCO.
Actually, I guess it's the same either way, nevermind.
I browse Slashdot at +3, Funny
If a project is going poorly, replacing twelve good developers with one good project manager won't advance the project one iota if the project is already being competently managed. Conversely, if you already have enough developers on a failing project, adding twelve good engineers and removing a good project manager isn't much of a save either.
To try and establish some kind of mapping between the two is absurd. It's like saying "An axle is worth a dozen engines!"; the car isn't going to go far if you're missing either set of skills. If a project is lacking project management, you need more project management. If it's missing engineers, you need more engineers.
Part of what leads to these sorts of statements, of course, is that neither skillset is easy or readily understood by either side of the debate. Coders don't understand how hard it is to do good project management (mostly because they're typically exposed to the lousy sort, and because you can always muddle your way through). Project managers often have no insight into what it takes to design and build good codeTo compound the misunderstanding, they see that there's one project manager and a dozen developers and they think that they're worth a dozen developers. It's a fairly typical management error.
Ideally, project managers would all have heavy coding experience, and every developer would have project management training. If they don't, then it's up to the experts on both sides to educate across the aisle. If your project manager doesn't get it, it's your fault for not taking an hour to explain it. And if you don't understand why the project managers do what they do, try asking about the process they use to put together a project plan, to do resource balancing, risk amelioration planning, cross-team scheduling, and the like.
I don't think that the reason coding is outsourced, whereas project management is not is because of the skill required. It is more because of the nature of the businesses involved, and the nature of the coding to be done. In many situations, you can't really get away with outsourcing project management, because that essentially means you don't really have control over the project, and so you don't really have control over your own business ( assuming the project is central to the business, peripheral projects can be entirely outsourced ).
The nature of the coding to be done is also important. One of the facts that I've come to realize in studying computer science is that, to a large extent, the majority of coding work is routine and does not require in-depth knowledge or familiarity with computer science techniques. Most real-world coding consists of pretty mind-numbing tasks of gluing different APIs together in a reasonable hodge-podge. Many of these tasks require only a familiarity with the syntax of a language, some familiarity with a few common APIs, and access to a machine. None of which is very skill-intensive.
During the dot-com boom many people were employed doing coding work at incredibly over-inflated salaries who had read one or two 'for-dummies' type books. This was possible because there was a shortage of coders who could do even the most routine tasks. The high salaries attainable with very little training meant that there was naturally a rush on such teach-yourself-coding books, and suddenly there was a glut of people who could do routine coding. Now, because of that glut, there is an excess of able code-monkeys to do routine programming tasks, which means that much of this work goes to the lowest bidders ( ie Asian sweat shop coders ). Supply & demand is all it is.
But the future is hopeful, I think, for those who are willing to tough it out and obtain Comp.Sci. degrees. Right now we're stuck in a kind of computational limbo where the market is not sophisticated enough to demand really sophisticated software, so there is little demand for people who can design highly sophisticated applications. There are some jobs which require knowledge of high-performance computing, knowledge of efficient algorithm design, AI, etc. but not very many. Right now basic code-monkey work is what satisfies the majority of the market demand. This is changing rapidly, I think. The more consumers get a taste for sophisticated technology, the more the demand for truly intensive software will rise, and the need for more people with real skills ( ie University level training ) will increase.
There is a big difference between a carpenter and an architect. One is a trade, the other is a profession. The confusion that is happening right now in the labour market for programmers is because this type of distinction is just now starting to emerge. It used to be that there were only professionals in the programming world. With the dot-com boom & bust this has changed, and there is now a new class of worker, who programs as a tradesman, not as a professional. The mind-set of the market has not yet come to fully realize this distinction, and so we have these problems. Eventually this will settle out and there will be two classes of programmers - those equivalent to architects with high levels of training, and those equivalent to carpenters with much practical knowledge, but little or no theoretical or 'design' skill. I expect this will occur more and more as the demand for sophisticated software increases, and we'll see the re-establishment of 'programmer' as a profession.
There are a thousand forms of subversion, but few can equal the convenience and immediacy of a cream pie -Noel Godin
IT people are being outsourced first because HR does not know how to hire them, and managers don't know how to manage them. Eventually everyone except the VPs, marketers, and salespeople will go. When garment industry jobs that Americans will not do get outsourced that doesn't hurt many people. When manufacturing jobs go, it's painful. When jobs requiring college degrees get outsourced it means a return to the middle ages, with a rich, talentless aristocracy, and a sea of poverty.
The only people you can't outsource are the ones who have to talk to the client directly and the ones who make the decsions as to who to outsource.
If I were starting up a new software company I would go to India or China or Eastern Europe and hire people away from the big outsourcers. Get experienced people pre-trained. Eventually with competition wages may get to 50% of American levels, which is what some people I know (good people, too) are currently accepting.
It's easy to be cavalier about jobs when you are a venture capitalist, a VP, or a journalist; only the journalist can be outsourced, and not easily. It's not so easy once you think that literally everything else can go, leaving American workers working at Wal-Mart.
You got me into this! You were the ideologue! I'm only a poor assassin! - Twenty evocations, Bruce Sterling
In hindsight my comment deserved a big F-you...
:)
Note my question marks in my original post as I didn't mean this to be taken as a truth.
I would be ashamed if any of my former teachers saw my comment... or my spelling...
Teachers rock ass and do not get paid for it. Teachers and programmers share the quality that they are underpaid for their work.
My comment was a reflex at somebody in academia making judgements without any experience.
I am sad that my comment has brought out the anti-teacher shmucks.
Davak
Coding: People here are complaining that coding is classified as a "low-level" job. A lot of companies have been treating coding as a low-grade skill for quite some time. A team of high-level people design the thing, and they hand it off to the lowest-paid workers that can actually implement it. These low-level American jobs purposefully don't leave much room for creativity, and the pay is not really that great. Outsourcing those jobs to India is merely a continuation of this trend and follows the manufacturing sector where the jobs of feeding the machines and putting stuff in boxes have mostly gone to China.
Management: A lot of /.-ers are complaining about how management sucks and how its so much easier than programming. This is false. Management is really hard and takes a lot of skill. Most mangers suck, of course, but most programmers suck, too. You never notice the rare good manager who takes mediocre programmers and makes a successful project, but a bad can have great programmers and get nothing done (of course, of you have genuinely bad programmers, you're screwed no matter what). The Indian industry will mature, and a lot of management and design jobs will eventually be outsourced there, too.
Quality: Think about any physical thing you buy. It probably has "acceptable" quality and doesn't cost very much. After a while, you get a different one, which probably has newer and better technology that you wanted anyway. (If everything you bought was a minor masterpiece, you'd pay for it by having out-of-date technology; it's the price of our fast-changing world.) If you want better quality, you have to pay a lot more, and the product, or large portions of it, are much more likely to be made in the US/Canada or Europe. Sure software quality sucks, but mostly it does what people want and is cheap. A lot of people are willing to put up with problems to pay less. In the end, the top software jobs will stay, just like the top manufacturing jobs are still here.
One problem really is that we don't know how to design software in a predictable way. Attempts to design inexpensive software are often more expensive in the end, and trying to do a great job can lead to bloated projects that are never done. Many expensive American projects really suck, and probably some cheap Indian projects are great. The field currently just doesn't have the maturity for us to say with any predictability "if we spend X dollars we will get Y quality." When/if the field reaches the predictability of manufacturing cheap software will be made in developing countries, and great software will be made in mature countries.
Protectionism: While short-term measures can allow an industry to restructure itself and become more efficient, long-term protectionism never works. Consider the recent steel tariffs. I'm not qualified to say if they were the right thing, but the idea was to allow some short-term period for the steel industry to get it together because we all benefit from a competitive industry. A long-term tariff, however, makes American products made from steel products more expensive. American consumers could then buy less, and American products can not be sold overseas.
The same is true for software. India currently specializes in grunt-work coding. Protectionist measures will save some American grunt-coding jobs in the short-term. However, what will happen in 10 years? A fraction of those Indians will get mad skillz. Indian software companies, now with competitive-quality coders, and benefiting from cheaper labor than their American counterparts, will clean up. The American industry will ultimately suffer. Its better for the bad American coders to find a different field or get better skills now than later. Think about it, it may suck to lose your job now, but its worse to lose your job from a dying industry when you're 10 years from retirement and have no recent skills or training.
I think a lot of this comes from "management" getting tired of "artisans" refusing to ship products on a schedule
My company was a small American firm who put out an embedded system that was considered by all to be the gold standard of our industry. Then we got bought out (because the founder retired) by a huge multinational German company.
Two years later we were trying to figure out why the Germans were pissed at us. No matter what we did we were treated like dirt. We increased marketshare and they were mad. We win a prestigious international award and they were mad. We couldn't figure it out. We gave them golden eggs and they acted like we gave them goose shit. We made one BILLION euros last year on a product and they laid off half our developers and outsourced their work to India in retaliation. They even flew out corporate "brass" just to *yell* at our software managers. Seriously! We heard the yelling from the other side of the wall.
Finally a German insider told us what was wrong. We never made our deadlines. We had always worked this way. We would estimate a ship date three years in advance, before we ever came up with requirements or specifications. So we would often miss the target by a few weeks. This was anathema to the Germans! It was intolerable. We were considered incompetent bungling fools because the one major product during that two year period was two weeks late to beta testing. Not to ship date, which we made, but to beta testing!
In one incident, I myself was seriously ill and was hospitalized. When I came back to work I found a waiting email message demanding to know why I was late on my project.
Don't blame me, I didn't vote for either of them!
I think I might have one for your perusal:
First: forget about software being an "engineering" discipline. It is not. Engineering deals with building physical things, to deal with physical problems. Their design process is entirely different from ours. They spend a huge amount of time perfecting a design up-front, testing it in computer simulations to make sure it won't fall apart under load, building a prototype and destructively testing it, etc. Then they spend another significant amount of time figuring out exactly how best to build the product efficiently. THEN AND ONLY THEN do they actually start building the product.
Contrast this with computer science.While the software development process is LIKE engineering in that there is a design and prototyping period which is difficult and requires a high degree of skill, it is also UNLIKE engineering because in computer science, once you've got a prototype you're ready to test and you can distribute it as-is for nearly zero cost.
Programming is also unlike crafts. In fact, I think considering programmers craftsmen is unfair. A craftsman is an artisan, like a painter or a woodcarver. No two items he creates are the same. He doesn't go through a lengthy design period; he merely creates whatever thing of beauty he is working on. Further, a single item he creates is expensive, because each item is unique and represents a huge investment in time. So I don't think this comparison holds up either.
If you want an accurate model for computer programming, the closest model is that of the mathematician, because really, computer science is a branch of mathematics. It is the branch that deals with implementation and design of algorithms. In a sense, programmers model thought processes; things humans would have to do manually if the computer didn't exist.
When you look at it this way, you're much closer to modelling what's actually going on when a programmer grabs his keyboard. We consider the process an individual human would take to achieve some result; then we codify the process as a set of rules that can be automated and vastly accelerated; then we empower a computer, a lifeless, inanimate object, to perform those rules for us.
We're mathematicians modelling thought for the benefit of our society, creating machines which can enhance the power of our minds. WE are the accelerant speeding the growth of our culture, because WE are the steroid that is causing our intellectual capacity to grow faster than it could ever evolve on its own. Just look at the internet itself: it is so much more vast, and has so much more potential than the library at Alexandria. WE created that. WE made this happen.
And, now, we are considered a burden that must be outsourced. It's ironic, isn't it? Corporations who owe us their very ability to do business worldwide have no gratitude or loyalty for us, and are brushing us aside as though we don't exist. We're just line items to them.
But I'm rambling. Your conceptual approach is that of the mathematician. A design process which mixes equal amounts of knowledge, skill, and inspiration. None of which can be planned like an assembly line.
Farewell! It's been a fine buncha years!