Maybe what you need is to replace a departing manager – someone who is leaving the company, being promoted, or going back to hands-on IC (individual contributor) work. Maybe your team has gotten too large and unwieldy and is ready to split in two, amoeba-like, or you’re on the verge of hiring a few more people and spinning off another team. Maybe you are a baby startup and this engineering manager will be your first formal structure, or maybe something else entirely.
Whatever the genesis, the point is the same: you need to find a manager. And your very first fork in the road will be, ‘Should I hire one in from the outside or tap one of my engineers for the role?’ This piece will be a brief overview of the considerations involved in asking this question and making that decision.
First of all, I should confess to my biases. I am a big believer in the philosophy that management is not a promotion, but a change of career. There is a great deal of evidence that hierarchy produces worse outcomes in creative industries, of which software is decidedly one. I think that management is not and should not be synonymous with leadership; in fact, there are areas of technical leadership and implementation details where managers have no business exerting ownership. There should be technical leadership levels that track management levels as their equals in compensation, authority, and respect, but with different domains – ‘non-overlapping magisteria’, as the great Stephen Jay Gould might have said.