As an engineering manager, you'll need to put company first, team second and your team members third.
I disagree with this a ton. The best managers I've had flipped #1 and #2. When your team is performing, the company profits. Far too often I've seen the manager put the company way ahead of the team, and that leads to attrition within your team or a major lack of motivation.
This 100%. The best manager I had I likened to a good platoon commander. Understood importance of morale, respected and trusted us, was transparent when he asked us to do something hard, and would never ask us to do something he wouldn't do himself. Many a times he went to bat for us against upper management and pushed back on death marches, and fought for resources like dinner and extra time off for us after a late night deploy.
He understood we were a team, and we weren't stupid. Your employees are working in a technical, educated field. They can smell bullshit a mile away. If you try to take advantage of them they will shit your bed and leave
In the military junior leader's get taught Adair's theory of Action Centred Leadership: that Task, Team and Individual are separate things to deal with and yet mutually dependent.
Which to make the primary focus can and should switch up. If you are firefighting on a submarine all that matters is the task - the team are all dead if you fail. The individual does not matter there and then.
Back in the land of computers we have less extreme but analogous problems. There are times when you do need to focus on the task, however if you're a good leader you've used the times when that isn't the case to focus on building a Team and developing each Individual so that they can, and are willing, to dig out to achieve the Task.
My favorite managers were always similar to the one you describe. But I also noticed these managers didn't get promoted as the more "pointy haired boss" types.
I would disagree. My boss has the record of fastest promotion of junior developer to executive and he fights for us against other department/team heads and upper management on a regular basis. Its because he makes sure to deliver such value to the company that the management can't ignore him and his team
Op here. I agree team morale is absolutely essential. At the same time, as a manager you should understand how your team adds value to the company - and if it doesn't, fix that.
I write this from personal experience, having seen teams been disbanded who did a great job shipping... stuff that brought in zero value to the company. This is something I personally would want to avoid if possible, hence me putting "company first" as #1.
Of course no two situations and companies are the same, so there might be cases when having a healthy team trumps doing what the company (thinks it) needs. For now I'm personally sticking to aligning all three where I can: have a great team building things that matter with satisfied members.
> I write this from personal experience, having seen teams been disbanded who did a great job shipping... stuff that brought in zero value to the company.
How do you get to this point? I have never been on a team where someone further up the business wouldn't come up to us at some point and ask, "Uh, what is the business value of what you are doing?"
> have a great team building things that matter with satisfied members.
Cherish this, and secretly examine every nuance of its ups-and-downs while you can. The basis of all of your future management efforts will be to get back to something similar to this point.
Just remember, a manager is a well-organized servant leader who is ultimately never responsible for success.
Usually #1 and #2 are not in conflict. The whole role of a manager is to translate company goals into engaging team projects.
The point I think the author makes is that it is not the desires of the team that set up priorities at this point, and that it is contrary to what you are expected to do at the dev level (i.e. advancing your team projects first)
The thing is, if a manager does not set goals for it's team, it will find some by itself (refactor that old code, clean the doc, improve that funky demo, test out the latest shiny equipment) that are not necessarily the best choice for the company.
My experience has been that in that situation, very often, the team is relieved when it receives new instructions. It is not a "team or company" thing
It is just an ordering of priority goals that makes sense to everybody.
Thank you for saying this. I just want to add how this becomes super hard in an early stage startup. People underestimate how hard it is to translate company goals to engaging team projects, when a startup is in a lot of flux. The goal post moves so much. It's super super hard to keep an eye on the goal post, translate that goal to the team, and a couple of weeks later tell the team that no the earlier tasks are no longer valid, here's a new set. Rinse repeat until you hit PMF.
> Far too often I've seen the manager put the company way ahead of the team
Hear! Hear! This completely, followed by managers being too lazy or being too ignorant and just never "getting it".
After many years, I've come to the conclusion that:
1. I sucked as an engineering manager.
2. Most people suck as engineering managers.
3. The only thing that works is a flatter structure with really exceptional managers as actual engineering managers that do what's right and stand up for the team, with a set of people under them that don't actually have management authority, but they can organize things, stay on top of efforts, and communicate status to those that can. This works because really exceptional managers are extremely hard to find and are paid well, so if you try to do anything but this, you will hire bad managers.
It's really great to think your team is the most important thing, but you don't pay their salaries, the company does.
Your team's health can absolutely be the number one vehicle you use to get the company the results they are after, but you can't forget the fact that the company employs you, and them for reasons other than their happiness.
This is very much the case. Also, though many on HN might not like it, software developers are not special. There are many, many people with sufficient skill and interest to replace most developers in most companies.
That said, it's a mistake to treat developers like commodities or to dismiss their concerns and desires as second to the company, in my opinion. Churn hurts, and demoralized teams have negative impact on develpment.
If software engineers are really so easy to replace then why hasn't it happened? They're currently paid more then most professions so clearly businesses would take a cheaper path if available.
It happens all the time, especially outside of anomalies like the Bay Area. Even in the Bay Area it happens frequently enough. Pay is higher in the Bay Area and similar locations because of artificial constraints from the demand-side, not because of a lack of supply. Outside the Bay Area (and similar places) developers aren't paid that much better than any other college educated, skilled worker. I came from outside the Bay Area. This world is...very different from the software world in most other places.
The median pay across the whole US for software engineers is quite a bit higher then the median income for all professions. Or are you referring to a different country?
Doctors have an extra 4 years of very expensive school plus an extra 3-7 years of training. Lawyers have an extra 3 years of very expensive school and only make about 15% more on average than software developers. Accountants make on average about 30% less than software developers.
It is happening in the long term. Software engineers are in the long term often being replaced by other software engineers. The process does not exists in world where people change companies before the companies could realize they need to be changed or where companies lifecycle is short (e.g. startups which die before 2 years and participants move to other positions.)
Software engineers being replaced occurs in a more indirect way. Usually through automation and third party SaaS. Companies replace their own devs with technology and other companies devs rather.
But here's the thing: as a manager you only can control your team. Companies (especially public companies) are capitalistic machines that want to show growth each quarter. Good management is the only thing keeping humanity in the picture.
Lots of companies die because they pursue quarterly growth. Team-focused managers focus on long-term health of the company.
Right, and the #1 job your company employs you to do as a manager is... manage your team. You absolutely have to look after your team first, because the company's health follows the health of it's components.
I disagree with both of these as absolutes. My manager's job is to advocate for work for his team, to make sure our work is aligned with the company's strategic and tactical goals, and to keep the individual contributors' morale as high as possible. The latter is looking after the team, of course, but realistically sometimes the needs of the company and the desires of ICs on the team diverge. In that case a manager's job is to transition those members who aren't in alignment off the team, preferably to another in the company if their talent merits but out of the company is a good solution also.
I agree with your disagreement. If you don't care about your people and team and don't put them first then it's highly unlikely you'll actually be in any way productive to give the company what it needs.
I guess the way I view it is that company is the destination and team/people is the journey.
This way isn't the only way though, I've seen teams run 'company first' it generally involved a lot of unhappy people and I didn't like it, so I avoid that style personally. A friend of mine seems to pride himself on being a 'hard driver' and being 'brought in as the hammer', ; but to each their own.
I think this is a red herring all the way. Before you think about this problem, the first thing you have to ask yourself is: "Why do we have managers"?
Let's start a thought experiment. We'll start a company with one person. What will that person do? Manage? Of course not. There is nothing to manage, because there is only one person. Instead, although they have to plan and prioritise their work, if they aren't actually spending most of their time working, then nothing will get accomplished.
What if we have 2 people? Should we make one person a manger and have the other person do the work? Of course not. The manager will have virtually nothing to do while the working person will be overwhelmed. Although you may shift some responsibilities depending on who likes to do what, or who has various skills, unless both people are working then you will have lots of problems.
At what point do we need a manager? Well, we need a manager when the communication overhead and day-to-day chores impacts development. We only need that manager when there is enough work that they will be able to spend almost all of their day doing that work.
So what will they do? Basically anything that is stopping the workers from getting their job done. If there is a problem with communication, then the manager needs to organise things so that everybody has the information they need. If there is a lack of prioritisation, then the manager needs to prioritise/plan the work. If there is conflict on the team, the manager must find ways to resolve the conflict. I'll stop here as there isn't much point enumerating all the things a manager must manage.
The point is that everything a manager does is a result of coordinating large numbers of people or disparate information sources. Their job is to coordinate, prioritise, reduce conflict and communicate so that the workers can concentrate on getting their work done. The manager is there to "take one for the team" so that the team doesn't get embroiled in drama, trivia, or complications.
Getting back to the original problem: "you'll need to put the company first, team second and your team members third". Sorry to be rude, but that's just naive. Your function is not, through force of your will, to make all the workers do what the company wants. Your job is to coordinate information and reduce conflict so that the members can be successful. Your job would not exist if you did not have team members or teams.
And as impolite as this is, I can't finish without asking managers to contemplate the following: Is there more or less drama due to your actions? Are you demanding team members organise information for you, or are you organising information for the team members? Are you resolving conflict as it occurs, or are you creating conflicts in order to get your way? Do you ask your team to jump through hoops in order to solve a political problem, or do you jump through hoops to solve political problems for your team?
As an engineering manager, you can not succeed if the team does not succeed. It is true that your team can succeed for short periods even if some team members do not succeed, but it is an unsustainable condition. If your team members are not successful, then you have failed. <- Notice the full stop.
One way to look at "why do we have managers" is the decentralized "feudal management".
Everything starts from the owner ("king") who then delegates things to managers at various levels (starting from the board and executives) who then do their thing and either manage tasks, people and processes directly or delegate them further to lower level managers.
In a decentralized approach, if you need a small task done, you can hire me, give me some resources (money, workspace, equipment, whatever), and expect some results - but mostly leave me to myself. If you want more results, that's going to take more resources - and at some point these resources go from a salary and a desk to a budget and headcount, but in a larger manner, nothing changes; you have given me resources (more of them) and need results (more of them), and you can stop worrying about the details of how these results are achieved. In this approach, the engineering manager role becomes something like a CEO/COO of a small development shop doing custom software for their customers - and the main significant difference between this shop being internal or external is the (lack of) legal contracts required.
Another theory is that middle management's only purpose is to act as a buffer between the workers and the owners. The middle manager is just a useful idiot to the owners.
Right out of the manager's playbook: "Well, you see, I'd love to give you more than a 3% raise, but, you know, budget is tight. No one is getting more than that. Most people are getting less, you should feel lucky to be getting 3%." You know he's reading from a script that he was coached to read from.
Same strategy as calling into the support line at Time Warner cable or United Airlines with a real beef. You are immediately worn down and dejected because you realize you're talking to someone with zero authority to do anything. So what do you do? Suck it up and keep working, or quit.
I think your penultimate paragraph, the one where you ask managers to ponder, basically, if they are helping the team to roll it just push it, is very important and clarifies things. Of course, the whole comment, albeit larger than average for HN, is helping to make things clear.
We don't live in an ideal world though, and I do not know if the managers who prioritize the long term goals are more successful than the ones who focus on the short term goals (and who, frankly, usually are basically self-serving). Maybe it depends on the definition of success.
A huge confounding factor for this discussion is the big-5 personality trait Agreeableness. It's essentially how people make tradeoffs between their own needs and short-term interpersonal conflict.
"Put the company first" is another way of getting at "Engineering managers need higher trait Agreeableness in order to succeed". It's not maximizing Agreeableness, just putting it at a higher level than individual contributors. And for good reason.
The overall goal is to make smart tradeoffs and find win-wins. You've got yourself, your managers/executives, and your team. They each can get varying amounts of acclaim, compensation, and terms of employment (ie, hours worked). I kind of want to say that the company matters here, but it doesn't really. Well, at least not until you get to a large enough company scale that your reputation among people at the company starts to matter. Say ~100 people or so.
Agreed. I'm going through the motions of a tranistion and the team is far more important than the company. If you focus on the company first you will lose the pulse of your team and if you lose the pulse of your team you're compromised in your ability to lead effectively especially when you inevitably need to debug your team.
If your team is excited to build a service (say, for the technical challenge or the potential reputation gain) that objectively should be done by a different team (say, they have the right background, have already started, or whatever) -- do you put the teams interest first (and do it) or the company's (and don't).
I've faced this situation a lot. I used to pick the former. If we have more impact, how can that be bad? Good for company & so on.
It frequently did end up good for my team, but not always good for the company.
Once I adopted the "good for company" mindset, I found I could often achieve what was good for both, but I did find value in putting the company first.
To put another way: the local optimum is not always the global optimum. As a manager, you need to think about the global & favor that over the local.
I don't think assigning a pecking order and then debating it is important because in my opinion, an Engineering Manager has the job of connecting the business to the engineers. For this to work he/she needs to engage both.
What to do when "conflicts of interest" arise is the measure of an Engineering Manager and where the line is drawn is defined by the individual at a personal level.
I disagree with this a ton. The best managers I've had flipped #1 and #2. When your team is performing, the company profits. Far too often I've seen the manager put the company way ahead of the team, and that leads to attrition within your team or a major lack of motivation.