Obviamente, algunos programadores están ansiosos por mostrar cuán inteligentes son haciendo un código escandalosamente complicado que nadie puede entender. Otros programadores están disparando a un nivel tan alto que la complicación en las soluciones es una evolución natural.
Uno de los peores códigos que he visto fue un método que tenía más de 2000 líneas de código. Sin duda, este código era complejo, pero también era muy pobre.
Creo que un buen programador evita un código demasiado complicado. Esto incluye evitar la tentación de forzar que un patrón de diseño se ajuste a una solución que realmente no lo requiere. También incluye evitar objetos de Dios, botones mágicos, optimización prematura, generalización prematura y otros antipatrones.
Estoy constantemente refactorizando y buscando oportunidades para simplificar mis soluciones porque el crecimiento de la complejidad es algo orgánico. Como muchas otras cosas orgánicas, debe recortarse y podarse si queremos que siga siendo utilizable. Odio tener que interactuar con soluciones demasiado complicadas porque con una mayor complejidad aumenta la probabilidad de romper el código.
Creo que la legibilidad es el elemento más importante del mantenimiento del código, y las soluciones demasiado complicadas casi siempre disminuyen la legibilidad y aumentan los costos de mantenimiento.