Developer Maturity Model
The developer maturity model is meant to give an explanation of the growth of a typical software developer. Please note that there is no “specified time” that you need to progress. This also has nothing to do with how much you get paid or should dictate your job title or role. What is important is that this lays the foundation of career growth for you to utilize and reflect where you feel you stand and where you go as a software engineer.
What do I Mean by Developer?
When I say developer, I mean someone who actually puts code to notepad++ (or whatever the cool kids are using these days). This doesn’t have to do with career paths, so this does not include things like “Tech Lead” or manager. This is you as a developer.
The Three Maturity Levels
I classify three maturity levels:
- Junior Engineer
- Mid-Level Engineer
- Senior Engineer
Junior Engineer
You are the baby of the industry. You have little to no experience and this is probably your first engineering job. The only expectation for you is that you are like a sponge and you can soak up a lot of water. Your main job is to learn - What is version control, what are code reviews, what does my manager do?
What are you capable of doing? Basically what your team tells you. Fix this bug, implement this feature, test that webpage - following the “paved road”.
Junior developers will be able to code small features by themselves, but for meatier tasks they’ll need to rely on more experienced engineers for guidance.
Mid-Level Engineer
You are the cook of the team and you keep the dishes coming out. The mid-level can work on most work without much assistance. You understand the code, tools, and processes and are a pretty effective worker.
This I categorize as the “suggestion” phase, where you are able to make suggestions about how things to work, but you don’t have the experience to back them up. You are helping the team formulate the approach, but may need assistance from senion members to push the idea through.
Senior Engineer
You are the captain of the ship, you have the code prowess to complete any of the work that mid-level engineers can complete.
Where senior developers are worth their salary is where they can provide the vision for the team and organization. Vision in that they are guiding the direction of the team - what technology should we use, what architecture design should we follow, how can we team’s output?
The partner of vision is leadership. Leadership is the ability to move the needle, to make change. You can’t have one without the other. Without vision, a leader may lead their team down the wrong path. Without leadership, a visionairy will see the end but unable to lead their team towards it.
What is Important is the Journey
You’ve probably come here to see how you can become a senior engineer, but this article is not about that. There are tons of material out there with tricks like make your boss a rockstar or work on high profile projects, but those are empty advice.
Think about growing up, you can’t just skip straight to adult. Each phase of your journey is just as important than the next.
Being a junior developer is formative period where you are learning a bunch of new things and the world can seem so big. You can create whole websites in seconds, you can deploy your applications with a click of a button.
Mid-level is where you build that development muscle and start to build intuition for how things should be.
Senior is when you can pull from all your experiences and make the most impact.
How to Progress
You want to know the real secret to progress?
Treat your career as a craft. Imagine yourself as one of the sushi chefs in “Jira Dreams of Sushi”. Those sushi chefs that spend years learning how to wash the rice, because by learning it is important to know the intricacies of how the rice reacts, how long to cook the rice for, and whatever you need to achieve the perfect flavor and texture. This was kind of a joke, and I don’t think you need to learn how to cook your code, but the meaning still stands. When your learning, you won’t worry about progress - progress comes to you.
Be real with yourself. Understanding where you are will help you know what you need to work on. Juniors should focus on learning how to implement more effectively, mid-levels should learn about suggestion, seniors should just look for how they can have the biggest impact.