-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.