VS Code extension: auto CI/CD in GitHub Actions Modern cyber security tooling should empower developers
As engineering managers, we carry many responsibilities. Two of which are:
These two responsibilities were considered critical amongst all the engineering managers I have met throughout my career as an Engineering Manager and as a Software Engineer.
Another consensus among them all was that senior engineers are a key enabler to both responsibilities. They are the main players the team lead can rely on to achieve those goals.
I spoke a bit about the senior engineer's role in my The Last Dance blog and this blog relates to it - I want to discuss about how can engineering managers successfully achieve teams' goals by harnessing their senior engineers' power.
Most of the engineering managers I have met assigned their senior engineers to lead all the critical features, I would like to turn the senior engineer around and suggest the opposite - the more senior you are the the less you lead engineering efforts in the team. The more senior you are the more you promote other engineers by giving constant feedback on features they lead.
Needless to say this only reflects my opinion :)
The common team structure I saw was senior engineers leading features, while trying to improve and grow the non senior members during the process.
The senior engineers are the ones responsible to make the feature delivered, they are the ones with all the context and they are the active leaders of those feature squads - communication with stakeholders, design etc.
The team lead's job is to make sure the senior engineers are on track and help them if needed.
The advantages are obvious: this way there is maximal certainty that the features will be delivered on time, the non senior members learn by watching the senior in action and by (hopefully) active mentoring.
Working in this structure preserves the current hierarchy of the team. The seniors are the leaders, the non seniors are there to be led.
This by definition means that the squad members will always be as good as their senior squad leads: all they see is what the senior engineer shows them - in the happy flow by active mentoring, in the worst case just by watching them.
This is the key part in my opinion, both the seniors and the non seniors have limited amount of potential growth in this scenario, actually the growth is relatively really slow.
The non senior engineers are the ones responsible to make the feature delivered, they are the ones with all the context of the feature and they are the active leaders of those feature squads.
The senior engineer's role is first and foremost to constantly give feedback to the non senior engineer who leads the feature - help them learn by providing them a great ground for them to grow.
The team lead's job is double:
The non seniors feel that the limit to their performance is only themselves and not the senior who leads them (in the scenario before). The fact that the non seniors lead the feature provides them the needed experience and confidence to later become seniors themselves.
When you zoom out and see what happens to a team that uses this method for a long time you see strong teams where all the team members maximize their growth in their respective areas of learning.
You see a stronger team where seniors constantly grow the non seniors, leading to a robust team.
You see a team that promotes more people to seniors.
You see a team where senior engineers can break through the senior limits and get promoted themselves.
You see a team with satisfied team members :)
Having said all of that there is a short term risk here - you put all your faith and trust on the non senior members to lead critical features and rely mostly on the seniors to help them.
This requires a huge trust in the team and an ability of the team lead to maximize the empowerment of the team members.
I personally really enjoy this step, when you trust your team this way the team feels it. This ability to rely on the team while having long term team building vision is exactly where we grow as engineering managers, but this might be a topic to another blog post :)
Turning the senior around means to flip the team structure - let the non seniors lead features and make sure the senior members grow them by constant feedback.
This allows strong team building, maximizes everyone's growth and eventually fulfills the two objectives stated at the beginning: delivering on time and supporting our team's professional growth.