Role Of A Team Lead

There are many leadership roles in the software industry, such as Team Lead, Senior Developer, Architect, Technical Lead, Manager, and many more! This article is for all those readers who really like to lead the team towards success.

When I first started programming, I always had one goal to achieve, that is, just to deliver the assigned tasks. It was easy. But unfortunately, we cannot develop large scale applications alone, we need a large team. Even in this scenario, we still have a goal to achieve, however, now we have a lot more people that we need to think about. Here comes the real challenge!

Everyone knows what the goal is, conceptually. But in reality, what happens is over time, people start going in different directions!! Therefore, this is one of the areas that a Tech lead should concentrate on. For example, if 10 people work on a code base with a different attitude and different understanding, it will become very difficult for someone new to understand the code base!! He/she will be lost!

So, the solution is - the Lead should make sure that at the end of the day, the entire code base should look like it was written by a single person. In the IT world, we call it "consistent code". So, being a technical lead, our responsibility should be to train and direct people towards writing a consistent code and reaching that goal. Now, do you think it really happens in reality ? NO, but the bottom line is the technical lead should make sure there is consistency in code development by everyone in the team.

Here are a few points I feel the Lead should keep in mind, along with the above activity.

  • Career growth for team members

    As a lead, help team members to keep in touch with latest technology. Motivate the team to obtain certification in technology, and make sure you also have a number of certificates in your bag :). Keep sending useful hints, article links etc. related to current tasks.

  • Diversity

    It's always important to value the diversity of the team we have. If a group of people work by themselves, it won't make any sense. The Leader should always focus on making people talk to each other and integrate their thought processes. As long as we have trust between each other, there is no looking back! The team will succeed.

  • Plan for Brown Bag sessions

    Brown-bag session refers to an informal meeting, training, or presentation that happens at the workplace.

  • Plan for Pair Programming

    Always try to see if pair programming works for your team. If yes, then go for it.

  • Join hands for coding

    One of the elements of an effective lead is, programming. Generally at-least 30% of the time of a lead must go in coding with the team.

 

Most importantly, never expect someone to be outstanding in each and everything he/she does. Everyone has their own skill sets; so make sure to use them in the right place. If someone is good in JavaScript and not so great in C#, then do not assign them the task of writing C# Server side code. Try to make them contribute on client side logics.

*Note: Make sure to assign them simple tasks in C#, which will help them learn slowly with expertise in C#. Help them to achieve a better understanding in an area they lack.

Let's move towards advanced processes like Agile!

Now, what if you are following the Agile process ?

In Agile, we never elect a lead. We have a scrum master in Agile, so where does the team lead fit in? The important point to make is, the scrum master is just a facilitator. He/she is responsible for retrospectives, sprint planning, and sprint reviews,and also shielding the team from interruptions during the sprint.
 
Note: Role of scrum master is out of scope for this article, so let me concentrate on Lead's role in Agile projects.
 
In Agile Team, one of the experienced developers who has capabilities to lead the team will act as Technical Lead in reality. (Even though there is no concept of Lead in Agile). Be top on delivery risks of technical tasks. If you see any risk in developing some feature on a committed time line, then resolve it. Work with a team to come up with a better design and architecture. Always be in touch with business and sense upcoming requirements. Encourage the team.