Moving to a leadership role doesn't mean you won

While I was in the midst of transitioning from a software developer to a manager of software development, I was sitting in a Belgian bar drinking beer with a British gentleman on vacation who managed hotels. And so we got to talking about what it meant to be the boss outside of considerations of programmers, programming languages, wait staff, and housekeepers. I asked him what would happen if he tried to hire someone who had never worked in a hotel to manage one and he explained the disaster that would be. It’s pretty much the same disaster you get if you hire someone with no software experience ever to manage a team of software developers.

On the other hand, I know plenty of organizations that suffered all sorts of negative consequences when they blindly promoted smart-sounding high-productivity assertive programmers into management roles without considering inherent leadership skills.

So I understand the idea that the object of the game of being a software developer is to become a manager. But well-run organizations tend to create other sorts of roles to recognize the best technical contributors that doesn’t require them being management.

Hiring another individual contributor is an additive move. It’s like adding another another cylinder to an engine. In theory, it’s a simple addition operation but if you add too many cylinders without changing the existing engine, the supporting parts of the engine like the crankshaft or the oil pump give out.

The job of a manager is to multiply the capabilities of the team. If they are to be a success, they have to be a better multiplier than they were as an addition. The manager adds high octane fuel and a turbocharger to let each cylinder do more work than before. The manager is also the oil pump and crankshaft and ignition control circuits… the unglamorous parts of the engine that let it run fast and hard. The manager controls the explosive potential, so that it’s a lot of productive explosions that move things forward instead of one giant engine-destroying boom.

I’ve described the situation where a person who has never programmed directly managing a team of programmers as the non-technical manager being “snowjobbed” by their underlings, but that implies malicious underlings. Simply put, you can’t challenge your team to be more awesome if you don’t know what a challenge is, nor can you shield your team from unnecessary questions and meetings if you can’t speak very intelligently about the software your team is building. You can’t provide context to mediate a difficult decision if you don’t have context to offer.

At the same time, a person transitioning into a management role must necessarily give up their old role. One of my friends was telling me about the VP who was working on one of the important features that other work depended on and got called away to do business things, leaving the developers twiddling their thumbs. An effective leader needs to keep their hands dirty, but that’s different from failing to transition into a new role.

I’ve noticed that leadership is a sharp contrast to the palatable nature of engineering. I know very well how my team is doing, without even asking them. I see the constant flow of tickets moving across our scrum board, commits to the git repo, design discussions happening in pull requests, impressive new abstractions, and so on. But a quarter’s worth of motivation might be delivered by a single well-placed encouraging comment at just the right time, a bad manager not revealed until you discover that they have negative relationships with each and every business partner in other chains of command and they refused to accept that the project they were working on for the past 6 months had gone hideously off-track.

Well-run companies provide technical career track positions that allow high-performers to continue their growth upward without requiring that they manage a team. Finding a new boss requires you to instead select people who are ready to make the major left turn into management.

Becoming a manager doesn’t mean that you’ve won. It just means that you’ve got a whole new set of things to learn.