Many Software Development Managers find their way into the "coveted" position from attrition after being a development team lead, or senior architect. Having a technical background is an obvious advantage in terms of understanding the complexity dynamics the team deals with. One big reality, however, is that these vast technical skills are only a subset of what is required to become a great manager, and the new manager soon discovers he needs to learn much more about the role.
In Jack Welch's book Winning, he explains that being a good leader means you shift the focus from you to them--from being the only one able to solve the latest problem, to being the proverbial "dumbest person in the room." Accountability should come hand in hand with empowerment. Learning to empower your teams can be difficult, and seem like a leap of faith at first. You soon learn, however, that letting your team originate the solution, predict the schedule, perform the work, and solve the problem builds their trust in you and in themselves.
Another effective technique is to make your team accountable to the executive staff themselves--in person--instead of you being the go-between, shielding them. Have the team leads accompany you to the Executive Committee meeting to report their progress. This way, they can feel a sense of accomplishment for their victories, and feel the pressure from the top, instead of from you! Teach them to be commitment oriented. Develop a commitment-oriented culture by keeping track of their commitments and holding them accountable for each one. Base their bonus structure on their ability to keep their commitments. This will teach them to be more accurate, which translates into better predictability that that is better for everyone.
Joel Spolsky has a simple solution for this. It's called Evidence Based Scheduling and you can read about it here.
Mike J Berry www.RedRockResearch.com