skouf.com

The website of Nik Skoufis

Engineering levels

An image from above of nested white levels of the inside of a building with people in them

Photo by Leslie Lopez Holder on Unsplash.

I was browsing Twitter the other day when I came across this tweet:

Scoop: levels are introduced at Netflix for engineers and there is no shortage in drama over decisions of who got to be Senior and who Staff.This happens every time a company introduces levelling. Except for most at Netflix: it’s the first time ever they experience it.— Gergely Orosz (@GergelyOrosz)

My first reaction was “wait, Netflix don’t have levels?”.

The answer is no, they don’t, at least not until recently/shortly in the future if this tweet is to be believed. They had a ‘grad’ level, and then a ‘senior’ level, and that’s it.

Already, there are probably a bunch of things running through your head. First come the questions. How does compensation work? How does career progression work? Who makes decisions and leads things?

After that comes the thoughts or feelings about this idea. “That couldn’t possibly work”. “Yeah, but in the real world, we have X constraint, and that’s why this wouldn’t work”. “Sure, go ahead, but it’s your own funeral”.

And indeed, the point of this tweet is that yes, Netflix have decided this infact doesn’t work, and are changing to align with the rest of the tech industry by introducing levels.

But let’s back up a step. Netflix are a billion dollar company. They have thousands of engineers. Engineers that work at Netflix have pioneered advances in many areas of software engineering including big data, continuous delivery, performance analysis and tracing, and operating an enormous streaming media platform at scale. Netflix are over 20 years old. And they’re only just adding levels to their engineering roles?

My point is this: the idea that an engineering organisation somehow can’t succeed without creating levels and incentive structures is patently false. Netflix prove it. I feel that taking an ’exception that proves the rule’ attitude towards Netflix’s success leaves a lot on the table. Netflix prove that having levels at an organisation isn’t something inherent to running a business. It’s a choice, but it’s a choice that is usually explained away as “that’s just how it’s done”, with no thought about the alternatives.

That brings us to the topic of this blog post: an exploration of the alternative to traditional levelling at software organisations. Namely: what if we had less levels, and instead derived all of the things that we think come from levels from other places. What would our engineering orgs look like?

If I can, I’d like to ask a small favor. While you’re reading this post, every time the thought of “that sounds nice, but it won’t work in practice” pops in to your head, go back and re-read the paragraph I wrote above about the success of Netflix. It’s incredibly tempting to dismiss these ideas out of hand. Instead, try to see them for what they are: a different way of doing things, with a different set of pros and cons.

Having worked there until a few days ago, you have no idea what you’re talking about WRT the impact everyone being a “Senior” was. 😊— Tim Heckman (@theckman)

What do you do about pay?

The first question that naturally jumps to people’s minds is: in the absence of levels, how do you manage pay? If everyone is at the same ’level’, how do you figure out who gets paid more? I think there are two answers to this question.

The first one is probably something that feels incredibly radical: you can just pay everyone the same. Oxide Computer do this. Click in to any of their open roles and you’ll see they pay the same, regardless of location. I can hear the screams of socialism already, so I’m not going to spend a whole lot of time on this idea. But I think it’s a good one, and perhaps it can’t scale beyond a startup, but it certainly solves a lot of problems. If you believe in things like a universal basic income, and you believe in companies that take care of their employees, why can’t you believe in a corporation that takes the wealth that it generates, and apportions it evenly among its employees?

With what most will dismiss as a crazy idea out of the way, let’s move on to the slightly less crazy solution to the pay problem: just keep doing what you currently do, but without the levels. In any company with defined levels, those different levels have different pay. But usually, that pay is defined by a ‘band’. These bands allow for you to get pay raises every year, and to accommodate negotiation around starting salaries and raises and so on, without having to promote you.

So you have different levels of pay, and there’s wiggle room within the levels. Why not just expand the wiggle room to be infinite, and do away with the levels? It sounds crazy, but it’s not dissimilar to what already happens. Every year you might get some pay bump that is based on performance or inflation or how well the business is doing. That’s already the case. There’s no longer a way to give people really significant bumps of pay around promotions, because the concept of a promotion no longer really makes sense. But fine, that’s not a completely intractable problem. Either choose some cadence or some criteria for when you can give people a big bump, or just have people be content with frequent, more modest bumps. You could essentially ‘smear’ the big pay bumps out, and people would still be happy.

