back

by jasonpeacock·3y ago·view on hn ↗
Managers should not be coding - they are there to grow their people. That's why they are called "people managers".

Managers help organize their teams to be effective by hiring people with complimentary strengths, insulating them from distractions, and representing their team's work and achievements to leadership.

Managers unblock their team and get out of the way.

If a manager is writing code, they are not managing - they are developing. If there's not enough developers, they should be hiring.

And directors...they should definitely not be writing code.

The only valid example I've seen for leadership writing code is when they are acting as a customer and consuming their team's product (e.g. their team owns a service) with toy applications so they can understand the customer experience.

5 comments
Even McDonalds managers can flip burgers. You cannot manage a system unless you are at least partially involved in its operation. Managers should not be writing code all the time, but they should have a basic understanding of what the people under them are doing, otherwise they are completely dependent on other people to make decisions for them (in the best case, in the worst case they ignore everybody else and use their gut instinct).
I think it's both disrespectful towards engineers and managers to think that every manager should write code. Why not treat both as two separate valuable skills?
I agree they shouldn't be writing code, but they should probably have a fair degree of knowledge about writing code. Otherwise, how do they decide which people to hire to write the code?
They tell their engineers to interview those people, then make hiring decisions based on aggregated and distilled feedbacks from those engineers.
Anecdotally, this is basically always worse than having someone with significant coding experience. Two thoughts come to mind immediately:

1. Making key hiring decisions is hard: coding experience lets you better see how a potential hire's technical strengths, weaknesses, and opinions intersect with personality traits to produce value or dysfunction.

2.Coding experience helps you understand different kinds of value - it's very hard to explain to non-technical folks that while a developer is brilliant and productive, he's not careful enough and six months down the line we're going to be buried in tech debt if he's allowed to keep going.

So now they have to adjudicate the technical opinions of their engineers. Engineer #1 says they should hire person X for various technical reasons. Engineer #2 says they should hire person Y for various other technical reasons. How does a non-technical manager decide which opinion is 'better'?
they don't. you ask the team to come to a consensus on their own and if they don't just pick someone to make the decision and then pick someone else the next time you have to pick

managers thinking they know better than their reports is the source of basically all team dysfunction in tech

This always sounds good in theory but in practice is a disaster. At least in my experience.
And a technical manager is either one of engineer #1 and #2 and can hire X or Y depending on their own biases without consulting anyone else. Is this 'better'?
> Managers unblock their team and get out of the way.

You're talking as if Devs are brainless outside of programming, let's babysit them.

The best development managers/directors I've worked with were hands on, and they knew significantly more than me, they knew their stuff really well.

It has absolutely nothing to do with capability of one person vs the other, it is about what is part of one job vs the other.

As a developer I’m very ”thankful” to a good manager shielding me from all the bullshit customers come up with — if they do their work well they indeed help productivity big time.

I wouldn't draw such a distinct line. People should write code if it serves their purposes and absolve the criticality that if they don't write it, the product will fail as a whole due to lack of the correct expertise.

Also this proposal does create a divide and ends up in factionalism. In this world no one leads by example.

Except that more often than not it's people who only have "people skills" and no coding skills under the hood.