16
votes

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?

7
  • 24
    The cost of programmers' salaries is eating into the profit margins of a software company? Who would have thunk it?!
    – Dima
    Dec 20, 2010 at 4:47
  • 20
    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. Dec 20, 2010 at 4:52
  • 2
    "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. :-/ Dec 20, 2010 at 5:05
  • 19
    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.
    – snakehiss
    Dec 20, 2010 at 6:51
  • 1
    One of the worse examples is Quark and QuarkXPress, which went from 95% market share to almost nothing.
    – gnasher729
    Jul 23, 2015 at 22:56

10 Answers 10

40
votes

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.

3
  • 1
    +1 - Mine too... I wonder if all corporations use the same play book.
    – Ali
    Dec 21, 2010 at 2:48
  • That is pretty much what I expected.
    – Seth
    Dec 21, 2010 at 11:32
  • I have seen this at my old workplace. They spent more money in the end, because they had to fly back and forth to manage the remote developers. The company does not do any own software development any more: they customize M$ products.
    – Giorgio
    Jul 13, 2017 at 5:39
30
votes

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.

18
votes

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.

2
  • 9
    +1 As this touches upon the rule "Never outsource your core competency"
    – Sparky
    May 31, 2013 at 12:40
  • Very much depends on what the development is - for example, we're outsourcing scripting reports and dashboards which use the API of our time series database product, as we don't have enough staff to do all the different scripts or customer customisations in house. Outsourcing the core product development, yes, but not all software development is core competency. Jan 19, 2017 at 13:29
13
votes

My only experience of outsourcing to a company in another country will be my last. The company that was 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.

3
  • Was there not clauses in the contract that specified the end product?
    – snmcdonald
    Dec 20, 2010 at 1:32
  • 16
    @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, 2010 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, 2010 at 9:55
10
votes

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.

9
votes

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.

3
votes

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.

3
votes

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.

1
vote

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.

1
vote

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.

4
  • how does this answer the question asked?
    – gnat
    May 31, 2013 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. May 31, 2013 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.
    – user53019
    May 31, 2013 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. May 31, 2013 at 15:53

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