In my experience, it's always the junior who shouts "This could all be so much simpler!".
Vis-a-vis the conversation that has ensued from this statement, I'll offer the suggestion that the real seniors are the ones who don't make blanket statements one way or the other, and appreciate the distinction between incidental complexity and intrinsic complexity. Some times, the problem itself is simply complex and requires a complex solution. One should not rush to eschew complexity in those cases. Other times, the complexity is incidental and is brought in by the choices of the developers. In (many|most|all|??) of those cases, we should try hard to avoid that complexity.
In my experience, juniors almost never shout that. They are still living within the managed "website in 0 lines of code!" world the framework purports to provide.
And mids just think that's what the job is and nothing to do about it. It's not 1985 any more and 1985s tools aren't enough to write a cloud db backed ios app.
It's the seniors, and the good ones at all levels even if they aren't good at it yet, who object to complexity on a pure lack of elegance basis. They value elegant solutions and complexity is usually the ugly brute force solution that's merely complex when it's claiming to be sophisticated.
Even if they don't have any idea what to do differently, they just know that something surely can't be sensible just on the face of it. I would hope everyone at least gets the ancient "hello world by different levels of programmer" joke, and can see when it starts happening for real around them.
> It's the seniors, and the good ones at all levels even if they aren't good at it yet, who object to complexity on a pure lack of elegance basis.
I actually think the opposite of that. Experienced programmers, from my observations, have learned that complexity is an inevitability that requires management (all nontrivial programming is really an exercise in complexity management, after all). They resist adding complexity unnecessarily, but also recognize where it can't be avoided and opt for managing it instead.
In the real world, "elegance" is an unattainable ideal that is to be admired and desired, but experienced devs recognize that pushing too hard for it will result in the exact opposite of it.
Vis-a-vis the conversation that has ensued from this statement, I'll offer the suggestion that the real seniors are the ones who don't make blanket statements one way or the other, and appreciate the distinction between incidental complexity and intrinsic complexity. Some times, the problem itself is simply complex and requires a complex solution. One should not rush to eschew complexity in those cases. Other times, the complexity is incidental and is brought in by the choices of the developers. In (many|most|all|??) of those cases, we should try hard to avoid that complexity.