I think this is a decent article, with some distilled wisdom... Though I also think it has some repeating status-quo mumbo-jumbo.
Every time somebody says a soft-science claim and presents it as a fact, I try to vet it with this heuristic: It can't just sound good, or satisfying, but is it actually true? Imagine whether a case can be made for the exact opposite statement, or whether there may be circumstances that the statement is obviously false.
For example, once a principal engineer asserted rather confidently, "At my level, the most important work you can do is usually in Jira." That's a claim that's hard to assess with any objectivity, but I can certainly imagine a different principal engineer feeling the exact opposite, and I can certainly think of many companies where they wouldn't hire/want a principal engineer primarily for Jira work.
Back to this article, any time somebody says "A manager is X" or a "staff is X" I think to myself... well can I think of a company that would want managers who focus almost entirely on not X? The answer is almost always yes.
austin-cheney [3 hidden]5 mins ago
I really wish people would stop calling software developers engineers because they aren’t.
A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing, and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character.
Never does that occur in software. Most people employed to write software struggle to use giant tools to put text on screen and cannot measure things. That isn’t engineering. By the time a developer does graduate to a level commensurate with engineering we call them senior principles to distinguish them from the false engineers.
jmillikin [3 hidden]5 mins ago
There's a difference between software developers who glue together libraries to build cat picture voting sites and software developers who write real-time avionics firmware. The second type of developer can reasonably claim to be "software engineers" -- blueprints for a skyscraper and for a garden shed are distinguished by content, not medium.
Between those two limits the line must be drawn somewhere, and honest people will disagree about exactly where, but it seems reasonable to claim that people working in most software development positions of interest to Hacker News are closer to the latter than the former.
If you want to claim that junior developers are apprentices (journeymen? are apprentices interns?) and senior/staff/principal/whatever are engineers then that's fine (if idiosyncratic), but that's not what other people mean when they say or hear "software developers aren't engineers".
fffrantz [3 hidden]5 mins ago
Also, and it's striking to me that there never was a crackdown on this, but in a lot of countries, you cannot call yourself an engineer unless you have an engineering degree from a vetted higher-ed institution and are part of your provincial/state engineers' association.
For example, in N.S., your job title cannot contain the word engineer unless you're registered as an engineer with Engineers Nova Scotia, the provincial regulatory body. And to get the EIT status (engineer in training, the provisional period before becoming a professional engineer), you must hold a CEAB-accredited undergraduate degree. So, software engineers rarely exist and it's mostly software developers in N.S.
jahsome [3 hidden]5 mins ago
As someone whose been sort of "up and down" the role ladder, and is very intentionally closer to the bottom than the top for right now, I think I am disproportionately perceiving the wisdom in that jira comment.
I don't think it's the _only_ important thing, but I think I do agree with the sentiment that it may be the most important.
Personally I'm all about diversity of perspectives when it comes to building a team. I would be thrilled to have both a principal who loves jira, and one who doesn't. Someone who tries to straddle both just strikes me as neutered.
When it comes to roles, I always end up back to the Ron Swanson quote "never half ass two things; whole ass one thing."
I do agree with you though, one-size fits all definitions are almost all laughably based on "vibes."
Then again, isn't management pretty much just vibe cultivation?
zug_zug [3 hidden]5 mins ago
I think it only takes a few moments of skepticism to show that "Is X the most important thing about being a Y?" doesn't mean anything.
Being good at something obviously comes down to multiple different skills (manager may require social skills, writing skills, perception, business acumen, intuition, etc). So to try to ask which of those skills is "most" important is a poorly-defined problem, because there isn't such a thing as an 1-unit of of writing skill to weigh against 1-unit of intuition skill.
For whatever reason, a lot of people are drawn to these types of oversimplifications that are so drastic they become meaningless.
AllegedAlec [3 hidden]5 mins ago
Before reading: making the text highlight colour the same as the background is a choice.
dijksterhuis [3 hidden]5 mins ago
Nice write up. Liked the thing on spotlighting. Experienced that in a non-dev role before and never really realised what that was at the time.
Some bits reminded me of some of the lessons in the linux kernel management style guide, so gonna link it here in case someone hasn't come across it before.
> Whether it’s debates like the shift from master to main in git or deeper discussions around inclusivity in language (master/slave rename in redis), these things can shape team culture.
Well, that'll certainly do something to team culture. If an EM seemed to be significantly invested in this sort of decisions then I would form strong opinions about their ability to prioritise.
This is just not an issue that is going to determine the success of the company. If, in some amazing conjunction of circumstance, it does there are terrible terrible problems in the hiring pipeline or in who is being promoted to leadership positions because it suggests the company is a barely controlled powderkeg.
And, frankly, this is not what culture looks like. This is preformative name changes to provide a distraction from whatever the real cultural activity is - which is determined by what the EM rewards and punishes; not by what they signal in low-impact cosmetic policies. That is branding - which is important but not a fraction as important as culture.
dijksterhuis [3 hidden]5 mins ago
You're seemingly presenting this as an option between two binary cases.
paraphrasing my impression of the vibe of your comment into the two distinct options:
> Your collective opinions about how we work as a team matter
> You're only here to work on things that are considered a priority
In reality, there is always some nuance/middle ground available
> Your opinions about how we work here matter. If this is something that requires a full rewrite it's probably going to be a no. But if it's not a major change causing a lot of work, we can possibly take a look at it.
If you've set up CI/CD properly, changing the name of the default branch can be done in less than an hour. Source: I did it at $last_company for circa 10x repos in about an hour. This was not related to inclusivity, but it did involve a discussion about whether we should switch or not: why; how; pros; cons.
Having a conversation about changing due to inclusivity is just a different meeting with a different why, how, pros, cons. One of the why/pros arguments might be -- that's now the accepted general default for most (external) repositories so keeping it as master would be kinda weird and might end up needing some explanation during onboarding -- i.e. more work somewhere else later on.
twelve40 [3 hidden]5 mins ago
i think this is actually good advice when rephrased as: you are now a low-to-middle manager (that is called out specifically), so you neither call the shots nor are you mainly measured on your daily tech contributions, so from now on you can no longer avoid whimsical, irrelevant BS that is a waste of time like debating the branch names, because fielding that is a part of your job description now, so you need to embrace it and handle these conversations with a happy smile on your face, so that the people who actually move the project forward are not distracted by it.
dijksterhuis [3 hidden]5 mins ago
Sort of. I wouldn't call it whimsical, irrelevant BS though. From the article:
> I remind myself that my role isn’t to be the most skilled person in the room but to create an environment where the most skilled people can thrive.
If most people in the team think we should switch to main instead of master, why would I sit there and deny the change? How am I going to find out if most people on the team think this way? Ask the question, let a discussion in whatever forum ensue, make some notes, ask some "dumb" columbo style questions, see what comes out of it.
It's not about me being right anymore. It's about the team being right. Ideally, together.
twelve40 [3 hidden]5 mins ago
Yeah if they have time for "deeper discussions" about this, just run. Apparently, it's higher up in the article than the "choose postgres" managerial advice lol
rectang [3 hidden]5 mins ago
Fine by me. Tech companies can sort themselves into groups: those where such discussions are welcomed and those who run from them.
And I'm happy to see a manager put the "people" section above the section on "technology":
> As an EM, your role isn’t just about managing the technical—it’s about understanding the people behind the work.
roenxi [3 hidden]5 mins ago
> As an EM, your role isn’t just about managing the technical—it’s about understanding the people behind the work.
Yeah it is a lovely sentiment, but it is a sweet nothing if someone doesn't understand the techniques to back up nice words with an appreciation for the people behind the work.
We discover in the follow up that to this EM it means engaging in endless debate (the GitHub issue may have more spilled ink than a Tolstoy work) over the appropriate default branch name. That isn't what prioritising people should look like in practice. In fact that sort of debate springing up and becoming a serious milestone is the sort of thing that should trigger a check for whether empathy failures are taking place. Why is a culture developing where the team is being focusing on such trivialities instead of something that promotes their success or the success of groups like the greater organisation or customers? People with empathy tend to focus on the actual success of real people; and anything more than a cursory aye/nay poll on branch naming would be a concern because it suggests that the real problems every team has aren't getting attention.
fzeroracer [3 hidden]5 mins ago
> Why is a culture developing where the team is being focusing on such trivialities instead of something that promotes their success or the success of groups like the greater organisation or customers?
> People with empathy tend to focus on the actual success of real people; and anything more than a cursory aye/nay poll on branch naming would be a concern because it suggests that the real problems every team has aren't getting attention.
I think there's a bit of irony in your two statements because you're arguing that the EMs should lack empathy for changes you deem trivial, and have empathy for changes you don't deem trivial. This is how you destroy an organization because these small issues fester into something more poisonous for your org.
For example, the branch naming schema cuts both ways. You could have a mostly yay vote on the branch naming pass, but the nay vote interprets it highly negatively or vice versa. Which means it's the EMs job to try and defuse that situation both by being welcoming enough to address these trivial complaints and by trying to identify the root cause.
roenxi [3 hidden]5 mins ago
> ...you're arguing that the EMs should lack empathy for changes you deem trivial
If an EM can't identify this change as trivial then they are going to be on the bottom of the spectrum of EM managers. It is trivial, everyone can tell that. Which side of the decision anyone comes down on is up to them, but if the issue of prioritising branch names becomes a subject of long talks, meaningful debate, inquiry and fact finding missions then the EM has done a bad job. OSS projects can tolerate that sort of thing because the entire OSS movement is ideological from the foundations up so they have to deal with ideological issues. But workplaces are for a different set of standards and ideally involve some professionalism.
If you have formed a genuine connection with someone, probed their emotional state and determined that the default label of the git repo is important enough to them that they are going to feel strong emotional disturbance over? And that it is the biggest issue in their professional life and deserves to be prioritised for follow up? The right thing to do is probably to send them to get some professional help. Or congratulate them on having achieved true joy in the workplace. Or reassess your ability to read people because you just probably got it wrong. Any which way such people are remarkably rare - generally more empathy will uncover that the default branch name is not the major issue that needs work.
Every time somebody says a soft-science claim and presents it as a fact, I try to vet it with this heuristic: It can't just sound good, or satisfying, but is it actually true? Imagine whether a case can be made for the exact opposite statement, or whether there may be circumstances that the statement is obviously false.
For example, once a principal engineer asserted rather confidently, "At my level, the most important work you can do is usually in Jira." That's a claim that's hard to assess with any objectivity, but I can certainly imagine a different principal engineer feeling the exact opposite, and I can certainly think of many companies where they wouldn't hire/want a principal engineer primarily for Jira work.
Back to this article, any time somebody says "A manager is X" or a "staff is X" I think to myself... well can I think of a company that would want managers who focus almost entirely on not X? The answer is almost always yes.
A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing, and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character.
https://en.m.wikipedia.org/wiki/Engineer
Never does that occur in software. Most people employed to write software struggle to use giant tools to put text on screen and cannot measure things. That isn’t engineering. By the time a developer does graduate to a level commensurate with engineering we call them senior principles to distinguish them from the false engineers.
Between those two limits the line must be drawn somewhere, and honest people will disagree about exactly where, but it seems reasonable to claim that people working in most software development positions of interest to Hacker News are closer to the latter than the former.
If you want to claim that junior developers are apprentices (journeymen? are apprentices interns?) and senior/staff/principal/whatever are engineers then that's fine (if idiosyncratic), but that's not what other people mean when they say or hear "software developers aren't engineers".
For example, in N.S., your job title cannot contain the word engineer unless you're registered as an engineer with Engineers Nova Scotia, the provincial regulatory body. And to get the EIT status (engineer in training, the provisional period before becoming a professional engineer), you must hold a CEAB-accredited undergraduate degree. So, software engineers rarely exist and it's mostly software developers in N.S.
I don't think it's the _only_ important thing, but I think I do agree with the sentiment that it may be the most important.
Personally I'm all about diversity of perspectives when it comes to building a team. I would be thrilled to have both a principal who loves jira, and one who doesn't. Someone who tries to straddle both just strikes me as neutered.
When it comes to roles, I always end up back to the Ron Swanson quote "never half ass two things; whole ass one thing."
I do agree with you though, one-size fits all definitions are almost all laughably based on "vibes."
Then again, isn't management pretty much just vibe cultivation?
Being good at something obviously comes down to multiple different skills (manager may require social skills, writing skills, perception, business acumen, intuition, etc). So to try to ask which of those skills is "most" important is a poorly-defined problem, because there isn't such a thing as an 1-unit of of writing skill to weigh against 1-unit of intuition skill.
For whatever reason, a lot of people are drawn to these types of oversimplifications that are so drastic they become meaningless.
Some bits reminded me of some of the lessons in the linux kernel management style guide, so gonna link it here in case someone hasn't come across it before.
https://www.kernel.org/doc/html/latest/process/management-st...
Well, that'll certainly do something to team culture. If an EM seemed to be significantly invested in this sort of decisions then I would form strong opinions about their ability to prioritise.
This is just not an issue that is going to determine the success of the company. If, in some amazing conjunction of circumstance, it does there are terrible terrible problems in the hiring pipeline or in who is being promoted to leadership positions because it suggests the company is a barely controlled powderkeg.
And, frankly, this is not what culture looks like. This is preformative name changes to provide a distraction from whatever the real cultural activity is - which is determined by what the EM rewards and punishes; not by what they signal in low-impact cosmetic policies. That is branding - which is important but not a fraction as important as culture.
paraphrasing my impression of the vibe of your comment into the two distinct options:
> Your collective opinions about how we work as a team matter
> You're only here to work on things that are considered a priority
In reality, there is always some nuance/middle ground available
> Your opinions about how we work here matter. If this is something that requires a full rewrite it's probably going to be a no. But if it's not a major change causing a lot of work, we can possibly take a look at it.
If you've set up CI/CD properly, changing the name of the default branch can be done in less than an hour. Source: I did it at $last_company for circa 10x repos in about an hour. This was not related to inclusivity, but it did involve a discussion about whether we should switch or not: why; how; pros; cons.
Having a conversation about changing due to inclusivity is just a different meeting with a different why, how, pros, cons. One of the why/pros arguments might be -- that's now the accepted general default for most (external) repositories so keeping it as master would be kinda weird and might end up needing some explanation during onboarding -- i.e. more work somewhere else later on.
> I remind myself that my role isn’t to be the most skilled person in the room but to create an environment where the most skilled people can thrive.
If most people in the team think we should switch to main instead of master, why would I sit there and deny the change? How am I going to find out if most people on the team think this way? Ask the question, let a discussion in whatever forum ensue, make some notes, ask some "dumb" columbo style questions, see what comes out of it.
It's not about me being right anymore. It's about the team being right. Ideally, together.
And I'm happy to see a manager put the "people" section above the section on "technology":
> As an EM, your role isn’t just about managing the technical—it’s about understanding the people behind the work.
Yeah it is a lovely sentiment, but it is a sweet nothing if someone doesn't understand the techniques to back up nice words with an appreciation for the people behind the work.
We discover in the follow up that to this EM it means engaging in endless debate (the GitHub issue may have more spilled ink than a Tolstoy work) over the appropriate default branch name. That isn't what prioritising people should look like in practice. In fact that sort of debate springing up and becoming a serious milestone is the sort of thing that should trigger a check for whether empathy failures are taking place. Why is a culture developing where the team is being focusing on such trivialities instead of something that promotes their success or the success of groups like the greater organisation or customers? People with empathy tend to focus on the actual success of real people; and anything more than a cursory aye/nay poll on branch naming would be a concern because it suggests that the real problems every team has aren't getting attention.
> People with empathy tend to focus on the actual success of real people; and anything more than a cursory aye/nay poll on branch naming would be a concern because it suggests that the real problems every team has aren't getting attention.
I think there's a bit of irony in your two statements because you're arguing that the EMs should lack empathy for changes you deem trivial, and have empathy for changes you don't deem trivial. This is how you destroy an organization because these small issues fester into something more poisonous for your org.
For example, the branch naming schema cuts both ways. You could have a mostly yay vote on the branch naming pass, but the nay vote interprets it highly negatively or vice versa. Which means it's the EMs job to try and defuse that situation both by being welcoming enough to address these trivial complaints and by trying to identify the root cause.
If an EM can't identify this change as trivial then they are going to be on the bottom of the spectrum of EM managers. It is trivial, everyone can tell that. Which side of the decision anyone comes down on is up to them, but if the issue of prioritising branch names becomes a subject of long talks, meaningful debate, inquiry and fact finding missions then the EM has done a bad job. OSS projects can tolerate that sort of thing because the entire OSS movement is ideological from the foundations up so they have to deal with ideological issues. But workplaces are for a different set of standards and ideally involve some professionalism.
If you have formed a genuine connection with someone, probed their emotional state and determined that the default label of the git repo is important enough to them that they are going to feel strong emotional disturbance over? And that it is the biggest issue in their professional life and deserves to be prioritised for follow up? The right thing to do is probably to send them to get some professional help. Or congratulate them on having achieved true joy in the workplace. Or reassess your ability to read people because you just probably got it wrong. Any which way such people are remarkably rare - generally more empathy will uncover that the default branch name is not the major issue that needs work.