'Outsourcing Is Stupid'
But alas, the sacrifices are frequently worse than the problem.
While it may be cheaper, someone located 12 time zones away who doesn't understand the internal customers you support or even speak your language is really hard to manage. And it is particularly hard to collect and share user community feedback when there are time zone, language and corporate culture differences between you and your outsourcer.
It's no wonder that EDS now has a whole division of consultants dedicated to helping companies figure out how to manage the costs and quality of their outsourced projects. The horror stories are well documented. Some experts now claim that programs developed off-shore are 35%-40% buggier than those developed in-house. (Source: DiamondCluster Consultants, October 2003)
Most companies can't accurately measure the productivity and costs to develop internally. The real costs are more than just wages. Factor in project management fees and resource usage, DBA time (usually at off hours, which has other costs like stress and employee productivity associated with it), bug fixing and the increase in Q&A/testing, both with your outsourcer and your own acceptance testing.
Even costs like telephone and overseas shipping can be a factor. And with off-shore outsourcing, the development cost differential eventually evaporates as we've seen in manufacturing industries as they move from one country to another. Balance those total costs with resource drains like language barriers and end-user feedback integration, as well as flexibility on the project schedule and the end result can make the case for outsourcing much less attractive.
So what is a budget-challenged IT director to do?
The alternative is to keep the work in-house, let software tools do a lot of the heavy lifting for the routine infrastructure programming, and focus developer resources on the unique and career-building code that gives the application personality and dimension. This solution is modern code generation.This is not the code generation of years gone by where the code was difficult to understand and impossible to modify. Modern code generation offers a viable alternative for the IT direct who wants to save time on development and testing; reduce bugs; redeploy senior developers to high priority tasks; and maintain control.
Turning your web-based application vision into reality is a path filled with long nights of mindless infrastructure coding. Unless battling ASP.NET and writing SQL are your passions, you probably would rather focus your own energy -- and that of your senior developers -- on the unique application logic that gives your application personality. There have been lots of promises over the years to automate this process, but many came with baggage as well as benefit. Let's look at one such promise that has taken on modern proportions, code generation.
Although code generation is a promise that everything from IDEs to HTML editors make, advanced code generation can quickly create customized data grids for the .NET Framework that let developers effectively solve the problems of complex user interfaces, sophisticated data entry and large data sets.
The key to modern code generation is it attempts to generate only the portion of your application amenable to automated code generation and not the entire application. But that portion is frequently 70%-90% of your code. If you can generate 70% to 90% in just 5% of the time, the cost economics of application development switches back in favor if in-house development.
If you then add the overhead management costs of managing a remote project, off-shore outsourcing actually is more expensive, probably by 25%-35%. The point isn't to show code generation is cheaper; it's to show you need at least a 4-to-1 labor cost differential, i.e., a college educated off-shore software developer making $8 per hour or less.
Generated code should do what you want outsourcing offshore to do. It can and should match the caliber of code written by senior developers -- the developers you wish you could clone. Some of the scalability and performance provided by today's code generators are the ability to run on multiple servers, concurrency management, and optimized application performance in a .NET environment.
All of this means just one things: outsourcing is stupid when you can do the work cheaper at home.
Alan Fisher is co-founder and Chairman of Iron Speed, Inc., maker of Iron Speed Designer, the popular application generation software for building Microsoft .NET web applications. The pain of building enterprise-class web applications from scratch inspired Alan and his partners to launch Iron Speed and simplify and accelerate web application development, particularly for the growing number of .NET web application developers. Please send comments or ideas to Alan at email@example.com.
What do you think? Does the author have a point? If so, we'd like to hear about it in our IT Management Forum.