jueves, febrero 17, 2005

Cadillo's Theorem

Industrial-philosophical advice for whoever might one day have to go from Computer Science to Industrial Engineering:
Industrial processes are not modular.

The modularity paradigm sounds good and – sometimes – works well in Computer Science, but it is a mistake to try to apply it to industrial processes.

Modularity is elegant: as long as interfaces that connect a component in a system to the others are clearly defined, the component can be replaced by another that performs the same function, that receives the same type and quantity of inputs and produces the same type and quantity of outputs as the original component. The inner workings of the component don't matter to the rest of the system, which allows for important optimizations, cost reductions, etc. inside the component.

Industrial processes are not as elegant. Replace a machine, a factory, or a subprocess X for a new one, X', which does the "same thing", only "better" and you will find that the change has important repercusions both forward and backward throughout the entire process. Here are some examples:

  • X' needs its input to be at a certain temperature; X didn't have such a requirement. The phase previous to X must be modified so that X' works properly.
  • X' eliminates one operator, but that very same operator was used to carry out some task Y at a later phase in the process. Hence, the operator cannot be removed, and the change from X to X' does not increase productivity.
  • A change in a functional ingredient of a product makes another, non-functional, ingredient behave differently. This happens commonly in food manufacturing or industrial kitchens: a change in a non-flavor component can produce a flavor change (because the non-flavor ingredient had a synergistic effect on a flavor ingredient, or simply because the non-flavor ingredient, despite being categorized as such, does have flavor component).

Anyone who has replaced a machine for a "better" one at a factory, or who has had to outsource some function will understand.