Almost all technical managers that I know started their career as developers. For all of them (myself included) the most difficult change on their path towards great managers was to understand that developing people is very much different from developing software. Computers are exact and always do the same thing, while people are sloppy and unpredictable. Computers require every detail specified, while people need clear definition of expectations and freedom to act on their own. Computers can only form networks, while people can form teams. The transition from developing software to developing people is not unlike changing programming paradigm from imperative to functional; it's only much more profound. The best that a prospective technical manager can do is to acknowledge his handicap and actively observe his actions. If a technical manager is talking all the time, while his subordinates keep mostly quiet we have a clear case of imperative management style that treats people no different than statements in a computer program. If, on the other hand, we have a technical manager mostly listening to his team members presenting problems and proposing solutions, we have a clear case of a manager who started to develop people not program them.
Let me conclude with my personal observation that developing people is much more rewarding than developing software. The most you can expect from software is to do what you tell it, while people keep amazing me every day!