I've been a professional C, Perl, PHP and Python developer.
I'm an ex-sysadmin from the late 20th century.
These days I do more Javascript and CSS and whatnot, and promote UX and accessibility.
Generally, they're not. They're bad at manually testing their own code, because they're too close to it. Kind of like how an author writes a story, and then a proof-reader picks apart all the obvious mistakes they didn't notice.
Developers can be good at writing tests, they can be good at anticipating strange conditions and at writing their code defensively, but they can't always see the wood for the trees.
Generally, they're not. They're bad at manually testing their own code, because they're too close to it. Kind of like how an author writes a story, and then a proof-reader picks apart all the obvious mistakes they didn't notice.
Developers can be good at writing tests, they can be good at anticipating strange conditions and at writing their code defensively, but they can't always see the wood for the trees.
Indeed, so are you saying there is no cure?