Tag Archives: cost

Why Outsourcing Doesn’t Work

40 years ago, Fred Brooks told us in his book The Mythical Man-Month why full outsourcing couldn’t work. Since outsourcing was rare and difficult back then, nobody took note. Today, advances in communications and technology make outsourcing much easier. That doesn’t mean it will work.

The reason is that IT work is not uniform. There are some easy tasks (rapidly getting automated) and some hard tasks that take expertise and judgment. And most organizations are outsourcing their work to regions where IT professionals haven’t had the time yet to develop expertise and judgment.

Cost vs CompetencyIn a mature IT market, a wide range of skills exists, from basic to very advanced. As you need more advanced skills, the cost goes up, because there are fewer IT professionals with the requisite number of years of learning and experience.

In a new IT market, you can get basic competency cheaper. But because most IT professionals in these markets are relatively inexperienced, advanced skills are very rare, very expensive, and might not even exist.

The outsourcing fallacy is to think that you can move an entire, complex IT operation offshore. You can save money on moving simple tasks to regions with lots of competent but inexperienced IT people. But advanced skills won’t be available. So unless you can very cleanly separate simple tasks from advanced tasks, the communication overhead necessary to ensure that the right people get the right task will eat up any saving.

Think you can save money by outsourcing? Maybe you can. But many IT organizations haveĀ found they couldn’t. Get in touch if you need help figuring out the right level of outsourcing for your tasks and your organization.

Hardware is Cheap, Developers are Expensive

When advising customers on ADF projects, I often find development environments where many or all developers are working against the same database. That introduces a hard dependency between different parts of the project – if one developer deploys a defective PL/SQL package to the database, nobody else can run the application.

This approach made sense back when hardware was expensive and databases had to be managed by high priests in glass-walled, climate-controlled rooms. Today, you can buy a development machine with a quad-core i7, 16GB of RAM and a 256GB SSD disk for $1,200. This machine can easily run an enterprise-class database, application server and IDE. Additionally, virtualization software allows you to build, distribute, and reset environments easily.

It doesn’t make sense to have expensive developers work on old hardware. As soon as they have lost a day due to an inflexible development environment, you have lost more than the cost of a proper development laptop.

Don’t waste expensive developer time because you’re too cheap to buy proper hardware.

Pay peanuts, get monkeys

I am often contacted by organizations who wants me to do consulting or architecture work. Some of these inquiries come with a stipulated maximum hourly rate, typically fairly low.

There are two problems here:

  • Paying by the hour creates an incentive for the consultant to solve the problem as slowly as possible
  • The savings from hiring a poor or mediocre architect is completely dwarfed by the additional cost of the poor or mediocre architecture he instigates

Do you think Richard Branson instructs Virgin Galactic HR to “get the cheapest astronaut you can find”?