I was a "first-line" manager, for over 25 years. I managed a small, high-functioning team of experienced and mature C++ image pipeline engineers.<p>I chose not to go higher, because I felt that I was being most productive, where I was, and because, quite frankly, I didn't trust anyone else to do the job right (I still believe that this was a correct assumption). I had absolutely no stomach, whatsoever, for the political games, "above" my level, and was making enough to keep me satisfied.<p>When I first became a manager, I continued to code, but, as time went on, I hired people who were better at it than I was (I was pretty good, but they were better), and also, I couldn't be reliable enough to be in a "critical path," so I worked on tools and experimental projects that didn't have deadlines.<p>My managers <i>did not</i> want me coding. They actively discouraged me from it. Eventually, I stopped coding for the company (but kept coding on my own). I feel that continuing to code on my own, made me a <i>much</i> better manager. I think my bosses were dead wrong to discourage me from being technical. It was a cultural thing; not a practical one.<p>I feel that "first-line" managers should still be very technical. Maybe they shouldn't have "critical path" responsibilities, but I believe that they should be absolutely conversant with the latest technologies and techniques, as well as be extremely sympathetic to the challenges faced by their employees.<p>I believe that the rules are different for higher-level managers.<p>BTW: I hated every minute of my work as a manager. I don't regret it, but I was glad to see the back of it.