The responsibility of a manager towards her or his team members is to create a productive work environment. Team members should be enabled to do what they do best and not be occupied with too many bullshit tasks.
It is not required that the manager has technical knowledge. It might be helpful but it often leads to micromanagement.
The manager does not need to be a friend, although it might help.
I don't think that a manager should completely shelter the team from upper management. Developers tend to be curious people that are interested in the bigger picture as well.
What I respect the most in a manager is the ability to motivate. This requires a high degree of empathy.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.