This is a framework I try and use when explaining different levels to my team. This obviously doesn’t encompass the skills and experience necessary to advance levels. What I’m trying to convey here is a mentality that some people have and some don’t. The mentality itself is almost as important as the skills you acquire over time. For example, feeling responsible for the success of a project requires one to get good at learning how to communicate with a broad audience. So the levels as I’ve defined them for myself are Accountability, Responsibility, Ownership, and Vision.
The exact words I use don’t really matter. Many people will define this same idea using different words or some variation of them. It’s more important to keep track of what each level means with respect to the relationship to the work being done and the team.
At this level, you feel accountable if your work has a problem. This is the lowest level of mentality. The best people start beyond this level in their first role. It’s defined as the fear that you’ll be blamed if something goes wrong so you do the work necessary to avoid that blame. Sometimes it's not fear itself but missing a sense of urgency around work getting completed.
I’ve seen many engineers get stuck at this level and they don’t understand why they are not promoted. It’s true that you can get your work done and feel like you’re accomplishing something. You’re also putting a burden on others you might not realize. Take the example of an engineer building a mock given to them by a designer. Maybe there’s an issue with the mock that requires that designer to weigh in. The engineer goes and puts a comment on the ticket and then leaves it. Some time goes by and the designer might have missed it. Nothing happens until a tech-lead or manager has to poke the designer and engineer to see why it’s delayed. This engineer believes they did the right thing. After all, it’s not their job to chase down the designer. That’s why this level is so tricky. They have done the technically correct thing. Other team-members (especially cross-functional stakeholders) will not feel comfortable without oversight.
One strategy to get someone to advance to the next level is giving them a role model to look at. Point to the senior engineer and see how they unblock themselves. Make them understand that “not my job” will hinder their advancement. Make sure they get plenty of praise when they perform the desired action like chasing down something they need to finish their work. Public praise is the best because then others see that this behavior is rewarded.
At this level, you feel responsible for your work. For some people, this is a perfectly fine terminal level. You won’t make it to leadership but you can be a valuable contributor. Folks at this level know how to unblock themselves. They will seek out others who can help them move faster.
Engineers here can be given complicated tasks and left without much oversight. They will have significant autonomy because you trust them to ask for feedback when it’s needed or important. At this level, you’ll usually find someone’s title as a senior engineer and sometimes tech-lead. They will form the backbone of your engineering team. You need to have a hard conversation about whether they want to advance. The next step requires significantly more investment and time. If you do find that they want to take on more then pairing them with a specific person for a longer period of time is most helpful. The jump to the next level is not as hard because the foundation of this mentality is already in place. Keep in mind that there will be times where they mess up trying to grow. Don’t let them get too discouraged.
When an engineer starts to excel at this level, it’s tempting to start talking about the issue of the day in their 1:1s. You talk about projects and people on the team. While that’s important for their development as a strategic thinker, you want to make sure you keep their goals in mind also.
At this level, you feel ownership for the success of your projects, product, system, and team. This level is not that different from the previous one but the main difference is now you’re proactively thinking of others as well. It’s not enough that the engineer’s work gets done. They want to help everyone get their work done. That means if the other engineer on their project is blocked, they help them get unblocked. If they see an error that they recognize or know how to fix, they speak up and help. This means documenting what they learn for others because they want to leave the world better for the next person. It also means that their sense of worth no longer comes from their individual work. It's a hard mental transition to make. Many struggle separating themselves from the volume of code they feel they should be shipping.
Now we’re getting into the first level of leaders. These are the engineers that you count on every day. The engineers that you need to keep challenged and engaged. We’re no longer talking about performance issues in 1:1s. Now we need to find new and exciting work. Often they have great communication and planning skills so you find ways to delegate more strategic work to them. These engineers are hard to find so don’t take one for granted.
With more experience, they are running your teams and making sure work is progressing through the sprint. When something is delayed, they find out why. They’re working to give everyone what they need. For stakeholders, it’s information and timelines. For engineers, it’s keeping work in the queue.
This is a hard level to stay at for years. They take a lot of crap at this level even when things are going well. They’re not exactly in leadership but also not really a contributor anymore. Sure, they find it exciting to be a fly on the wall in important meetings for a while. Don't get complacent with their growth. You want to have a plan for what comes next. You want to either move them into a technical or people leadership role once they’ve mastered this level.
Welcome to the level you probably hope to be at (or you’re already there!). This is the level where you develop the ability to predict what will be needed in the future. We’re no longer talking about developing a mentality for excellence. You’re excellent at this point. Now it’s about pattern recognition and strategic thinking. You want to see the whole chessboard. This is thinking about organization design. You want to be thinking about changes that scale the whole team, not individuals. How can we maximize productive hours? How can we bring in more candidates? How will we scale our platform with 10x the traffic? These are the types of questions you are concerned with.
Once you start thinking strategically, it’s a clear path to higher levels of leadership including CTO/VPE roles. At this point, the mentality is as a leader. You may have a boss but the as far as you’re concerned, the buck stops with you. This takes a long time (I’ve only scratched the surface as the head of engineering and a director). Different size companies will require vastly different skill sets. The more advanced mentality here is that you’re thinking about how engineering fits within the entire company. You're learning to move the entire engineering team to respond to the changing strategic needs of the business.
And that’s it. The great part about this framework is that it doesn’t require years of experience. It’s a mindset. You can just decide to think differently. As with most things, you’ll have to practice. There will be times that you want to just let someone else deal with something you know you can help with. Maybe it’s been a long week and you could just ignore it. No one will blame you. But just like any habit, you have to be consistent about it or it’ll never stick. But also like a habit, one day it’ll be your norm. Then you won’t have to consciously try to think that way anymore. That’s just you now.