There are probably a few outstanding questions you might have about this idea. The first is: in the absence of defined levels, how do you make sure that people aren’t underpaid? Either out of malice (“I don’t like John, I’m going to pay him less”), or out of systemic issues (e.g. women get paid less than men, because the gender pay gap is real). Hopefully you see where this is going: both of these problems are real, and they exist regardless of whether you have levels or not. At least if you didn’t have levels you could do something wild like make sure the pay was equal regardless of gender for real. This solves a common problem with gender equal pay programs, where although (on average) male senior engineers (for example) are paid (on average) the same as their non-male counterparts, the distribution of senior engineers skews heavily towards men, so the overall pay for non-male people is lower. If you didn’t have levels, you could just make sure that average pay for engineers was equal across genders, and be done with it. These problems are with your engineering culture, society, and checks and balances around equity in the workplace, rather than some magical property of assigning everyone a level.

Another question might be: if I don’t have levels, how do I know if I’m being fairly compensated, relative to someone else? I’d challenge the premise a little here: without pay transparency, you never know if you’re being fairly compensated relative to others. If you’re uncomfortable in an environment where some people are paid more than others for capricious and arbitrary reasons and everyone knows about it, maybe you don’t have as much of a problem with paying everyone the same as you think you do. But then we’re back to what we dismissed above as too radical: just pay everyone the same. So if you really want to pay people differently, pay transparency or not, then yes, being able to say ‘well I’m a senior engineer, they are a senior engineer, we should be paid the same’ is a comfortable crutch, but I think it presupposes things that are not true. What this presupposes is that promotions are objective. I’ve never worked in an environment where that is true, and every job I’ve had has contained an equal mix of people who were promoted before they should have been, and people who were under-promoted. If you can come up with a purely objective measure of how much someone should be paid, then by all means use it to set engineer pay. But in the real world, promotions are subjective, and therefore pay is subjective, and removing levels doesn’t change that.

How do you know if you’re being fairly compensated in this level-less world? Well, do you feel fairly compensated? If not, ask for more, or go somewhere that you will be paid more. If you do feel fairly compensated, don’t worry about it, and worry about it when you feel like you aren’t any more. This puts much more emphasis on individuals and our evaluation of others to determine what feels ‘fair’ and what doesn’t, but as I alluded to above, it already works this way.

With levels, this manifests as the “N+1 shitheads problem”, as Bryan Cantrill put it in his 2013 Surge talk (which by the way, is pretty much required viewing from my point of view, and informed many of the ideas in this blog post). Organisations with levels suffer from the “N+1 shitheads problem” where someone at level N e.g. senior engineer is always going to be demotivated when they see someone at level N+1 e.g principal engineer behaving badly or not being as good at their job as you feel they should be. And this is phrased in terms of N because it never goes away. You might get promoted to level N+1, but you’ll just find someone at level N+2 who similarly frustrates you.

Getting rid of levels de-emphasises this and takes away the obvious issues, but it just shifts the issue to pay. Paying people differently is always going to have this problem, because we equate ‘paid more’ with ‘worth more’, and people are always going to be put-out if they are told ‘Sally is worth more than you, despite the fact that you think she contributes less’.

The next question might be: in the absence of levels, who leads who? Let’s explore that in the next section

Who leads, and who follows?

Another common argument against abolishing levels is that in the absence of ‘seniority’ that is made clear by having ‘senior’ or ‘principal’ or ‘staff’ in your title, who is in charge? To me, this clearly falls in to the category of things that are so deeply entrenched in our society that it can be hard to imagine how things would function with out them. So to help us think about a world without levels, and how leadership and authority work in that environment, I think it’s helpful to look at examples where we don’t take cues from explicit titles, yet we still manage to achieve the required level of leadership and outcomes we need. If we take these examples and try to apply them to the workplace, hopefully we can convince ourselves that we don’t strictly need titles to sort this stuff out.

