I saw a related tweet today which inspired me to ask this question. So, do you think engineering managers should code and why?
Yes, but...
1) the time allocation has to be clearly set and adhered to, with much more allocated to management than the average engineer realises is required. Just as devs wildly under-estimate dev tasks, they wildly under-estimate how time-consuming leadership and management actually is. Frankly most devs think it's literally no work at all, until they actually try it ;)
2) as they become more senior it needs to shift correspondingly to focus on non-critical-path code. Tasks that keep them in touch with the dev experience, keeps them writing code, but doesn't block the team or require days of uninterrupted time to complete. Shared projects shipped as packages can be ideal as they often have a non-blocking release cycle. Otherwise pick up bugs and small improvements, things that can slide back a release without major impact. It may ruffle the ego because it feels a bit junior, but the truly meaty stuff needs to stay with full time contributors.
Everyone in engineering including CTO should code. Non coding activities should be kept to a minimum by these senior people - CTO, engineering manager, etc. This means they are responsible for marketing / product managers to prepare good UI sketches, communicate the requirements in written format, etc (rather than conveying speeches to engineering team on what the product should look like).
Yes.. BUT.
But, it's often not possible. Assuming, s/he loves coding, it would be good to keep in touch. So, depends.
It depends on the team and situation. For example, does the team have a strong group of coders but is lacking in management/direction? If so, then the manager should focus his/her time on managing rather than coding. Does the team have a lack of coding skill or just need to bang out a lot of code? If so, the manager can step in and perform more coding tasks. Management is very important and it should be the manager's primary role. However, I chose "yes" because I feel that ALL engineering managers should code in some way or another. Even if it's not production code or in his/her time off, the person should retain his/her coding skills to better understand coding problems that the team faces, be able to step in and help developers, etc...
Should they code often in the week and write code which ships into production? Well, only if they have the time to do so and no more important managing tasks to do (in other words, yet it happens in small teams, but stops to be true as soon as the team scales)
But it the question is: should managers try to stay close to the code, in the sense of still be able to understand the ins and outs of what their engineers are talking about: then yes, it’s a great asset which makes them better managers, because they are in a better position to bridge the gap between the business needs, the higher-level needs (and constraints) and their team needs and capacity.
The best frontline eng managers in the world are the ones that are never more than 2-3 years removed from hands-on work, full time down in the trenches. The best individual contributors are the ones who have done time in management.
This is a quote (I agree 200% with this!) from Charity Majors’ posts on that topic. I think I already shared them a few weeks ago, but this is a great opportunity to share them again: Charity Majors (engineer/CEO at Honeycomb) wrote two awesome blog posts on engineering management , which are, IMHO, must read for any engineer exploring the management in some way (either "real" management, or lead engineer, which also involves a lot of human management) This is focused on management from a former engineer standpoint (which is not every manager) but it makes a lot of great points.
The Engineer/Manager Pendulum (2017 May 11) and the sequel: Engineering Management: The Pendulum Or The Ladder (2019 Jan 04)
Hope you’ll find those links useful.
I think some would benefit from knowing how to code. If they were programmers and turned into full-time managers, that's also okay.
I think it's mostly useful for managers of small teams, who are close enough to practical details for it to matter.
The CEO of a large company with 3 levels of management between her and the coders benefits less from knowing programming. Though she should understand the concepts and constraints, i.e. fast development vs maintainability.
Depends on the no. developers. Ideally it's better not to code
I said yes, but I really feel a third option is more appropriate: "It depends".
For small companies, there's no choice. The manager also has to code. For larger companies, the manager should be a former developer so as to be able to manage effectively, but that manager should be focused on managing.
Ben Buchanan (200ok)
I make some bits of the web.
Maximilian Berkmann
Web and programming
Dwight Badua
Backend Developer
Yes and no...
Engineering managers can write unit tests, deployment automations, CI/CD scripts, but in my opinion, core code should be done by the engineering team.