Obviamente, alguns programadores estão ansiosos para mostrar o quão inteligentes são, criando um código escandalosamente complicado que ninguém consegue entender. Outros programadores estão disparando em um nível tão alto que a complicação nas soluções é uma evolução natural.
Um dos piores códigos que já vi foi um método que continha mais de 2000 linhas de código. Sem dúvida, esse código era complexo, mas também era muito ruim.
Eu acho que um bom programador evita código excessivamente complicado. Isso inclui evitar a tentação de forçar um padrão de design a se encaixar em uma solução que realmente não exige. Também inclui evitar objetos de Deus, botões mágicos, otimização prematura, generalização prematura e outros antipadrões.
Estou constantemente refatorando e procurando oportunidades para simplificar minhas soluções, porque o crescimento da complexidade é uma coisa orgânica. Como muitas outras coisas orgânicas, ele deve ser aparado e podado, se quisermos que continue sendo útil. Eu odeio ter que interagir com soluções excessivamente complicadas porque, com maior complexidade, aumenta a probabilidade de quebrar o código.
Penso que a legibilidade é o elemento mais importante da manutenção do código, e as soluções excessivamente complicadas quase sempre diminuem a legibilidade e aumentam os custos de manutenção.