By Lev Manovich

When we think of modularity today, we assume that a number of objects that can be created in a modular system is limited. Indeed, if we are building these objects from a very small set of blocks, there are a limited number of ways in which these blocks can go together. (Although as the relative physical size of the blocks in relation to the finished object get smaller, the number of different objects which can be built increases: think IKEA modular bookcase versus a Lego set.) However, in my imaginary scenario modularity does not involve any reduction in the number of forms that can be generated. On the contrary, if the blocks themselves are created using one of many already developed software-based designed methods (such as parametric design), every time they are used again they can modify themselves automatically to assure that they look different. In other words, if pre-software modularity leads to  repetition and reduction, post-software modularity can produce unlimited diversity.

Software takes command, 2013