Phil mentions (and links to) a study that shows how people are unaware of their own incompetance. I would add what I feel is an important corrolary to this: that people highly competent in one field are often totally incompetent in a different field, but think that they are "smart" and therefore competent in the other field as well. For example, Bill Gates is a world class expert at getting rich, but he's totally incompetent in the area of diet and exercise, as evidenced by the pot-belly he displayed on the cover of a recent issue of Business Week. However, if you were to ask Bill about it, I bet he would think he's very competent. I think so because he invests in biotech companies, and he could tell you a lot about genetically modified food and whatnot (he wrote an article about GM foods for Time magazine).
Another point related to this: you should never trust a person's self-assesment of any skill in a job interview!
How many times do people ask, "How would you rate your C++ skill" (or whatever) in job interviews? Don't ask questions like this. The answers are completely useless, as both the competent and incompetent will give the same answers. We routinely find that people interviewing for programming jobs lack the skills they claim to have on their resumes. We can expose this by asking them to write the code to solve a problem that lies entirely within the domain that they claim to understand. Something like "query the database for a list of names, and generate the HTML to put it in a listbox." If the applicant claims to understand both the database and web programming technology, they should be able to do this. It's amazing how many people can't.
-- Wayne Radinsky, November 23, 2000
> If a product is being developed rapidly
I think you misspelled
"If a project is poorly planned and badly executed"
Hope this helps.
p.s. Any project where "average" programmers are having to spend "nearly their entire work day reading and understanding new code" is in serious trouble.
-- Sean Sollé, November 23, 2000