Every few years I come across a company where some managers come up with the idea of a 'software factory'. The thinking is that mass production techniques and their economies of scale could bring some major cost savings.
Let us look in detail at the mass production of cars. Immediately a vision of a production line comes to mind. Cars being bolted together from thousands of mass produced pieces for very little money.
Unfortunately this vision is where most people's understanding of mass production begins and ends. The reality is far more complex. Reality uses prototyping.
When a manufacturer decides on a new line of cars, many prototypes are produced. Each prototype serving a different purpose. Some are mechanical prototypes used to design and test key new components. Some are aerodynamic prototypes. Others are ergonomic and styling prototypes.
There is one final prototype - the culmination of all that has gone before. This prototype costs tens or hundreds of millions as this has specific jigs, robots, templates and all kinds of other machines made expressly for it.
This prototype is the 'Production Prototype'. Once the millions have been spent and the prototype is complete and tested, you suddenly find that you have a production line ready to make thousands of copies of it for very little money.
Most people when thinking about applying mass production techniques to software do not understand the production prototype.
Every new piece of software is a production prototype. Software's production lines are the scripts and the disk copier.
We have already learnt most of the lessons we need from mass production in industry. In the car industry the production prototype often saves money by using an established platform and reusing existing components. In mass production every effort is made to reduce the cost of the production prototype, in software production we do the same.
Anyone who thinks that they can revolutionise software production by copying the mass production in industry are about twenty years too late. It has already happened.