I think it's partly that but I don't think it's purely about self confidence and it isn't limited to metaprogramming. I think it's also a market driven effect. Developers will see jobs advertised or that require doing X that pay a lot more than what they currently do and think "I should gain some experience in X so I can sell it at my next job interview". Most developers have probably felt this instinct at some point even if they're plenty self confident.
I don't think it's such an easy problem to solve because, whatever X is, developers will probably have to be a fuck up at using it first. Then they get good at it. The higher pay is going to keep them motivated to use it and it's not usually practical to tell programmers that they should put their career development on hold because it's torturing your architecture.
Furthermore, sometimes X will more or less do the job ok even if it wasn't strictly necessary. In that case, was it really such a bad thing?
Anyway, I don't see it as something to be embarrassed about. Everybody screws up and learns from it.
I don't think it's such an easy problem to solve because, whatever X is, developers will probably have to be a fuck up at using it first. Then they get good at it. The higher pay is going to keep them motivated to use it and it's not usually practical to tell programmers that they should put their career development on hold because it's torturing your architecture.
Furthermore, sometimes X will more or less do the job ok even if it wasn't strictly necessary. In that case, was it really such a bad thing?
Anyway, I don't see it as something to be embarrassed about. Everybody screws up and learns from it.