Accidental complexity

En Computación, el antipatrón de diseño Accidental complexity o Complejidad no indispensable describe la situación a la que se llega cuando en el desarrollo de una aplicación se selecciona un camino de complejidad mayor que la indispensable.

Una situación como esta, si no es reconocida, puede motivar la cancelación del proyecto.

[1]​ Muchas veces la complejidad innecesaria viene de despreciar las soluciones más directas por considerarlas demasiado obvias.

En este caso se introduce en el proyecto la complejidad innecesaria de deber mantener código en varios lenguajes, y sobre todo una parte del código en lenguaje de bajo nivel.

Para evitar este patrón, se puede incluir en el diseño, consideraciones razonadas de costo (tiempo/espacio) esperado, de manera que si estos costos son superados, se entienda si es en el diseño o en la realización donde está el problema.