There’s a voice in the back of your mind is telling you that it’s ok to want more than just sitting and coding all day…
That inner voice is asking you to take on more responsibility, own new processes or perhaps even lead a team on an awesome project.
Becoming a tech lead can be a great thing. You could take on more responsibility without having direct reports or become an engineering manager. This is a person who takes on the responsibility for your team members careers, business growth, deadlines and deliverables, company culture, code standards, technical debt, the list goes on. The path may seem hard to see at first so let’s see if we can clear it up a bit.
First things first…
If you want to become a manager soon then you’ve got to ask yourself why. Why do you want that role? Is it aligned with your long-term goals? Do you find yourself helping others? Perhaps you have been the go-to person everyone seems comfortable approaching for direction?
Not all paths lead to managing people. How you feel about the people around you and how comfortable you feel leading them is critical to making your decision. Many companies have software engineer individual contributor (IC) roles available as an alternative to management. These include staff engineer, distinguished engineer or a fellow engineer. They are senior roles without any direct reports. If you still feel though that you are comfortable working and taking responsibility for team members then it’s time to move on.
Next, ask yourself what drives you…
Is it becoming an engineering manager or some other type of team lead? Do you enjoy writing code or architecting software? Is it more about helping others to get the best out of them, negotiating deadlines with stakeholders or spending time with your business team explaining why code refactoring is not a waste of time?
Are you still convinced you want team leadership? Then you’ve got your work cut out for you:
1. Small steps
It is not what leadership is, it how you lead. A title with authority only allows you to give orders. What you do as a leader is much more important.
Start small at first. Take on more responsibility in chunks especially on difficult projects. Lend a hand to your peers by providing feedback on pull requests etc. Ask to help present on project updates. If you’ve got an idea to improve workflow, go ahead and bring it up. Mentor a colleague as well.
The point is to keep an eye out there as you will eventually see opportunities to step in and own a bit more than what you normally would in order to expand your own work and management experience.
2. Own it
When you own it, you must be accountable for it. Leaders take responsibility and do not blame others for mistakes, deadlines missed or bugs in the code. You are accountable for all you do or all you don’t do.
Help to fix the bug that someone introduced and work out the how to avoid it part after its been resolved. Deliver what you have committed to and if this needed a different deadline then negotiate it with your manager again. This is your business now and it is on your watch. Run it like it’s your own and show you care about it just as much.
3. The politics of relationships
If you don’t like the “politics” then you won’t like relationships. They are the same thing. It is relationships that will get you through the tough times and be there to celebrate the wins.
One of the big responsibilities of an engineering manager is to build relationships. To be a manager means making things happen through other people as well as yourself. Start now in building those relationships. These are you future peers in the end and by starting off on good footing now, will only help you later on.
You can work on a few things now to get started. Think about presenting at a tech-talk or doing a workshop or even mentoring developers outside of your team. On a side note, you will also build relationships with the engineering managers who appreciate your efforts to work through those tasks.
4. Know your tech
You will still need to think like an engineer first. To become a manager of people still means you must be a great engineer with hands-on experience. Make your goal to become one of the strongest on the team.
It goes without saying but we’ll say it anyway: if a manager can’t code or can’t understand the technical details then that manager can’t take part in any technical discussions. It will be on you to own your skills once you move on to a management position. Keep them sharp enough to stay relevant at a higher level of architecture.
If you know you are technically ‘strong’ then you are the team player that will do more god than harm to the team. All ‘really strong developers’ who aren’t team players are more harmful than helpful.
By virtue of being one of the strongest on the team, you should be looking at ways to show you have an open-door to other team members willing to learn. Look at pair programming, code reviews, presentations or even open/inner source projects to help you get started in mentoring others.
For what it’s worth, rarely will you get someone asking to be mentored but by doing some of the things mentioned above, people will take notice and will naturally head your way for advice or direction. You are now not only building meaningful relationships but are also earning the respect of you peers. With luck, the same will be shared by them over time.
6. Delivering projects
Project management is one of the core responsibilities you’ve got as a leader. If you have projects now that are late or you’ve missed deadlines, or underestimating tasks then others simply can’t trust you. You have to be organized and at the top of your game here.
Estimating tasks is not easy, we get it. Software projects are hard to estimate given the amount of uncertainty in the process itself. It is hard yes but not impossible given the right process. With constant communication on progress and expectations to your manager and stakeholders, this will make your project that much less vulnerable to surprises.
7. Communication is key
This one cannot be stressed enough. If you cannot communicate, you will fail before you’ve even had the chance to begin. Your communication needs to be clear and concise.
This comes in many forms, including the obvious, verbal, written and to go as far as body language. It is important to always be aware of and work on your communication skills. Remember not everyone responds to the same communication. Therefore, while you talk to your team as a group, keep in mind you may have team members who will need a separate discussion as a checkpoint to verify understanding. This may not always be the case, but it is important to know that as you build your relationships, how you communicate to each one is critical.
8. Managing up and sometimes up and over
To manage up (even over your manager) means constantly communicating with them to manage the expectation. Nobody like ‘surprises’ at work and that definitely includes your manager and their boss. Establish a trust relationship as soon as possible. Go for the high-profile project, get it done on time and on budget. More projects will follow and with greater responsibility.
9. Crisis and conflict management
Issues with production will happen no matter how many unit tests or integrations tests you’ve done. Yes, its always the goal to minimize bugs in your project but it is equally important how you handle production issues. Someone who panics under pressure will be seen as someone who lacks leadership skills in the eyes of others. Be the calm that your team sees under the stress of the event. Now that doesn’t mean you won’t feel stress when you are alone, it only means you’ve mastered focusing on the now to get it resolved and will deal with the stress once the situation has been taken care of.
Leadership rarely comes with an invitation to join.
Step up today, you don’t need permission to star on the small steps mentioned above. Be an expert in your field, work on your communication skills, start building great professional relationships. Manage your time wisely and meet your project deadlines. It is not just the hard skills that will get you noticed, it is in the soft skills above that concern people that will help you to grow and be seen as a natural leader ready to rise up!
More About Us —
Band of Coders Show is a podcast dedicated to helping software developers problem-solve their biggest leadership challenges. We talk leadership, productivity, team building, effectiveness, and much more.