I work as a freelance designer / programmer (and as a teacher). Most of the people I work for are clueless. I don't think of this as a problem. It's my expectation. Of COURSE they are clueless. That's why they want ME to design for them, program for them or teach them.
Yes, in a perfect world, managers would understand the mechanics. But it's an imperfect world, and they're not being paid to understand; they're being paid to manage. (Yes, I know, you can only manage well if you have some understanding of what the people you're managing do. Alas, that's not the way things generally work in reality.)
It's a bad idea to just be happy that you have a "dumb boss." Sure, you'll be able to get away with some goofing-off that looks like work, but ultimately it will bite you in the butt. You'll spend 400 hours working on a project and your boss will tell you to "just make this one simple change." Of course, the "simple change" will take you another 400 hours. Had he just specified that he wanted the background to be blue instead of yellow at the beginning of the project, you could have saved yourself a lot of work.
Here's what I recommend you do:
-- Communicate often. Without sounding condescending (and without burdening your boss with techno-speak), explain AHEAD OF TIME the constraints that you'll be working under. "I'm going to make many decisions based on the form that our data is in. So if we decide later to change from a flat file to database, I'll have to rewrite a lot of the code, and that might take me weeks. So before I get started, can we make a decision about the data?"
-- Put that sort of question/statement in WRITING so that you're covered. Later, if you're asked to make a massive change quickly, you can (gently) refer to your email.
If this stuff is hashed out in face-to-face meetings, write up an email after the meeting so that you're covered: "Dear boss, based on our meeting today, this is my understanding of where our project stands..."
-- Blame software and hardware. The great thing about machines and applications is that have no feelings. Really! If you prick them, they do not bleed. So if your boss says, "WHAT? You're saying you can't instantly update every record of the database so that it magically knows all the info I have in my head???!!!", just say, "Yeah, Oracle is a really stupid program. They should really update it to make it better. It sucks that we have to work with it. Oh well..."
I'm serious about this. Most non-techies have an us-vs.-them mentality about computer people. And you DON'T want to be one of THEM. Take your bosses side and let the machine be on the other side. Be the guy who is willing to be brave and fight with the horrible ogre computer.
-- Never immediatelty say that something is impossible. If your boss asks you to program his computer to make him coffee, say, "Hmmm. What a great idea. Let me research it." Then, maybe an hour later, get back to him (preferably via email) and say, "I've researched the coffee thing and unfortunately it doesn't seem to be possible. Here's why." At this point throw a little bit of techno-speech at him (or throw in some links to a couple of technical websites). He'll tune it out.
If you immedately say, "That's not possible," he may get upset. He probably thought it was a swell idea and he doesn't want his bubble burst. So let him down gently. And agree with him that the IDEA is good. Keep his hope alive: "I'll keep looking into it. Maybe someone will develop something that will make it possible. I'll keep you in the loop!" Make him feel like you're working for his best interests.
-- GIVE YOUR BOSS CHOICES! Remember, managers are paid to manage -- to make decisions. If they aren't making decisions, they feel like they're not earning their paycheck. So they WILL make decisions. And if you're not careful, their decisions will impact you negatively.
Before I understood this, I used to be baffled by some of the things I would be asked to do. I would present a client with a web design, and he would say, "Hmmm.... I like it... I like it.... But can you just change the text color to a slightly lighter blue?"
Often these "decisions" seemed utterly random. Like my clients were deciding something just to decide it. Which is exactly what they were doing. IF YOU DON'T PRESENT THEM WITH A DECISION, THEY WILL MAKE ONE -- AT RANDOM -- AND IT WILL PROBABLY SCREW UP YOUR WORK.
So say to your boss, "Hey, can you help me out? I'm trying to choose between these three colors." Secretly, you like all three colors, and you don't care which one is used. Your boss will furrow his brow, pace back and forth, sigh deeply and say, "I'm glad you came to see me kid. Go with the green and you'll never be sorry." Thank him for his expertise and design with the green that you liked all along.
Your boss will feel like he did his job. He'll probably show the green to all his friends and say, "See that. I picked that!" And you won't have to stay late on Friday.