BF What are the things that developers need in someone to manage them effectively?
JS That's a good question. I always think of it as more of a support role - like moving furniture out of the way so they can get things done - than an actual leadership role. Some of the support that developers may need is, for example: "We need to resolve the text of this error message." This is not something that computer programmers are necessarily good at, so just give them the error message and let them move on to the next thing.
To the extent that managers can actually make decisions for programmers, they are very low-level, mundane decisions that allow the programmer to move on to the next task. In terms of decisions about algorithms, about the big picture, structure, code, it's probably a very bad idea for management to make those decisions. I see two roles for a manager of developers: number one, keeping a useful and assorted queue of things for the developers to be working on, so that they can pick things off the top of the queue and do them next; and, second, basically being there to answer developers' questions.
-- From "A Conversation with Joel Spolsky" in ACM Queue.