Tech Lead – what’s that all about?
It’s not easy for a developer to just step into the role of the Tech Lead. Let us introduce you with this position, with a help of our Tech Lead Lindon Camaj.
Just a little introduction
If we look for a definition, the most appropriate that you can found is the following:
Now, when we discovered what the position of the Tech Lead (hereinafter-TL) represents, let’s find out what TL actually does.
Even if you are a good developer, it doesn’t necessarily imply that you are going to be a great TL. To be a good TL, it requires much more than just knowing how to code. To be more precise, in every company, TL plays an unique role that requires certain and specific skills, that others do not posses.
- What are particular and essential skills for a Tech Lead?
Every TL is entangled with various skills, because he/she has to co-ordinate and mediate business and technical needs. However, in my experience, there are few skills that are important for every TL:
TL participates in so many activities, that go beyond pure software development. Maybe the most challenging part of being the head of tech team is working with outside stakeholders to define technical options and transformation of the team by changing team members positions.
- How are you handling the fact that you are involved in controlling code, technical documentation and team meetings, in order to be in touch with the current status and progress of different projects?
In the beginning it was something completely new for me and I had to get to used to it. Code controlling was the hardest task, because there was a lot of code that I had to control and I had the feeling that I am doing a futile task. But, as time went by, I started realizing that this task is essential, because thanks to code controlling I was able to mentor and help developers correct their mistakes. And, not just that; at the same time I was able to see the whole picture and entire project in a better manner.
Technical documentation and team meetings are also very important parts of TL’s job. With good technical documentation one can avoid a lot of misunderstandings and mistakes. We use agile scrum development, and every day we have a stand up team meeting, where we discuss what has been done since the last time we met, what needs to be done next and then we talk about issues or problems. In this way, together, we create picture of the whole project.
If we talk about responsibilities of the TL, they can be divided into following parts of the activities:
1. Project responsibilities
TL is occupied with the overall architecture of project, rather than its specific segment. His main focus is on the overall design of the application and consideration how the application fits into the client’s business system.
- One of the most important tasks is an assessment of project risks. What is the first thing that you do in this part of project planning?
I agree that this step is one of the most important. In this phase, I try to get the “big picture” of the whole project. First I read project documentation provided by client. Then, if it is needed I suggest changes to the client. The next step is to define which technologies are going to be used for the development, and which skills and knowledges are required. After all of that, we come to the most difficult part – project resource utilization. In this part I always involve other team members.
To be clear what this part of TL responsibilities implies, we created a list of specific steps that every TL needs to pay attention to:
- Revision of new project plans and documentation;
- Participation in weekly and monthly team meetings along with project manager;
- Close cooperation with the project manager, in order to define priorities and determine the direction of development of the project;;
- Establishing balance between costs and values in order to achieve an optimal outcome;
- Periodical enrollment in sales meetings in order to help non-technical people understand and relate to the technical issues;
- Constant coordination with project managers, designers and all the other teams and departments.
- How do you make a perfect balance between team members with a large difference in skills and knowledge?
Our team is combined of senior, middle and junior developers. We are working on many projects that require different technical skills and knowledge. However, I always try to find what best fits the project needs and developers’ know-how, so I try to make a mix of senior and junior developers in order to make a team that best suits the specific project objectives.
2. General responsibilities in the company
As we said before, TL is constantly coordinating and balancing between departments and teams. As a lead of one of the main parts of the company, TL has to take part in all important company decisions, and to constantly communicate with CTOs in the field of creating technology strategies. As a team leader, TL has to think about new members recruitment, and to take part in the interview process.
As all the other team leaders, TL also needs to think about efficiency and effectiveness of his or her team, and to create sustainable profit targets.
To code or not to code, that is the question! Even if the whole team is relying on TL, TL needs to find time to code! TL needs to write code at least 20% up to 30% of time. Striking this balance is hard, but it is a must. TLs must not ignore their obligations and have to make a list of priorities, to make sure that the coding is also in their plan.
- How do you find a time for coding beside all the other things that you do?
When I took position of a o Tech Lead, the thing that surprised me the most was the lack of time I had for programming. Team members and project needs became my priorities, so writing code took second place. However, I am always trying to find time to code, because I have to stay in touch with coding skills and, most important, after handling other tasks, writing code comes as a relaxing task. :)
4. Technical team leadership
A group of people does not make a team. A team is a group of people going towards a common goal. An effective TL aligns people towards that goal by providing them with technical vision and clear implementation guidelines.
- So how hard it is to lead a team, and what’s is the biggest challenge you face?
I think that it is harder to explain how to lead a team, than leading it. Every leader has a different approach in heading a team, so there is no a single manual on how to do it right. There are so many challenges every day.. No challenge is the same, and that is the beauty of this job. You are always learning, and every time you strive to find the most suitable solution.
But, one of the most important responsibilities of the TL is to make team self-organized as much as possible. It is very important to spend time one on one with them, and that you are people-oriented. If you ask why, the answer is that the TL effectiveness is measured through his team. Get to know your team member strengths, enable them to grow and raise their education level, empower them to take responsibilities and to take risk. Teach them how to focus on what important is and what the priorities are. Maximize their potential and teach them how to exchange knowledge across the team.
Always find time for your team!
Don’t be afraid of the conflicts, they are a great way to bring harmony in your team. Your team members have better idea for doing something? Then, let them share their thoughts, give them freedom to prove themselves and express their opinion. Give them responsibility and let them make mistakes. Only in this way they will prosper and become better, which will lead to the team evolvent. Make your team members understand that team relationships and communication, are as equally important as code writing.
- And last, but not least, what is your message to other TLs?
Tech Lead job cannot be defined in a way that fits everyone. But you should keep in mind couple of things: your needs become second to the needs of your team. So always find time for your team members. Involve, motivate, mentor, help them, become a role model, who makes sure that each team member knows, understands and believes in the same goal. I always repeat to my team “There are no issues we cannot untangle together”. Remember to keep your feet on the ground, because you were also “only” a developer, not so long ago.
Foto: Miloš Dimić
Text written in cooperation with Danilo Purić