Brian Marick had this great post.
This brings back memories of a bad, bad client I once worked for. This was while I worked for a consulting firm, so unfortunately I couldn't tell the client to F off.
Anyway...this client was a large health care system. I got the project because someone from another office said it was going to be ASP/SQL Server. Well, I get there and it turns out they want some quickie Access solution. Only problem is, it wasn't going to be a quickie solution. What they wanted was a pretty in-depth reporting system. After gathering the initial requirements, I came up with an estimate. The sales weasel and I delivered the estimate in person.
The CTO of this organization was a former Marine who probably should have stayed in the Corp. He was an ass through-and-through (don't take this as criticism of the USMC). So, I told him what the estimate was and he looked me dead in the eye and said:
“Why is it going to take that long? All you do is drop a button on a form and pucketa-pucketa, it just works.”
I held back and simply said, “Well Sir, it's the 'pucketa-pucketa' that's going to take so long”
The project turned out to be one of the most miserable experiences in my life. The main user of the system was a surgeon who made no bones about telling me that he “made a lot of goddamn money” and that he didn't need “to waste his time explaining stuff to me”.
I was finally able to pass the project off to someone else....but, it's amazing how many people think they know what programmers do. It's a 100% intellectual pursuit. It certainly isn't the easiest profession in the world. I would certainly never tell a surgeon that his job was easy, and by God, I don't need to hear from anyone how easy my job is.