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.