Eric Newcomer, chief technology officer at Iona, has an intriguing post up on his Iona blog this week. He says
Back in the 90s, I was on a big project to standardize enterprise software...We often used the "Henry Ford" analogy, which relates to the impact standards for interchangeable parts had on hard goods manufacturing. The Henry Ford analogy says that the hard job in mass assembly is getting the interchangeable parts standardized - thereafter creating the moving assembly line is the easy job.
He goes on to make the good point that the industry basically has what was thought to be the hard part done, designing the interchangeable parts (standardized APIs, etc.), but has not seemed to have reaped the rewards.
A lot of discussion takes place on his blog -- and on a few of the places where his blog is syndicated -- the gist of which goes like this:
I was also involved in or did research on many of the "framework" projects that Newcomer talks about. Our analogies at HyperDesk and elsewhere were the invention of the cotton gin replacing by-hand separation of the seed and the fiber, and the mechanization of the spinning wheel. Here in New England along Route 128, the latter was done mostly by the Merrimack and Charles rivers and other streams that turned muddy crossroads into mill towns (one of the towns being Maynard, Mass., famous in venture-capital circles for the "old mill building" headquarters of Digital Equipment Corp.). These two important and interrelated events in the Industrial Revolution happened around the same time in the late 18th/early 19th century, 100 years before Ford built the first "woodie" out of carefully specified packing crates.
I contend that the Ford analogy, the spinning wheel analogy and the cotton gin analogy are still good. Software is not different. It's just that no one in the software industry followed the interchangeable parts analogy to its logical conclusion and built a software assembly line or a software mill or a software gin. Software is still a cottage industry, a horse-and-buggy operation, and hard one-off manual labor.
The reality is that software development today is still figuratively where shoe manufacturing was in the 1860s when my great-great-grandfather beat leather around a last in what is now my sister's kitchen. A generation later, his son founded Plymouth Rubber to make soles and heels with a machine. Is the software industry still a generation away from automating?
Service-oriented architecture can be the underpinning of such a factory -- or assembly line or ... pick your analogy -- because it depends on both the interchangeable parts and the automation of their orchestration. Without automation, no meaningful service level agreements can be reached and it will not be possible to scale to the degree required.
Even if your supplier isn't thinking "software factory" yet, it is not too early to get with the program within your enterprise, or better yet, across your whole industry. Don't wait another generation. At least in the United States, we are running out of the 20th-century version of blacksmiths, agricultural workers, and women who like to work at home -- at least spinning yarn.