One of the best examples of industrialization in this century includes car manufacturing, and invention of assembly lines. Each parts of the car gets manufactured somewhere else and finally gets assembled at one place. The parts are made with such a perfection that even robots can put together various parts in no time. You might be wondering, yeah I know this and everybody knows this fact, how is this related to this software architecture blog ? Okay, here is what I wanted to ask, can the software be developed in a similar manner as a car gets manufactured ? i.e. various components can be designed and developed at various places, and shipped to one location. Some automated tools can in turn assemble these components to build an application. Finally a final test can be done by the QA team before releasing the product. I believe it is difficult to implement this idea in a software industry keeping our current understanding and knowledge in mind, however it is not impossible. Here is an article that provides more insight into the topic I am discussing.