I have to go at this from the perspective of the worst bosses I've worked for - a good one would NOT have these qualities:
Inability to make a decision _ sincgle worst thing I ever dealt with was a boss who changed his mind every time someone talked to him. We changed direction 4-5 times a day on a three year project.
Steals the credit for things the team members do. Once my boss got a huge award that they gave out publicly. Everything they mentioned that he did, I actually did. Needless to say this is demotivating in the extreme.
Panics when things aren't going well. Even worse when panicing makes him or her become nasty. That's not helping get things done, really.
Back-stabs his own people. He gets the credit, we get the blame. ANd doesn't support us up the chain of command when he should.
Has no understanding of the process of developing software and doesn't even care to learn enough to know we are using C# (or other language of your choice). Thinks that everything can be done in a short period of time and that a simple change on the outside of a User_interface page means it wil not take long to implement. The kind of person who sits on a change until the day before the deadline and then says, "Oh By the way we need to do..." and what ever he asks for is something that changes the fundamental architecture.
Micromanages or doesn't manage at all. Both are equally bad. I've had too many bosses who didn't know there was a problem with one employee until too late and everyone else had to pay the price to fix the mess. I've also had bosses that I had to tell them to stop bothering me every five minutes or it would never get done.
Is politically naive. If your boss isn't doing well politically with the people above him, you will have trouble getting the people you need, you will have the worst spaces and you are in the group most likely to lose your jobs in a layoff or because it is a easy way to get rid of him. Bosses must be good at office politics.
Someone who thinks he can slash the hours of a project in half (because the client won't like that number) and we will be able to get it done in that amount of time with no corresponding change of requirements.