The first example is going on a camping trip. When you go camping, there are a variety of tasks to be done. You need to pitch your tent, you need to collect firewood, you might need to put up a clothesline, and you might need to prepare what you’re eating for dinner. If you’re going camping for the first time with a group of friends, how do you figure out what all the tasks are, and then assign them to people? I’ve certainly been on camping trips without any leadership, and the results have been a bit of a mess. But in other cases, a natural leader emerges, and it’s generally their job to figure out what needs to be done, and to give out tasks to people. This all sounds very formal, but it doesn’t have to be. I’d argue that a really effective leader in an environment that’s meant to be relaxing like a camping trip makes this all feel pretty effortless and easy.

And how is the leader chosen in this situation? Well, it might be the person who organised the trip. Or it might be the person who’s most experienced with camping. It could just be the loudest, most charismatic person in the group. These are all perfectly valid ways of choosing a leader, each with their pros and cons. The point is that we didn’t need titles to choose who was the leader.

Another example is the group projects that I’m sure you all were forced to do in university. Now I’ll be the first person to go on a tirade about how fundamentally flawed most group projects at university were, and still are, for a number of reasons (chiefly, lack of oversight to ensure that people pull their weight, and lack of consequences for not pulling your weight). But there is one quality of group projects that is useful to examine: frequently, a de-facto leader emerges.

This might be formal in the sense that the group elects or nominates some person to coordinate things. In some assignments, the teaching staff might explicitly suggest selecting a leader. But frequently, it’s just the person that’s most fed up with the lack of focus or direction who self-nominates to run things, because they feel it will lead to better outcomes. This happens in an environment devoid of titles to tell us who should be leader. Perhaps the leader ends up being the most experienced person in the subject. Or perhaps the person who leads is the most outgoing, or the best communicator, or the most organized person. Or maybe it’s just the mature aged student who has some life experience, and has seen the effects of a lack of leadership. Regardless of who is chosen, a choice is frequently made, and made without titles to point to an obvious or natural choice.

So now that I’ve primed you a bit with those examples, you’re hopefully a little more open to the following assertion: in the absence of titles, leadership will still happen. Leaders will emerge, either because of experience, seniority (of age or time in the industry), personality, or by fiat. Maybe engineering managers have to step in and designate someone a leader to steer a project. But none of these mechanisms require titles or hierarchy.

In the absence of arbitrary rule about which people with which titles must be leaders, and which people with which other titles must be followers, everyone can lead and can be lead, as the situation requires. How many times have you observed strong leadership from people with junior-sounding titles? How many times have you seen someone very senior leading a project, when someone more junior than them would probably have done a better job either through more experience in a specific area, better people skills, or both? If we abolished de-facto leadership based purely on title, we’d see lots more growth from junior engineers by giving them the opportunities for leadership that they need, instead of always giving those opportunities to those that have already done the growing.

One counter argument I’ve seen to this idea is that it can’t possibly work in cultures where hierarchy and respect for elders is deeply entrenched. In some cultures, respect for those with a higher title for you is incredibly important, and failing to defer to those in positions of authority can carry consequences. A team member with a junior title being seen to give ‘orders’ to a team member with a more senior title can cause frustration or anger, and lead to problems within a team, or complaints to HR.

On the one hand, I think being sensitive to cultural differences is incredibly important in the workplace, and it’s insensitive and silly to think that we can or should ‘fix’ these cultural differences. That being said, if an organisation decides that they value junior team members speaking their mind and leading when and where appropriate, it’s incorrect to assume that the fact that some cultures are averse to this is an intractable problem that can’t and won’t be tackled.

A great example of this is the aviation industry. Sadly, the history of commercial aviation has examples of aircraft crashing because of issues related to adherence to hierarchy and power distance. For example, JAL Cargo Flight 8054 crashed because of an intoxicated captain. The other two crew members were Japanese, a culture with a relatively high deference towards power and hierarchy. They did not want to humiliate their superior, and so didn’t stop him from flying the plane, or mention the fact that we was clearly intoxicated to him.

