Recently a few colleagues whom I used to work with, all of which work for the same company, began complaining and/or commenting on a new initiative they were grappling with. Prior to this point, most of the Software Engineers in the company had the job title of "Software Engineer". A handful of engineers were "Lead Developers" for their respective teams and an even smaller handful were considered to be "Architects" (not their word, but I'm choosing to use this instead in an effort to keep this article a bit more generic). As of this week, that system is dead.
While the old system was far from perfect, it had the advantage of being easy to understand. Beyond a handful of individuals interested in moving into either a Lead Developer or Architect role, the specifics of it didn't really matter. Almost everybody was equal in terms of organization chart placement and/or possible compensation except the handful of people who had already been singled out for one reason or another.
It is important to keep in mind that this company has spent years claiming that they only hire senior level talent though they have begun to pivot towards hiring junior level talent as of late. In spite of this the new system is a bit of a cluster fuck. So without further adieu here are the new levels (again take note that the names of a few have been modified in an effort to keep this article a bit more generic) as I have no urge to skewer this particular company or endanger my colleagues who work for it.
Junior Software Engineer (JSE)
Basically this is a role designed to accommodate new hires straight out of college.
Software Engineer (SE)
This is considered to be the mainline everyday software engineer role. The implication here is that you are decent worker, but that you are not standing out in any way.
Senior Software Engineer (SSE)
This is the part where things start to get murky. It's important to note that in this particular case, this is an accurate title. In any event, people filling this role are mainline everyday software engineers who are considered to be better for some reason or another. (Don't worry, we will be coming back to that)
This is where people end up when they decide that productivity is more of a happy coincidence than an actual goal. I k33d the Architects. But in all seriousness, the engineers in this role spend most of their time worrying more about how everything fits together rather than the specifics of each and every little piece. They are supposed to be looking at the macro picture rather than the everyday micro picture.
Okay, so whats the problem? In order to properly enumerate that for you, we are going to have to go through each and every title one by one.
Let's start with the JSE role. As far as I know, no existing Software Engineer was given this title as part of the reshuffling and it will only be assigned to new hires moving forward. To me this is odd given that the company has some extremely green engineers working there who probably deserved this title. The reason no existing engineer was awarded the title is that management correctly understood that the recipients would've seen it as a demotion. Beyond that rub, I actually don't have a problem with this title. Straight out of college, engineers are pretty green and not used to being productive in a corporate environment, so I think distinguishing between JSEs and everybody else is a good thing.
What about the SE role? Well lots of companies have this role and this company is no different. Frankly, I'm perfectly fine with this role. As a developer who tends to stand out favorably when compared to his peers, I think any set of titles ought to allow for that to be properly represented. Establishing a baseline and respectable SE role is the first step towards reaching that goal. However keep in mind that for years this company has filled the heads of software engineers with the idea that they only hire Senior level talent. That means that anybody who got this title for whom this wasn't their first engineer position, was likely going to see it as a demotion. Spoiler alert: This is where it all starts to go horribly wrong.
That brings us to the SSE role. The name of the title contains the word Senior which clearly and heavily implies that the primary mechanism for getting this title is how much time you've put into your career as a software engineer. Personally I've always hated this title but it is quite popular across many companies in my experience. The reality is that for most people, the amount of time they've spent in a field has little to no correlation with how skilled they are in that field. On the surface the core failing of this title is that it both implies otherwise and effectively demonstrates that management is foolish enough to believe it.
However the story doesn't end there. Because as it turns out, the amount of time one has spent in the field has virtually nothing to do with who was awarded the title based on the information that has been shared with me. In fact the majority of people I've spoken to about this seem to feel that the determination for who got this title and who didn't was the result of some newfound unofficial mechanism in which developers were measured on five sets of standards and then PTLs for each team figured out who ranked where across the entire teams category. In case you aren't familiar this is eerily similar to a system once employed by the likes of GE and Microsoft which is known as the Vitality curve but more popularly known as "Stack Ranking".
In fact as my information indicates even the percentage breakdowns were very similar to what was expressed in the Wikipedia article on the Vitality curve (which you should absolutely read if you are not familiar with stack ranking). Only in this case, the bottom 10% was eliminated and the top tier grew to accommodate a larger percentage. So instead of the 20-70-10 system in the article, they ended up with a 30-70 system. Still I can't say for sure that this was the result of a stack ranking process. It may have also been the result of somebody just arbitrarily deciding that 30% was the number and then handing each team a specific quota of SSE titles that they could allot based on how many engineers they already had. It is with no great surprise that I say that this process doesn't appear to have been that transparent. In any event one thing seems certain: The company engineered this process so they would end up with 30% of their engineering workforce as SSEs.
As for the Architect role, I don't have much to say. Personally I strongly doubt the usefulness of Architects in a professional software engineer organization after doing this for 20 years, beyond that, there doesn't appear to be anything inherently wrong with the role. It is important to note however that given how elite this role is, this may simply be a matter of not enough information being available. Truth be told, I don't even really know how elite this role is as no percentage has been expressed to me regarding its availability.
So as you can imagine, a lot of people ended up pissed off here. The company has spent years claiming that it only hires senior level engineering talent and when presented with the newfound contradiction that only 30% of their engineers actually have a title which indicates that is true, a lot of engineers are angry. In fact based on what I've seen, there was very little rhyme and reason involved in the ultimate awarding of the SSE title. But to be fair, that title has never really been defined in a way that makes sense in my experience so it might not be fair to expect this particular company to single-handedly address that issue.
Nevertheless, based on what I'm seeing a huge portion of the engineer workforce has taken a severe morale hit and has been left feeling devalued. I feel for them. Undoubtedly some of these people probably needed a wake up call but given the lack of transparency and the questionable measurement system, its hard to see how any of them will have to take it seriously. On the flip side, some engineers who ended up as SEs obviously deserved SSE (yes I know some of these people personally) and its a real shame to watch the company fuck this process up so badly.
It's an expectation that some shit is always going to slip through the cracks when you are dealing with any kind of bureaucracy but in this particular case, it seems like no part of this system was particularly well thought out. The execution was therefore doomed to be botched and people were destined to feel devalued. Will we see an exodus of engineering talent from this company in the coming weeks and months? Possibly, though the fact management decided to unleash this shit storm right smack in the middle of the holiday season will surely delay the plans of some of those who will feel compelled to depart.
Of course a logical question to ask now would be how these positions will be assigned to new engineering hires. I have specifically asked this question more than once and the answer appears to be that the engineers and managers who interview the new hire will collectively determine the title the new hire receives. While this sounds good on the surface the reality is that hiring only good engineering talent is exceptionally difficult and despite the propaganda, this company is no better at doing this than anybody else. That makes this effectively a no-win situation. Because in order to keep it fair to existing employees, you'd probably want to allow new engineering hires to work for some people of time and then be awarded their proper title a few months down the road after their managers get a better feel for them and the work they are capable of doing. However in reality a system like this would severely curtail the level of talent willing to come work for the company as it would leave them feeling devalued out of the gate and almost certainly require them to accept lessor compensation up front. So when it comes to addressing this particular problem, the company truly has my sympathy as this appears to be a no-win scenario.
The last question you might be asking is, why does any of this matter? Who cares about a title? And that is a really good question. For the vast majority of my career, my title hasn't mattered. In fact as the popular sentiment shifted titles from "Developer" over to "Engineer" I have actually gone back and changed the listed titles on my resume for positions that didn't explicitly give me a title. Feel free to check it out. The only older positions that list me with a title containing the word "Developer" are the positions in which I was assigned that specific title. For the most part, titles were transient.
In truth I consider myself a technology oriented problem solver who generally develops software based solutions. I do not consider myself to be an engineer. While we are capable of building great things, the process by which we do it, doesn't resemble engineering in the slightest. Thanks to my time working at GE for almost four years surrounded by actual engineers, I have the benefit of that knowledge and I cherish it each and every day.
In any event, titles mean very little to me. But in this case these titles are being tied directly to advancement opportunities and future compensation growth, so the people receiving them not only have every right to be concerned, but a duty to play an active role in constructively criticizing the process. Sadly it seems the time for refinement of said process is over and the flawed results it has produced have been unleashed.
To all of my colleagues who suffered as a result of this process, you truly have my sympathy. I would encourage you all to both ask yourselves some honest questions about what you could've done better as well as asking what management could've done better. Demand answers and accountability. Don't settle for half-baked excuses. If you believe you have earned the SSE title, make your case. Write emails to members of upper level management and schedule face to face meetings when you are on-site. Do not go gentle into that good night.
For those of you who benefited, you should be wary of what is to come. It seems clear to me that people who got screwed and people who benefited both seem to agree on one thing: The process used to get there was utterly fucked and made little sense. That being the case, there is virtually no guarantee that they won't decide to do this again a year or two down the road and you could end up on the losing side of it, regardless of what they are telling you.
The moral of the story here is that arbitrary processes tend to produce arbitrary results. This process was no different and as the scumbags over on Wall Street love to say, "Past Performance is No Guarantee of Future Results". Lastly I strongly encourage you all to fight on behalf of your colleagues who were not properly or fairly represented in this process. Not only do you owe it to them, but you owe it to yourself otherwise you might find yourself in the same boat a year or two down the road.