Accidental complexity
In Computing, the design anti-pattern Accidental complexity or Non-essential complexity describes the situation reached when an application development path is selected. more than the necessary complexity. In some cases, complexity is inherent to the problem, but it also happens that it is introduced due to ignorance or planning problems. A situation like this, if not recognized, can lead to the cancellation of the project.
Many times, unnecessary complexity comes from disregarding the most direct solutions, considering them too obvious. At other times it comes from the creation of libraries by groups that do not use them, so that they do not perceive the costs unnecessarily introduced into them.
Another example of accidental complexity during the development process occurs when it is decided to program at the machine code level a part of a project whose speed (greater gain by doing this) does not appreciably affect the speed of the project as a whole. In this case, the unnecessary complexity of having to maintain code in various languages, and especially a part of the code in low-level language, is introduced into the project.
To avoid this pattern, reasoned considerations of expected cost (time/space) can be included in the design, so that if these costs are exceeded, it is understood whether the problem is in the design or in the implementation.
Contenido relacionado
Formal language
File extension
Web page