16

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?

Seth
  • 629

10 Answers10

40

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.

Walter
  • 16,136
  • 8
  • 59
  • 95
30

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.

Dean Harding
  • 19,911
18

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.

Steven Evers
  • 28,180
13

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.

Dennis
  • 8,267
  • 6
  • 38
  • 70
adamk
  • 408
10

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.

Bob Murphy
  • 16,098
9

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.

Nicole
  • 28,243
3

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.

JGKelly
  • 121
  • 3
3

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.

guiman
  • 2,088
  • 13
  • 17
1

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.

Tulains Córdova
  • 39,570
  • 13
  • 100
  • 156
1

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.

dukeofgaming
  • 14,023
  • 6
  • 52
  • 77