Relative advantages

Imagine this. You are running a company in the travel business. Customers contact you to buy a trip from A to B. Typically this is done using state of the art web technology, a web browser communicating with a server which hosts a ‘travel’ application.

Through your contacts you have heard that almost all your competitors are planning on launching a new feature in a year from now. Customers will be able to buy trips from a mobile device, a cellphone for instance, very easily. Marketing says that your market share will be dwarfed if you don’t follow.

You start to think.

You know your budget for the web is limited, you can’t get any more money. It is in fact very strained. “… But, hey, I can use it better”. You decide to outsource the development of this development effort instead of running it as an in house project, to cut costs. And in the same stroke you can add developers, thus gaining speed. You’re a genius!

Is this really a valid alternative?

All of you who have been in a software project knows that adding people to a project scales poorly. If at all. But for the arguments sake, lets say it’s a linear function. Double the developers, double the speed. In effect, you have just gotten a temporary advantage by outsourcing anyway.

I say temporary because your competitors might do the very same thing. And this is actually what is happening all around us. And outsourcing is so common nowadays it is called ‘best practice’ by many. Or ‘good practice’ by the cautious.

Absolute advantages

I consider advantages of an absolute nature to be more desirable. So, how do you gain a real advantage then? In this particular case, an improvement of your own organizations performance would be an ‘absolute advantage’. That is, an improvement in your own performance, compared to the performance of your own organization, at a past time. Let us say that you deploy 4-5, running, tested features (RTFs) a week. In order to improve you would have to raise that number. You would have to deploy more RTFs, not lower the costs by, for instance, outsourcing your software development to a cheaper alternative. That I would count as a relative advantage.

What is the problem with outsourcing?

If you where looking at the bigger picture, which you should be doing, you would notice that you are sub-optimizing. You are trying to cut costs and maybe increase your productivity at the same time. You are not managing the flow of new functionality which would be the better approach. As I pointed out earlier, outsourcing might just work. That is, it may be a success in itself. In this example though, what you really did is just plain ‘waste outsourcing’. You found out that development costs could easily be cut in half and moved it to another country.

At best you have just begun draining your organization of domain knowledge. Why? Because once you have started outsourcing something you are not going to be learning a lot more about that.

Oh, one more thing. By outsourcing your waste, you have just made sure that there is no incentive for improvement. That would be suicide for the organization you’ve just started doing business with. In fact it will probably be more wasteful over time.

What will it be?

If you are serious about using IT to do business more effectively you should do all your development in house. You should start looking at the software development process and work out ways to make it less wasteful.

Stop outsourcing your waste and make IT an integrated part, a first class citizen, of your business!

About Ola Ellnestam

Agile Coach, Systems developer, Agile Practitioner and father of three.

5 responses »

  1. I like your point. If you give the incentive of status quo then that is what you’ll get. As a complementary point, I think down-scaling is a more interesting alternative to up-scaling. Do less, and do it well.

  2. Ola Ellnestam says:

    Oh yes. I’m very very tired of the whole scaling agile thingie.

  3. Jelena says:

    You have a few good points here, Ola.

    I am sure that in some cases offshoring is working well and pays off. But not as often as one might think. Part-offshoring is a good thing, IMO, if it is a part of a bigger plan – expanding your company and taking new markets, not only “reducing the costs” policy.

    My big problem with outsourcing is treating other humans as resources, which happens very often.

    Now, there is outsourcing and offshoring, which became interchangeable terms lately. “Offshoring is the transfer of an organizational function to another country, regardless of whether the work is outsourced or not.”, says Wikipedia. With offshoring there is a distance involved, which usually brings even greater problems and costs.

    What is the most common case today, companies move their development departments offshore – often to India or China. If offshoring is bringing some financial advantages, these are often far smaller than first estimated due to hidden costs.

    There are also non-financial costs to businesses from offshoring, as draining your on site company of domain knowledge (as you mention in your example), lowered visibility on the on site market, reduced morale and, as a consequence of that – productivity from the remaining staff, communication related issues and delays.

  4. Ola Ellnestam says:

    Thank you Jelena,

    You nicely frame more concerns I also have.

    I have given this more thought and after reading the post a few more times I see that it needs clarification.

    I will revisit this topic!

  5. Jelena says:

    Please do! This is such a large and important topic. I just wanted to post a little comment and see how that went … blahblah 🙂 Hard to stop writing about the subject!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s