Sunday, April 13, 2008

Mass Production Is Not Mass Design

There is an interesting discussion going on, which was initiated by Eric Newcomer's blog 'Have We Got it all Backwards with Software Assemby?'. He analyzes and compares the production of software with the Ford assembly line. His conclusion is more or less accurately summarized as that software composition and assembly is or should be the harder part once the pieces needed for the product are standardized through interfaces.

From my own experience I would like to add that this is the ideal situation, which everybody thrives to achieve. At Siemens we set out with a completely new SOA based platform to get there as quickly as we can. To a certain extent, it is actually achievable.

However, for the most part I have to agree with Hal Hildebrand's response in his blog 'Mass Production Is Not Mass Design'.

Software Design is the issue, much more than production.

Well, one might come to the conclusion that Eric had something else in mind what he called 'production'. If I understand it correctly, he meant the construction of a product based on existing software pieces - call them components if you want. In Hal's blog, this seems to be reduced to the act of burning a DVD, which is not as skillful as assembling a product for installation.

I remember the lectures of my professor Dieter Rombach of University of Kaiserslautern. He is heading the Computer Science research group for Software Engineering. In the classes he compared the engineering process of writing software products with that of the engineering of a house or a machine. It is more than a decade ago, since I heard him talking about it, and unfortunately, nothing much seems to have changed since then.

Architecting a good software product is a creative process. In a sense, we (software architects) are all artists. The same is true for the architecture of a house. It takes skills, experience, and inspiration to come up with something that works and sells at the same time.
We are relying on standardized building blocks to construct the product, and we may even outsource some of the construction, but the design will always have to be done by a (small) group of highly trained professionals.

"If you earnestly believe you can compensate for the lack of skill by doubling your efforts, there's no end to what you can't do." --

Unfortunately, we are no where close to the level of standards as they are in the engineering fields. With our current processes and quality assurance programs in most companies, I can only hope that I will never need a pace maker and no business manager is coming up with the brilliant idea of re-using some software for it to save some bucks.

As you were...