I usually find myself being accused of making things over-complicated while I'm explicitly trying to simplify an already over-complicated system. Quite often there's some elegant unifying concept, one capable of expressing all the desired complexity, that's been overlooked while everyone's kept busy piling on new feature requests. But solving the root problem, no matter how simple compared to the existing pile of unmanageable code, is always more complex than just adding the next shiny button, so no one ever wants to do it, even if means never having to manually add another shiny button ever again.