The aviation industry has learned that allowing junior members of the flight crew to raise issues that contradict their superiors is important, and so have figured out ways to allow for this. This might mean training, it might mean operating procedures that include places for junior crew members to speak up, or any number of other things. The point is that they’ve managed to tackle the issue head on, instead of just avoiding it. I’m not suggesting that abolishing levels in an organisation with people from cultures where power distance is important is going to be easy, but I think accepting it as a reason to not even attempt to lessen the importance of levels in an engineering organisation is to give up without trying.

Another question you might have about leadership in a level-less environment is: if there are no levels, how do you incentivise people to do things, or to take risks?

How do you incentivise people to do things?

This brings us to, I think, one of the more perplexing arguments against levels: levels push people to be higher achievers, to take more risks, and just generally to get things done. Now sure, if you tie levels to power and to compensation, you can definitely use the carrot of influence and money to draw people into creating value for your business. But there is an enormous downside to this.

If money is the only incentive for people to stay at your organisation, guess what happens when someone comes along and offers them more money? They will leave. Power is exactly the same, and works in exactly the same way. Many-a-time have I seen engineers jump ship, because they simply weren’t being promoted. Incentivising people with money and power is a great way to great a fragile workforce, who will jump ship when someone gives them a better offer.

And not only is incentivising people in this way fragile, it’s also something I’m explicitly advocating against above. So even if you’re willing to accept the risk of waving the money and power carrot in people’s face, doing so is bad for other reasons. You can’t incentivise people to do things with money and power, because it’s an enormous risk. So how do you incentivise people to do things?

People should want to solve problems because they believe that they are valuable problems to solve. Or because they believe in the mission of your organisation. Or because they get to collaborate with great people while solving them. The motivation to take risks, to build great things, to get things done is always going to be strongest when it comes from people’s innate desires, rather than the promise of money or power. You just have to provide them with the right environment and let it happen. And excitingly, you don’t need any levels to get this done. There’s no reason why a senior engineer is going to be more motivated to solve a problem than a junior engineer.

Motivating people with money and power is a fragile method of motivation, that is going to lead to worse results. The alternative is going to lead to better results, and doesn’t require levels at all.

That’s all well and good, but how do we get there?

Well, there are always two ways. Slowly but surely, and quickly and violently.

Most organisations are too averse to quick, violent change to make things viable. That said, it’s definitely possible. You just have to be in charge, and be able to articulate the benefits.

But let’s focus on the slow and steady change. What can you as a senior engineer or as a leader do today, to shift the needle towards an organisation or a world in which we can just do-away with useless titles?

Well firstly, and admittedly self-servingly, share around this article. The idea that titles are inherent to our workplaces and our societies is so deeply ingrained that most people will have never engaged with these ideas. Share this around, get people to read it, and start having conversations about what a world without titles looks like, and what the pros and cons are.

Secondly, practice some of these ideas in whatever small ways that you can.

On pay, advocate for more equal pay. Advocate for pay transparency. If pay transparency makes you or people around you uncomfortable, interrogate why that is. Ask if it really makes sense to pay people differently. Ask who benefits from people not knowing what others are paid. Question why the bands are the way that they are, and why someone has to be promoted before they can make more money.

On power, defer to those more junior. Make sure everyone has an equal voice, regardless of their title. Give less experience team members the opportunity to lead and to exercise their judgement, in times when they normally wouldn’t have the opportunity. Have conversations about culture and cultural differences. Ask the obvious questions: if someone who is more senior than you is wrong, and you know it, how do you make sure that this comes to light, in a way that is best for the people and best for the organisation. Think outside the box in designing processes and training that leads people towards situations and outcomes that have less reliance on who is more senior, and more reliance and who has the best ideas.

And on incentives, agitate for the things that actually motivate great engineers. Make sure it’s clear what your company is trying to do. Write down your values, and make sure they’re relevant and resonate with your people. Give engineers problems that they can sink their teeth into, rather than solutions that they have to blindly implement. And let them have input into what problems need to be solved, so that you’re solving problems that are interesting to them. Make sure you hire great people that inspire and draw in other great people to your team.