Accidental complexity is an avoidable problem of complexity in computer programs or their development process (computer programming). While essential complexity is inherent and unavoidable, accidental complexity may be caused by misunderstanding of problems, ineffective planning, or low priority placed on a project. Many prototypes suffer from accidental complexity, because the programmers create those prototypes as a way of learning about the matters they face. It is also very common to see accidental complexity occur because the programmers and architects seek elegant solutions which frequently become unnecessarily difficult to implement and maintain.
Accidental complexity is an example of an
Anti-pattern.