Accidental (or incidental) complexity is complexity that arises in computer programs or their development process which is non-essential to the problem to be solved. While essential complexity is inherent and unavoidable, accidental complexity is caused by the approach chosen to solve the problem.
While sometimes accidental complexity can be due to mistakes such as ineffective planning, or low priority placed on a project, some accidental complexity always occurs as the side effect of solving any problem. For example, the complexity caused by out of memory errors is an accidental complexity to most programs that occurs because one decided to use a computer to solve the problem.
While accidental complexity is to be minimized in any good architecture, design, and implementation, excessive accidental complexity is an example of an anti-pattern.
Famous quotes containing the words accidental and/or complexity:
“Many a reformer perishes in his removal of rubbish,and that makes the offensiveness of the class. They are partial; they are not equal to the work they pretend. They lose their way; in the assault on the kingdom of darkness, they expend all their energy on some accidental evil, and lose their sanity and power of benefit.”
—Ralph Waldo Emerson (18031882)
“The price we pay for the complexity of life is too high. When you think of all the effort you have to put intelephonic, technological and relationalto alter even the slightest bit of behaviour in this strange world we call social life, you are left pining for the straightforwardness of primitive peoples and their physical work.”
—Jean Baudrillard (b. 1929)