Every SWE like me - would work under a supervisor aka Engineering Manager (or Team Leader). The same goes for you, doesn't it?
We would have our own expectations for our supervisors and so do I.
In this post, I will share my expectations, as a Senior SWE.
Has Solid Technical Skills
Yes, there is a big Engineering word in the EM title. You can't just be a good EM without the technical knowledge or skills.
In the big software world, technical is pretty essential. EM needs:
Well-known what is going on with the features of the team and how they work under the hood.
Coordinate with the Product Managers and predict the outcome of the features and the required tech stack,... in order to give a better timeline and delivery date based on the tech knowledge of the team.
To see the missing dots among the team members, know the weakness. Give them suggestions, draw a technical improvement path and challenge the team, to lead them to become better & stronger.
Talk & geek with the team member about the solutions.
I'd love to work with strong-tech EM. We can geek out days and nights, we can build awesome features together.
A solid-tech EM would know the difficulty, the technical debt,... everything. In order to ship the best feature & the best product.
EM isn't a Project Manager
The Project Manager is the one that does these things:
Managing boards (JIRA, Linear,...)
Creating tickets and assigning them to members
Unless you are working on an outsourcing project, then probably fine, since the final outcome would be: to deliver the product to the customer with fewer defects as possible.
But for a product, this is a big no. Your team won't grow with this kind of workflow.
Give your team some time to learn other things and to grow as well. The best balance that I generally follow is 70% feature work and 30% others.
For the 30%, I'd tackle things like:
Spare time to read articles, tech blogs
Do other things outside of my team's work (build libs, helpers, try new tech stuff,...)
Have time to do the code review
Have time to learn other aspects of the big product (yes, I do like reading code and adapting all things)
Plenty of ways to grow, doesn't it?
Protecting your team members from other teams is a really good thing to have. But don't overdo it.
Once everything is settled with the others. Get back to your team and give them feedback.
Overprotecting will block the growth of your teammates.
For every issue and error. Let's together discuss in a Retro session. List out:
What went wrong?
What could we do to make it better?
We are all humans. Human makes mistakes (and it's a fact). We don't blame the humans, we will improve the tools and the processes in order to avoid mistakes.
I feel like, if I'm being overprotected, then I don't and will never grow fast as I can. I need to acknowledge my mistake so that I won't make it again.
Indeed, give me the straight answers, the straight feedback for the last 2 weeks (or a month). I'd love to hear it.
If everything's bad, I'll make a plan to improve myself and ask for a review in the next upcoming 1:1.
If things are good, I'll ask if I need to improve in other fields/areas,... What could be my next target, any suggestions? So on and so forth.
(BTW I always have a list of TODOs from learning to working before every 1:1, so for me, I always share all the next things that I want to do and my EM will help to prioritise it).
And, it's not about work 100%. Would really appreciate it if we can talk a bit about life.
Ned Stark once said: "We find our true friends in the battle on the battlefield". Seems correct to me.
Well, that's it from my personal point of view.
You might have your own points as well, share with me below in the comment section 😉
We all love to work with the best manager in our mind, don't we?