Tag Archives: principles

Separate concerns…but not too much!

Separation of concerns is a fundamental design principle whose application can provide significant benefits (also in fields far beyond software). But these benefits become smaller the more we apply this principle and at some point we may actually cause damage.

An example: Categorising things can help us to achieve a better and/or quicker understanding of the situation at hand. Initially, introducing additional categories improves understanding. As we add more categories, the improvements of our standing become smaller while the difficulties of deciding which category the thing at hand belongs to increase.

With separation of concerns (as with many other things) too much of a good thing can actually be pretty bad.