Jefferson Andrade, creio que Programação Orientada a Objetos,
aplicando Padrões de projeto pra resolver as abstrações e técnicas como "Object Calisthenics" e "Tell don't ask" pra programar linha a linha
resolvem o problema da complexidade de código, porém, criam a
complexidade de mão de obra, uma vez que é preciso conhecer bem
esses conceitos.
Contudo, pode ser que estejamos falando de coisas distintas, uma vez que você não cita
como está construindo sua aplicação.