Everyone says that IT work (the technical stuff like programming, etc) is always outsourced to India because the cost of living there is less, and thus the price of work (especially be freelancers) is therefore a lot less than someone doing the work in a developed country like the UK/USA. Being Indian myself (but living in the UK), I can vouch for the cost of living being less in India.
Do you therefore worry that the work we do and the number of jobs available is at risk?
My view is that there is more to choosing a supplier of solutions than just the cost. Companies in India may be cheaper but my dad works for an airline who is set to make its first loss in several years. They get work done by a company quite local to me (5 miles away), where I went for an interview a few weeks ago. This company (a startup too) probably charges more to ensure they make a profit. So if a loss-making company is choosing a supplier who is likely to set a higher price, then there is more at stake than getting work done by a company in a country with a low cost of living.
However, what is the freelance market like?
Also, I guess sometimes you need a coder who is physically onsite and at hand. It will be annoying and, in big companies, a major problem if you have some technical issue but have to wait 10 hours for the country on the other side of the world to wake up to fix the problem. Time is money. Am I right to think that server admin work is less outsourced? I say this because that line of work probably involves physical interaction with the server boxes, which obviously can't be done overseas.
Interestingly, there is now a lot of disruption about our jobs being given to workers from abroad who would settle for a lower wage, which is an important issue given unemployment rates/recession etc. It would be stupid to create more jobs and they are taken by legal immigrents.
However, a search of programming jobs in London results in thousands, but only 100 for accounting jobs (a profession which can be easily outsourced because I don't see where the need for a physical accountant is required).
What's your view? Is this a reason to worry about the safety of your job?
-
I'm in no danger of being outsourced, but whether my job will survive the economy is another matter.
-
Your job will be safe as long as what you do is relevant, simple as that.
-
It does not.
One of the twelve principles of the Agile manifesto is:
"The most efficient and effective method of conveying information to and within a development team is face-to-face conversation."
Though some might see their work move offsite, those that follow certain Programming principles will always favor working in close quarters with colleagues, and this should give most of us some measure of hope.
-
It may depend on previous experience and whether the company as been "burned" before... In my company, we experimented with 3 different delocalized development teams a few years ago, it it went quite wrong (only one team - the one in headquarters - survived) - and these teams weren't even far apart (two different towns in Austria plus one in Germany), in the same time zone speaking the same language. Thus I'm pretty sure that outsourcing development will not be an issue for me :-)
I've also seen the problems that some developers had when talking to a support person for some software we use who worked in India - since both were non-native English speaker (and apparently both had quite an accent), the conversions were really difficult and several misunderstandings occured. However, this may be less of an issue for native speakers.
-
Your job might change, but it will not disappear. More and more development work is required, it might be that in the future you manage a team of developers in India. Get ready for that, because that isn't a simple task.
I notice that developers in India are very different from the local ones. They never say 'no', which leads to just hacking around crap to get stuff done within the deadline. Sometimes this is good, most of the times this means a lot of extra costs later on, to refactor all the crap. A lot of them are not that high skilled as you might think. Still there might be very good ones.
But they are not here sitting next to the customer experiencing their needs. For some tasks this isn't required, for some it is. The amount of tasks where it is required might decrease in the future. But there is a lot of development work required in the next few years. I think this will probaly equal to the current workforce that is not working outsourced.
dotnetdev : Funnily enough my dad manages a team of devs in India. Being a project manager and managing devs with Lotus Notes dev skills (the company I described who work for the company my dad works for does ASP.NET, C#, SQL Server etc). -
Outsourcing is very different to working with a local team. To be able to work effectively with an outsourced team/company (and not end up regretting it) you need to have all the following in place before anything starts, at a bare minimum:
- Specification (very, very detailed)
- Acceptance criteria (use cases, automated tests)
- Milestones
- Coding standards (and ways of verifying, e.g. FxCop, StyleCop)
This simply isn't possible on many projects because the spec can't be known in its entirety at the start. This is particularly true with things such as consumer websites where there's typically a fairly fast feedback cycle from user comments and usability studies, which can change the direction, priorities, and milestones of a project on short timescales.
In addition, getting a very detailed spec along with all the acceptance criteria and tests can be very time consuming and expensive. And often you need to write the acceptance tests yourself and/or use another outsource company to do them so you know the results haven't been 'faked' (and yes, this does happen). And even then you still need a core team of product managers, dev leads, etc. to manage the offshore team while the project is under way. In my experience this can end up more expensive than doing it onshore in many cases, and many companies are starting to realise this.
So no, I'm not worried about either losing my job, or having my job change to being the manager of an offshore team. Any fast moving projects that require interpretation of the spec and feedback loops with the product team and users will always need good onshore developers. And those are some of the most interesting projects to work on.
eglasius : I disagree, specially as our teams work remotely, don't use that ton of overhead and ship effectively, with high quality and good code to clients. Of course, india rates are a third than mine :P :( -
Problem is, developers for the most part don't make the decisions about whether or not it is cost-effective to outsource or not...managers do. And most managers, at least the higher-up ones are paid based on their short term performance, not the long term success of the company.
90% of the people that aren't worried about their job being outsourced are kidding themselves (or have there head stuck in the sand) and they SHOULD be worried about it...or maybe just that final 10% is here on stack overflow.
-
Having worked on four projects in the last year that each had elements of outsourcing, the answer is a definite no.
The biggest problem was time zone issues,
None of the companies will repeat the experience and in future will only work with local developers.
However, the new trend around here seems to be getting outsourcing companies to send their staff here to work locally. They are still paid at outsourcing rates.
-
If you work for a company whose main product is software, it doesn't make sense for them to outsource that software. That is their bread and butter, you just don't do it. Joel Spolsky made a statement which hits the issue dead on:
If it's a core business function -- do it yourself, no matter what.
Pick your core business competencies and goals, and do those in house. If you're a software company, writing excellent code is how you're going to succeed. Go ahead and outsource the company cafeteria and the CD-ROM duplication. If you're a pharmaceutical company, write software for drug research, but don't write your own accounting package. If you're a web accounting service, write your own accounting package, but don't try to create your own magazine ads. If you have customers, never outsource customer service.
In his essay “The Pitfalls of Outsourcing Programmers”, Micheal Bean says companies have confused the chocolates with the box they come in.
Why Some Software Companies are Confusing the Box for the Chocolates
Recently, I bought some chocolates as a gift for some friends from a specialty shop. These chocolates are remarkable. Owner Jean-Marc Gorce makes them by-hand and his small shop has been rated as one of the top ten in the United States. In addition to being a chef, Jean-Marc is also an entrepreneur and an innovator.
Jean-Marc recently started selling his chocolates in gold and blue boxes. I told him I liked the new boxes. He explained that his wife designed the boxes and he found a company in the Philippines that could produce the boxes in the small volume they needed for a good price.
Jean-Marc’s gold and blue boxes are an example of successful outsourcing. Jean-Marc sells chocolates, not boxes. The design and production of chocolates is his core competency. Jean-Marc can outsource box production to improve his operational efficiency without sacrificing his reputation as a maker of superlative chocolates.
While outsourcing boxes improves chocolatier Jean-Marc’s operational effectiveness, he would never consider outsourcing chocolate production because he would lose his core differentiation advantage. Yet, in their enthusiasm for cost savings, several US technology companies have done precisely that-- outsourcing their core technology and key strategic differentiator.
So yes, if you are writing software for a non-software company then you stand to lose your job to outsourcing. However, if you find employment at a company that writes software as their core business then you are safe. No smart business would outsource their main competitive advantage.
Phil : Nice comment and hit the point! Here is a joke for you. Try telling this to IBM that went to the extent of requesting American workers to emigrate to India and accept the pay native Indian developers get. $$$ this quarter has more power than long-term business viability evidently to some managers. -
Time and execution risk are critical considerations in offshore development -- not just money. Anyone who has an opportunity to do so, should reiterate this point with stakeholders.
All points raised so far about team communication are spot on, too.
Actually, I've taken on work that was badly botched through outsourcing, with clients that finally realized that it was -- at least in their case -- a false economy. In one case the project was plagued with communication lapses and language barriers, but more importantly, the project was not properly specified, and there were no standards for workflow or coding. No one offshore noticed or cared. They just cobbled up some code that sort of did what they understood it should do (without any consideration for error handling, maintainability, best practices, or documentation). They just chucked it back over the wall -- here ya' go! And the client got what they paid for.
Now, this may not be typical, and it could happen with a local team -- but it certainly would have not gone on as long as it did if it had been a local team.
eglasius : @Clayton I agree with the overall info, but there are public examples of it going on long in big projects executed in the us. bottom line, it can go on wrong anywhere. +1 for not throwing the money on cheap rates that isn't saving anything. -
I wouldn't count on the rates in India continuing to be significantly lower than the US and Europe. A modest condo in Bangalore goes for $250k these days.
Unless you can outsource and pay < 30% of your current development costs, you will lose money.
-
I worked for a company that make a bit bet on outsourcing to India. Our company lost the bet very nearly sunk. Our company partnered with an Indian outsourcing firm and ramped up an office of more than a hundred developers in about two months, purportedly a CMM level 5 company (ha ha). I hear that these outsourcing firms don't get the best developers. The productivity of the teams was miserable. We sent one project over there that cost us half a developer onshore, and the offsshore team took 4 people, plus about a half-person onshore. After the offshore offices were shut down, we ended up re-writing most of the work that was done offshore.
I'm not sure our experience was typical. We made a lot of mistakes. Most of the domain knowledge and technolgy experitise was still onshore, and we shipped the 'coding' offshore - which does not work (duh).
I expect to see more development going off-shore, so I think there is reason to worry about keeping a particular job. I see the market for developers becomming increasingly global, and we're already seeing accounting, legal and other work moving offshore, however there will always be a market for local developers, especially for small projects and customers who value close interaction. I believe there will always be work, but the nature of the develpment may change, and we have to keep learning and be prepared for the shifts when they come.
eglasius : that's the thing, no. of developers != value produced, and rate/hour != savings/hour. It varies a whole lot, and that's something that is just hard to deal with for everyone, clients and providers. It really gets in the way, when your rate is 3 times theirs, but the client hasn't gone through that. -
A company really has to know what they want to have it built over-seas. If the specs could be provided along with the proper testing of the application, it could work. Most companies are not capable of this.
-
Worst case I just move to India.
kenny : +1 lately my thought as well or another lost cost-of-living place. -
Yes. I think we should worry about outsourcing. Most failures are due to the lack of understanding of how distributed development should work. There will be better commnucation, better spec, better tools, better team-building experience and gradual transfer of domain knowledge in the future. Capitalism will make outsourcng work eventually.
-
When I was working for an American web dev company the outsourcing failed. The communication barriers from language and geographic location were too much.
So I don't think outsourcing of programming jobs from the US to other countries is a problem. What IS a problem is companies located in other countries making competing products (like Japan w/ the auto industry). This probably will be an issue because the programming culture is much stronger in other countries than in the US.
-
In a new market, wages creep up to match demand. Our company actively maintains groups in several regions, including India. Plans to save money by hiring in India were dashed when it was discovered that engineers would stay on long enough to receive domain training and build contacts, then would leave for a more lucrative position with a local competitor.
So now, we have engineers in India, but only because they are good, not because they are cheap.
The same story is playing out (for us) in Egypt right now.
-
I don't see outsourcing as a big concern about the safety of my job for a few reasons:
My currrent job may be static, but I am not. The job I want will likely change over the course of time and I'll want to change what I do. For example, 10 years ago the web work I did was in Visual Studio 6.0 using C/C++ that has changed drastically between then and now. Do I expect just as big changes in the next 10 years? Why not, it makes sense that there should be these big shifts every so often so why not try to roll with it rather than try to be the hamster on the wheel that goes nowhere fast. I know that my mother and father managed to have their work be repetitive work over and over but that wouldn't work so well for me. My father delivered dairy products while my mom was a nurse for a centre that houses some developmentally disabled individuals.
There will be some work done onshore by a few different entities: Consulting firms will still be around but may have a combination of workers from various countries and then there are the big IT departments that companies have that I don't really see going away for those industries with a fair amount of regulation. For example, I don't think I could see any of Canada's big banks using another company for all IS functions as that would leave them way too open to potential lawsuits and other headaches that are avoided by having customized systems that are almost always in a state of upgrade as there are better ways to do things that people are finding.
Another point is that while I would imagine most people could program if given the proper incentives(picture holding people's families hostage and threatening harm if the code that is done contains bugs for a rather extreme example of this), that isn't realistic in most cases and so the tiny slice of the population that likes building systems or finding solutions to problems will be the ones having the jobs doing things that other people don't want to do.
0 comments:
Post a Comment