Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am aware of a company that owns the intellectual property of a decent software product and makes an excellent income from licensing per annum. However, the director (non technical) complains about the cost of maintaining the development team, as it eats significantly into the profit margins, and is considering outsourcing development of specific modules to other countries that charge at a lower rate.

Personally, I don't think this will be a more cost effective solution in the long term. This can lead to communication breakdowns when there are problems, additionally the specifications will need to be water tight which can end up taking taking more time anyway. In my opinion, when working in teams communication is key - or is there an effective way of making this work?

What are other peoples thoughts AND experiences on this matter?

share|improve this question
18  
The cost of programmers' salaries is eating into the profit margins of a software company? Who would have thunk it?! –  Dima Dec 20 '10 at 4:47
14  
PHB wants more money -> PHB realizes that he has to pay wages -> PHB decides to get rid of everyone for cheaper people -> company goes down the tubes. It's a tired old record. –  Steve Evers Dec 20 '10 at 4:52
1  
"The cost of programmers' salaries is eating into the profit margins of a software company? Who would have thunk it?", and, at that point it's time for the company to get out of software development and focus on software support of a dying product. :-/ –  the Tin Man Dec 20 '10 at 5:05
14  
It can work, but you need the core company to be located in the new country because of the communication that's necessary. You company would probably save quite a bit of money outsourcing that director position as well. –  dietbuddha Dec 20 '10 at 6:51
add comment

11 Answers

I'm sure that someone has an example of this working, but I haven't seen it.

I've worked in a Fortune 500 company for many years where they outsourced alot of development. I don't have a single example in those years of an outsourced project costing less than if we had done it ourselves (in-house).

While their programming rates were less than ours, we spent 3 times the amount of time managing the outsourced team than we do for in-house teams. That's on top of the added time needed to have the requirements more detailed than our in-house team needs and the added time needed in QA because the code was never close to being correct.

share|improve this answer
5  
+1 That's the experience I've seen. –  the Tin Man Dec 20 '10 at 2:42
1  
+1 - Mine too... I wonder if all corporations use the same play book. –  Ali Dec 21 '10 at 2:48
    
That is pretty much what I expected. –  Seth Dec 21 '10 at 11:32
add comment

You can have quickly, you can have it cheaply, or you can have it done well. You can't have all three, and I would argue that even two out of three can be a stretch.

share|improve this answer
add comment

For a software company, this is just plain stupid. The closest they could get to a reasonably intelligent decision would be to move the company to another location that has cheaper talent.

A software company outsourcing their software development isn't a software company anymore. I would argue that any gains earned will be short-lived, because you are creating your own competition. Once they realize that they know the product better than you, then they also realize that they don't need you anymore.

share|improve this answer
5  
+1 As this touches upon the rule "Never outsource your core competency" –  Sparky May 31 '13 at 12:40
add comment

My only experience of outsourcing to a company in another country will be my last. The company hired failed to complete their work on time or even remotely meet the specifications, and resulted in us having to redo the whole lot again in-house.

