In 1950 the Union of Japanese Scientists and Engineers hired W. Edwards Deming to teach them how to manufacture high-quality goods. American industry, which dominated world trade at the time, ignored him.
While Ford, Chrysler and American Motors searched for strategies to counteract General Motors’ dreaded tail fins, Toyota and Nissan (then Datsun) achieved the unthinkable. Through a combination of low prices and high quality, the product of lower labor costs and Deming’s Statistical Process Control (SPC), they grabbed marketshare and mindshare until the American automobile industry was in full retreat.
It still hasn’t fully recovered, nor has the rest of America’s manufacturing economy, although Japan Inc., has given way to a variety of Asian manufacturing powerhouses.
Substitute the Software Engineering Institute’s Capability Maturity Model (CMM) for Deming’s SPC, India’s lower cost of labor for Japan’s, and the software industry for manufacturing. The parallels are hard to ignore.
Many Americans, hearing phrases like global sourcing or offshore outsourcing, think the whole issue is one of American employers selling out high-quality U.S. workers for cheap foreign labor. And yes, Indian (and Russian, and Chinese, and so on) programmers do work for a lower hourly rate.
But that’s only half the story. The other half is that the global sourcing concerns, and in particular Indian companies, have bought into CMM and its process-driven approach to achieving high-quality code. Their American counterparts never pursued this strategy in spite of mounting evidence that it works, at least from the perspectives of programmer productivity and programming quality.
Which is to say, we got ourselves into this mess.
Whose fault is it? Put on a blindfold, spin in circles, and take the blindfold off again. Chances are you’re looking at one of the culprits. American management lacked the will to implement strong software quality processes, American programmers resisted the whole notion as it smacked of regimentation and suppression of creativity, and American executives couldn’t be bothered with such trivial matters when everyone knew America held an insurmountable advantage when it came to information technology.
There’s plenty of blame to go around, and not much point to assigning it. The reality is as simple as it is inescapable: For an increasing array of information technology tasks, offshore suppliers provide more value than on-shore suppliers or in-house staff.
What’s the solution? Predictably, some organizations are pursuing the require-longer-hours strategy that trades off cost for quality instead of improving both.
A more likely solution would be for all remaining American code factories, whether they be internal IT shops or software vendors, to institute crash CMM implementation programs.
It’s unlikely to do much good, though, and very likely to fail, for three reasons.
First, doing so would be a game of mirror chess, and mirror chess always loses. There’s little advantage to pursuing a strategy that keeps you a step behind your competitor.
And then, most adoptions would be half-hearted at best: The do-the-same-thing-the-same-way-every-time mentality required by SPC and CMM just don’t seem to be part of the American character. Our national success has had more to do with rule-breaking than rule-following, after all. A strategy that embraces our culture is far more likely to succeed than one calling for radically changing it.
The third reason to avoid this direction is that nobody has much of an incentive to invest in it. In a country that has decoupled its capital and labor economies, those investing capital are more than happy to send programming work offshore. The best-case outcome of a CMM program is insufficient: Parity in code production and quality, and a labor force that’s still seriously overpriced. Compared to partnering with an Indian company that can deliver high quality and low prices now, what’s the point?
If there’s hope for the American software industry, it’s in software design and delivery models for which CMM, or at least CMM as practiced by the global sourcing firms, is irrelevant.
For the most part, the global sourcing concerns employ methodologies that strongly separate business analysis, software design, and coding. The geographic distance between the business process owners and end-users who define the need and the programmers who fulfill it requires this.
Any American firm that wants to establish a competitive edge should pursue alternatives that minimize this segmentation of effort. While the ingredients of a solution have been floating around for some time, a mature version doesn’t yet exist. But that’s good news.
Because it plays to our most important strength: Knowing when and how to break the rules.