I answer this question a lot. For me, a summary version of my model is as follows:
EM is a technical role in the sense it includes managing technical projects. However, it is not an engineering role. I hold Engineering Managers accountable for the following three things:
1. People Management. You are the line manager. You must deal with hiring and firing. You should know the intrinsic motivations of everyone on your team and be able to feed those motivations. There are rote parts of the job as well, such as signing expense reports, vacation requests, and performance reviews.
2. Project Management. You are responsible for your team's delivery. If the team is blocked by something external, you need to resolve that.
3. Program Management. You should "own" your area. You should understand why the company is investing in your area and you have an opinion and a view for how your area can best accomplish the company's goals. You should understand your users/customers as well as or better than anyone.
Even if you can code, as an Engineering Manager you should not take work items for your team. If you need to switch your focus to interviewing a candidate, or a valuable team member is getting poached, or you need to talk to a customer, etc... your team needs you to take care of these things. If you have to make a choice between doing your EM job and keeping your team unblocked by delivering code, you messed up.
That's a very brief overview of how I treat the role. I know many folks disagree, so YMMV.
EM is a technical role in the sense it includes managing technical projects. However, it is not an engineering role. I hold Engineering Managers accountable for the following three things:
1. People Management. You are the line manager. You must deal with hiring and firing. You should know the intrinsic motivations of everyone on your team and be able to feed those motivations. There are rote parts of the job as well, such as signing expense reports, vacation requests, and performance reviews.
2. Project Management. You are responsible for your team's delivery. If the team is blocked by something external, you need to resolve that.
3. Program Management. You should "own" your area. You should understand why the company is investing in your area and you have an opinion and a view for how your area can best accomplish the company's goals. You should understand your users/customers as well as or better than anyone.
Even if you can code, as an Engineering Manager you should not take work items for your team. If you need to switch your focus to interviewing a candidate, or a valuable team member is getting poached, or you need to talk to a customer, etc... your team needs you to take care of these things. If you have to make a choice between doing your EM job and keeping your team unblocked by delivering code, you messed up.
That's a very brief overview of how I treat the role. I know many folks disagree, so YMMV.