I thought this was a pretty good insight from Jeff Atwood over at CodingHorror…
You can tell a competent software developer from an incompetent one with a single interview question:
What's the worst code you've seen recently?
If their answer isn't immediately and without any hesitation these two words:
My own.
Then you should end the interview immediately. Sorry, pal.
I love the brutal efficiency of the question, and find it to be revealing in the same way as the “on a scale of 1 – 10, how would you rate yourself” question. This question isn't quite as efficient -- there are more than two answers -- but any answer that isn't actually between 1 and 10 should end the interview. If the applicant doesn’t realize that 15 is not less than 10, what can you possibly hope to salvage by continuing?Yes. I’ve heard, with my own ears, somebody seriously rate themselves higher than 10 out of 10. I'll never forget the claim: "On a scale of 1 to 10, I'm a 13. My SQL Server skills are that good." Of course the candidate was hired (it wouldn't be much of a story otherwise) and the consequences weren't pretty. Years later, the team that made the hire is still trying to overcome the reputation of minimal competence, unresponsiveness, and outright contempt that this individual bequeathed them.
On a lighter note, a little tidbit about the most overlooked risk in software engineering (again, from CodingHorror):
Q: What is the most often-overlooked risk in software “engineering”?
A: Incompetent programmers.
My name is “Bob” and I’m a developer. Now let’s begin planning around my incompetence.