This is the first in a three part series on empowering early career devs. In this post, I’ll cover why its so important for those of us in senior or lead roles to invest in and encourage the early career talent on our teams.
- Empowering Early Career Devs: Why its important
- Empowering Early Career Devs: My current team process
- Empowering Early Career Devs: Strategies for your team
I want you to think back on your career progression. How did you get to where you are today? How did you grow from an intern, apprentice, or entry-level to your current role?
Did it feel a bit like trial by fire? Or like drinking from a waterfall?
My experience definitely did. I can remember a few instances in particular like when I was a just-hired consultant, still in college, and I had to explain to a very angry client why deploying untested code to production at 1 in the morning is a bad idea. Or another time at my first job out of college where a large payment transaction project fell in my lap with a poor estimate made by someone else, and I had to manage unrealistic client expectations on my own. In both of these cases, I did not have the support of someone in a senior or lead position. And unfortunately, I don’t think my experience is uncommon. There has to be a better way.
In my current role, I’m leading a team of 8 developers. This isn’t the first time I’m leading a project, but it is the first time I’ve led such a large team of varying experience levels, and where I’ve shared responsibility for their professional growth. I’ve also started a community in Chicago called Dev Together that connects people starting their development career with technical mentors. Both of these experiences have opened my eyes to the tremendous need in our industry for solid mentorship and coaching for those early in their careers.
The current market problem
This brings me to the problem with our current technology market. Companies fear investing in junior talent right now. If you look at any of the job boards, everyone is trying to build out teams of rockstar senior devs. In my opinion, this is a losing strategy. It costs so much money to hire a team of senior engineers: recruiting costs, their salaries, and the attrition caused by lack of career growth—when everyone is senior, where is the growth potential?
Additionally, not every task on a project requires a senior’s experience. Companies are overpaying for work that someone early in their career could be challenged by and learn from. It costs less to mentor early career devs than to hire a team of all seniors.
And I don’t believe the argument that senior devs don’t have time to mentor less experienced employees is valid. Your mid and senior employees need experience mentoring and coaching if you want to grow them into amazing team leads and managers that teams want to work with.
It’s an unfortunate reality in this industry that job hopping is often the easiest and quickest way to level up. I understand why this would make some companies hesitant to invest in their early career talent. They worry that they’ll invest a lot of time, energy, and money into their early career talent just to have them leave for an easier title change. But where do think senior devs come from? I was talking to someone recently who made the joke of the "senior developer stork," and it just doesn’t exist. People who feel valued, who are challenged, and who have the support of their leads and management are more likely to stay than those who are given the “intern work” until they get bored and leave just to find something different.
So I’ve been reflecting on how best to offer mentorship and coaching to meet this need. We need to empower our early career talent if we want to retain them and grow them into the senior devs we’re all looking for.
Unpacking empowerment
So let’s go back to the title of this post: “Empowering Early-Career Devs” and unpack it a little bit. What do I mean?
Empower verb make someone stronger and more confident through encouragement and support of their ability
This is the definition of "empower" that I particularly like and use. Of course, we want to grow someone’s skills and make them stronger developers, but we can’t forget that we want them to own their growth. We want to help foster confident, independent developers. And the last 4 words of this definition are my favorite part: “support of their ability.” Everyone has innate strengths, and everyone is capable. By supporting the skills and talents the people on your team already have, you can hone and grow those talents into the skills needed for them to lead teams of their own.
The second part of the title is “Early-career,” and let me be really explicit about what I mean. I simply mean someone who is beginning their development career.
Early-career adjective in or during the beginning part(s) of a new career.
Junior Early Career
I’m sure you’ve noticed by now that I’m staying away from the word “junior.” So why is reframing “junior" as "early-career" important?
“Junior” has a negative connotation. I don’t think its warranted, and I don’t think its earned, but there are many who view junior as “probationary” and other types of less than rather than viewing it as someone who is learning.
Identifying someone as “junior,” because of the negative connotation, can cause imposter syndrome flare-ups. If you use the term junior and the developer thinks you might view that as less than, it makes them feel less than.
And just because this is someone's first development job, doesn’t mean that they’re “junior.” Career switchers bring so many transferable skills to our industry, and often its the communication or soft skills that can be most difficult to learn on the job.
Early career devs have fresh perspectives to bring to your team and no bad habits to unlearn. And in my experience, early career devs have all of the enthusiasm and none of the arrogance that comes from a lot of senior technologists.
So shouldn’t we use positive language when talking about this group instead of labeling them as “junior”?
What makes a senior developer?
Now I want to shift gears a little bit and talk about the other end of the spectrum— senior devs—for just a minute. I’m sure you have ideas about what the characteristics are that define a senior or lead developer. I break the defining traits into 2 categories of skills and experience. For me, a senior dev has strong technical communication, time management, meeting facilitation, self-direction, consulting, and client engagement skills. And a senior or lead dev has experience making decisions, being accountable for those decisions, looking at the big picture beyond the feature checklist, and leading a team.
So how do you help foster growth for someone early in their career to a senior dev who exhibits all of these traits? You need to give them the opportunity to practice all of these skills and gain these experiences before they step into a senior or lead role. Remember, we don’t want a trial by fire experience for them the first time they’re leading a team.
In the second part of this series, I’ll talk about what processes we’ve been putting in place on my current team to facilitate these types of opportunities. I’ll walk through what we’ve done and what we’ve learned.
In the final part of this series, I’ll give you strategies to build a process to empower the early career developers on your team.
Find related posts:Engineering managementMy conference talks