If you?re not worried about offshore outsourcing for development, you should be. It?s not just that their labor costs are 25% of what they are domestically, or that even at those prices you are getting bright, well-educated people. The real threat is that they are turning our strengths ? creativity, individuality, nonconformance ? against us. What they may lack in proximity, experience and communication skills they are making up in predictability, stability and quality.
It?s no accident that most offshore development companies boast SEI CMM levels of 4 or 5. They have figured out that in order to scale their organizations into veritable software manufacturing factories, they have to follow processes that don?t depend on the genius of a few creative but cranky Einsteins. In other words, they are learning from our own history: Ford made the automobile affordable and reliable by turning its manufacture into a process based on consistency and repeatability.
In fact, the automobile is an apt illustration of this paradox. While America was the cradle of its invention and the first to enable mass production, we became so enamored of sexy chrome and tail-fin designs that our quality dropped while our costs rose. We all know what happened. Other countries started producing ugly and simple but cheap and reliable cars that devastated our auto industry, and once they got a foothold they caught up ? some would say passed us ? on aesthetics as well.
So what does this mean, and what can we do about it?
Invention vs. Production
While no one can question that the US holds more patents than any country in the world, or that we are the vanguard of all things new and revolutionary, it is necessary to draw a distinction between when invention is appropriate and when it is not.
For example, if you are trying to solve the problem of switching fiber-optic phone calls without converting back and forth into electricity, invention is essential because the technology does not yet exist. But on the other hand, if you are developing an application for order processing or inventory management, there are no technical mysteries to solve: the process is understood, the enabling technology exists. All that remains is to produce a system that works, and to do it on time and within budget.
But the problem in many companies ? as I see it, anyway ? is that the developers look at each new system as a license to explore the latest and greatest of every new language, technique and idea. I can?t tell you the number of times I have seen bleeding edge technologies shoehorned into highly inappropriate projects just because the developers wanted to add one more notch to their resume belt. Not once have I seen a development group propose an architecture and approach on the basis that it would be rapid to develop, easy to maintain, and inexpensive to operate.
In fact, whenever I hear someone describe one of their developers as a genius, I instinctively cringe. Not because I don?t admire talent, but because I know what is coming. Most geniuses love to create but not to maintain, and it is painful ? if not impossible - for mere mortals to modify code written by a genius. Truth be told, it is usually easier to rewrite a module than to decipher the hidden meaning behind another programmer?s idea of elegant abstraction.
This doesn?t mean you want dumb developers or that you should just swear off this whole Web-fad and retreat to the mainframe. But it does mean that as developers we should realize that we are producing a product for a price, and that the value of the product is not what it costs to produce, but what the functionality is worth.
You don?t need Picasso to paint highway stripes.
Creative Conformity
So how do we take advantage of our talent for creativity without sacrificing the conformity that makes a development process work?
Let?s hearken back to the auto industry. We didn?t compete by driving down the cost of our labor, we competed by instituting assembly-line robotics and other labor-saving solutions that drove down the cost of manufacturing while improving the quality. We used our brains against their brawn.
In software, this means turning our considerable creative forces to the problem of producing better software faster and cheaper. Whether this means the resurrection of the 80?s CASE tool paradigm or the next level of reusable components or some other idea yet to be discovered is up for debate, but my instinct tells me that Henry Ford had it right: if you focus on the real goal ? affordability ? instead of how to offer a rainbow of colors and interiors, you might end up with nothing but black cars?but millions of them.
But until the next new thing comes along, you might try the radical step of basing your next development project approach on how to get the job done for the least cost and highest quality. Even if it means writing in COBOL.