Its almost 2 years since I assumed the role of a technical leader.
I felt it would be a good time to reflect on my experiences and learnings.
Building Trust
Growing into a tech lead role from a software engineering role was a different and challenging experience.
Being promoted as a tech lead from within a team can be one experience, but joining as a tech lead of an already established team can be a different ball game altogether. My case was the latter where I joined as a tech lead for an already established team.
So my first task was to build trust and the only way to build trust is to get to
- Observe how the team works
- Work along with the team to understand what they have to go through
Investing time in best practices
I take inspiration from cricket and best example of a leader is Mahendra Singh Dhoni.
My observation has been that he has focussed on the process and the results just followed.
Similarly in a software engineering team it is wise to invest time in best practices.
Inculcating these practices and processes cannot happen overnight and can take long periods of time, sometimes even months because of other priorities.
One just needs patience to pursue them and results will show over a period of time.
Collaboration
Being a tech lead is a huge responsibility but that does not mean you have to have to know the ins and outs of everything.
It is ok to say you don't know something and rely on advise from your team members to take the right decision.
Your way need not be the HIGHWAY, a collaborative design has the following advantages
- Multiple diverse perspectives are accounted for.
- Rather than the tech lead owning the design, the team owns the design.
- Team know why certain decisions were taken during the design.
Enable your team
You might not know every technology out there but your experience can help the team to look at the right direction.
I am surprised many a times how I have not known anything about a technology but have been able to look at the right place just based on experience. Help team members with tips on troubleshooting.
Delegation
There are times where I am overwhelmed with multiple things to do.
I have made the mistake of taking it on all me and working overnight to get things done.
But very recently I have taken a different approach.
I make a list of things I need to do and then inspect if some of them can be delegated to folks in my team.
It has dual benefits
- I am no longer overwhelmed
- The team also learns and grows.
Handling Stress
Initially I would plan my day but then there would be unexpected issues that would derail my plans and I am always playing catch-up.
There is no single solution to this predicament.
All you can do is mentally be prepared for everything and then there is no stress at all !!
I personally reflect on what are the "unexpected" issues and try to see if I can invest time in better processes or practices to avoid them in future.
Be Fearless
Be fearless is another way of saying don't be afraid of failures. We all make mistakes. The important thing is to own it and take corrective action. I am lucky to be on a team where I am not penalized when I own a mistake. I believe a good leader is one who can talk about his/her failures so that others can learn from it.
Communication
Communication is key, especially in times like these where we are remote.
One rule of thumb I learnt early on was that if you find yourself typing huge paragraphs in a chat message it is time to get on a call to talk it out !!
If your team needs to succeed you have to communicate clearly.
When asking your team to work on a ticket or a story, explain to them why we need to work on it so that they have full context and are able to provide a better solution.
Learn
Always be open to learn.
Just because I am a tech lead does not mean I cannot learn from my junior team members. Many a times they are in the weeds of the problem and will come up with a better solution than you had imagined !!
Continuing to learn and grow ...
Top comments (0)