Software Engineer Titles - Let's Get Rid of Them (??)
One of the worst ideas that I’ve seen in tech companies is to strip away titles from software engineers and just call them that. Levels are obviously preserved1, because you still need to be able to compensate according to them but they are internal and not supposed to be divulged.
The justifications I’ve seen for this have been along the lines of
- Some people feel intimidated by a person’s title, particularly if the gap is big (say, junior and staff);
- It puts everyone in the same bucket, erasing differences and giving everyone a “we are all just software engineers, let’s work together” vibe;
- It allows everyone to be able to step up and own any engineering problem because, again, “we are all just software engineers here”;
- I’ve also heard of something-something solves under-slotting of minorities (seriously, can’t remember the reason exactly because it was just too wrong).
Show me the problem
OK, so what is being solved by this idea? From the justifications it seems to be solving a social interaction and ownership problem. I can’t really see any other thing, so let me know in the comments if I’m missing something. But, here is the thing: not only does it not solve these problems, it creates others that are far more pernicious. And to understand that, we need to understand 3 actual problems that we have in tech: title inflation, title based compensation and under-slotting.
Title inflation is a real problem that arises from the need of you creating your career paper trail. If one company’s senior SWE is another one’s mid-level, even if the pay is greater, in your CV it might look like a downgrade. This is especially true as you go higher in the ladder: head of engineering in one company, staff in the next one seems like something really wrong went on.
So, SWEs when looking for new jobs, will usually look for ones where the title matches or is perceived as higher, unless they don’t have a choice. Companies also understand that this is a thing and adjust to employee’s expectations; they’ve been flexible in giving these titles, as long as compensation matches for the employee and they are able to perform what the title implies for the company (this is important, we will talk about this later). It also allows the company to say they have a lot of experienced engineers, when in reality this is is how you get a senior engineer with 2 years of experience2 that hasn’t had to deal with any production outages.
For minorities, they actually have title deflation. They tend to suffer from being under-slotted or low-balled at the same title / level compared to the men. Again, this is statistically true, even if you know of people where this doesn’t apply.
What happens with “we are all software engineers?”
Does striping the title solve any of these problems? Not really, no. Title inflation isn’t really dealt with, just hidden under the (internal level) rug. Once you are in, people talk and pretty quickly you know who has what level and how much they make.
Everyone will also quickly know who’s the go-to person for specific topics and in general, so while “we are all software engineers”, “some are more than the others” and an implicit hierarchy is established3, powerful and unaccountable. Powerful because no one acknowledges it exists and unaccountable because they are only software engineers, like everyone else.
In the end, it doesn’t solve (1) or (2) because people quickly know who is who. And it doesn’t solve (3) because you still don’t want somebody that is junior (internal levels still exist, remember?) to take on the responsibility of a senior or staff engineer in a critical project. I don’t really know why (4) existed but it definitely doesn’t solve that.
But then, what does it solve, if anything? And why should we keep using titles given their inflation (or deflation)?
The implications of a title
The only problem that I see removing titles solves is giving a company leverage when negotiating compensation. By stripping the title, a company can say they are just hiring software engineers and then compensation becomes a 1:1 negotiation based on perceived value and who is better in this game. This does provide short term wins for the company but, like I said, people will talk.
So, OK, lets keep titles. Why are they good?
Titles gives us an expectation of what an engineer can do, based on what the company thinks the title implies (there we go!). As a software engineer, I can tell you what I expect from a junior, mid-level, senior and staff engineers at the companies I worked at. As a manager, that allows me to scope problems appropriately and manage the person’s career within the company.
It also gives me the leverage to argue for someone that has been low-balled or under-slotted, since I can objectively compare their output to the other engineers of the same level and above. And, more importantly, so can them! Without that knowledge up-front, it could take a while for them to perceive they’ve been treated differently in this area. They’d have to get lucky with a manager in these cases in order to fix the problem. With the titles, they can objectively state why they think they are in the wrong.
What were we solving again?
Looking at the justifications given in the beginning, It is clear that none of the problems were solved by removing the title. Or keeping them! The problems outlined to be solved have no direct relation to the title, only an indirect one: in a company the culture / environment can be such that titles imply authority, besides implying expectations. Once that is part of the ethos, people with higher levels can feel emboldened to exert authority without actually having one on the subject being discussed. So yeah, people are going to feel intimidated by that and feel they are bellow their higher-leveled co-workers. Also, with that authority ethos, it isn’t uncommon for projects that are highly desirable get assigned to the authority favorites.
But this can’t be solved by stripping the title. It can only be solved by changing the ethos of the company and that requires either a top-down enforcement of the new ethos or a change of the command chain4.
Or, the employee moving to a company with a different ethos ;)
I’ve heard about a few companies experimenting with everyone gets paid the same. I don’t have any experience with that, so for now I’m pretending that doesn’t exist. ↩︎
I’m not saying you can’t be a young senior engineer. I am saying that calling yourself senior after only 2 years of experience is seldom accurate. I have worked with people that proved me wrong on this, but they are the exception that prove the rule. ↩︎