However, if you can find a reliable company you can trust (i.e. you've seen/heard good things about them from other people) then maybe it's worthwhile.

share|improve this answer
    
Was there not clauses in the contract that specified the end product? –  snmcdonald Dec 20 '10 at 1:32
14  
@snmcdonald: Clauses like that are very hard to adequately specify, and very hard to enforce across international boundaries. And if the outsourcing firm simply doesn't deliver, it doesn't matter what's in the contract: you're screwed. Even if you wind up not paying them a penny, you've just poured your own effort and all that calendar time down the toilet. –  Bob Murphy Dec 20 '10 at 1:43
1  
@snmcdonald Yes the end product was clearly specified, with individual parts specified by priority. When it came to them sending us what they had done 3 months down the line, about 2 weeks away from product release, they sent us a massively incomplete version which included some of the things we didn't need alongside very poor implementations of the most important (if they were there at all). Overall very costly and disappointing! –  adamk Dec 20 '10 at 9:55
add comment

Yes - you get what you pay for.

In my experience, unless your market and development needs are so dead simple they can easily be explained via email to any developer with a possible language barrier, and so dead simple that even a developer who isn't really invested in the company can still succeed at creating a quality product, then yes your product will suffer.

I worked at a company where we had a large local development team, and our product suffered simply because the management team poured more money and effort into sales. Because so much effort was poured into sales, it appeared we were doing "fine" - but it meant to earn revenue we were bound to keep pouring money and resources into the sales process.

We had a remote team but we integrated them fully into the company and they participated at the same level as our local teams. That's the only way it can work. I was the local team leader for them and we flew out to work on site with them regularly. We gave them company shirts and jackets just like the local teams. After all things considered, it maybe saved us 20-30%. If you put together a system that attempts to cut costs by more than that, your product will suffer accordingly.

share|improve this answer
add comment

The director wants to replace some of his experienced local developers with people in a distant country whose expertise he's not competent to judge, who have no experience with the code at all, and who can't be directly supervised or mentored by anybody who does know the code.

I've been through that twice. In both cases, the inexpensive foreign firms failed to deliver on-time with adequate quality. When the local developers heard work was heading overseas, they found other jobs rather than wait to be made redundant. As the expertise hemorrhage continued, schedules slipped, critical bugs weren't fixed, customers got angry and switched to competitors, and eventually both companies folded.

There were also strange problems with communication, expectations, and culture. For instance, a foreign team wasn't checking in much code or responding to email promptly. It turned out the local IT manager got a bonus for keeping costs down, so he had the entire office on a low-speed Internet connection. Another time, third-world QA testers routinely put several wildly different bugs in the same bug report; their manager was afraid of running out of bug numbers.

Some teams in inexpensive places are fine. From what I hear, Red Hat seems to have a very competent team in Beijing. But they already had years of experience with people working from around the world via telecommute before they started doing that, and the folks in Beijing are Red Hat employees, not an outsourcing firm.

share|improve this answer
add comment

In my experience, outsourcing a project aint the best solution when trying to get better margins.

At work we had something like that going on and well, as others also said, we ended up re-doing the hole thing and maintaining what was on a production server. Conclusion on the matter, it costed twice as much.

My opinion on the matter is that if you are thinking about trying to make a difference about margins outsourcing developments, you might be throwing away your investment. If you think about it, the product success is a matter of things working as spected, so if you change dev-team , things could turn ugly.

share|improve this answer
add comment

If you are working with a quality outsourcing team, and the management is willing to communicate and enforce acceptance criteria.

Then the cost will be about the same rate as an in-house developed product.

You may also get the same quality, too, if you're lucky.

I may be a little biased because my company keeps an in-house development staff, and has not outsourced any product development. I suspect the experiences we've had with integration partners who have outsourced development had something to do with that decision.

share|improve this answer
add comment

Well planned/done open source software could be your answer, because it can be highly profitable and the maintainance gets somewhat delegated to a community, but there is no recipe for success. The best advice I can give is recommending several talks about what really is open source and its shenanigans:

And perhaps also:

The thing about open source, in my opinion, is to build something of value and interest not only to you but to all, the power of open source lies within communities.

Also, if your boss/company is reluctant to open up the software, just isolate the specifics of your own business logic and know-how. So, what you would be doing:

  1. Incubate an open source project with your resources
  2. Grow a community
  3. ???
  4. Profit =)

Yeah, I'm serious, and "???" involves what ever strategies you want to pursue after you gather enough interest. With today's tools such as Github and twitter you can spread the word easier, but mind that your first impression should be interesting enough.

If you don't actually want open source (which you must understand as a business model before implementing it, if you want to succeed), you can always launch it as a service, for that check the Carsonified video, but that implies a whole lot of other things for your company.

In the end, being open source or launching it as a service are ways of making the project sustainable on the long run.

share|improve this answer
add comment

I don't remember the author of this quote, but it hits the nail.

"Loosely coupled teams working together on tightly coupled components fails. Inevitably"

Outsourcing = loosely coupled teams.

Trying to reduce costs by geographically splitting work on interdependent components always fails.

On the other hand, based on my experience, moving a whole part of the software portfolio might work, meaning it can be developed in good quality with reduced costs.

share|improve this answer
    
how does this answer the question asked? –  gnat May 31 '13 at 13:29
    
Body of the question is really about outsourcing = loosely coupled teams. Trying to reduce costs by geographically splitting work on interdependent components always fails. On the other hand, based on my experience, moving a whole part of the software portfolio might work, meaning it can be developed in good quality with reduced costs. –  Maros Urbanec May 31 '13 at 13:44
1  
@MarosUrbanec - your comment should be part of your answer. The quote by itself isn't really strong enough to stand on its own as an answer. –  GlenH7 May 31 '13 at 13:45
1  
@MarosUrbanec +1 Great quote, I added your comment to the body of the answer in order to make it more answer-like. –  user61852 May 31 '13 at 15:53
add comment

It is right that developing a QUALITY software is expensive and outsourcing its development to countries that charges lower rates can reduce its costing significantly but that comes with many risk factors associated with it; some of them you already mentioned in your question.

But in today's era of globalization, outsourcing processes have been refined to a great extent and thus enables you to cut your costs on development by outsourcing your software development requirements.

There are many outsourcing companies which are helping businesses in other countries to cater their software development needs and they are doing it really well. Some of them have been working for years now. There are many factors like client's references, past work, similar experience, communication channels, etc. which you need to check THOROUGHLY while hiring an outsourcing companies for your software development.

So, it all depends upon how much time you put in thorough analysis before hiring an outsourcing software development company for your development needs. Risk factors are always associated but with a redefined approach, you can successfully cut your costs by outsourcing software development.

share|improve this answer
1  
It's a nice perspective you give, but it's pure marketing without hearing from the other side, i.e. your customers, and that's not the place for it. –  Wilbert May 31 '13 at 14:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.