I was trying to explain to non-software developers a certain point, and came up with one of my typically bad analogies.
Though I hate the term, I guess I have to admit that I qualify as being a 'foodie.' Though I tend to discount some of the more political aspects of it, I buy into the whole food to table thing, cook for myself, believe in using local ingredients, and all that stuff.
Because I am lucky enough to be financially successful, I enjoy the occasional visit to Michelin starred restaurants. I also remember being, in a much less financially successful time, a line cook in your basic chain restaurants. As far as I can tell, I was decent enough at it.
There are software developers who think they are Michelin starred chefs and not line cooks. Some of them are probably talented enough to be thought of as such, but few are actually ever in a place where they can practice their craft as much as they might like, and it shows. They hate to be 'line cooks' and fight against it, and generally are never happy, and it shows in their work.
But there is a reason why there are more line cooks than Michelin starred chefs, and why there are more restaurants that need line cooks. Even though it is undeniable that a Michelin starred chef can create, in some objective sense, better food than a line cook, someone who thinks of themselves that highly (and let's face it, they are often wrong about their self-assessment) would be better served leaving the restaurant they find themselves in than trying to fit into a space they don't belong.