A recent question was asked in Readify's internal Yammer along the lines of how technically strong does a team leader need to be to lead a technical team.
The conversation eventually diverted into a range of exclamations by very smart Readifarians on what leadership is in different scenarios.
Below is my opinion
To me, a leader in general is optimised by his/her ability to serve others. A servant-leader is essentially one who is able to jump into the heat of battle first and leave last, ensure that his/her family eats and are satisfied before eating or simply ensuring every other team member is able to work on the task at-hand prior to starting their own task.
Back to the original Yammer question. I gave my opinion that a technical leader isn't necessarily someone who is the strongest technically in a team, but they can't be the weakest as well, somewhere above the middle is sufficient. The brief summary of my opinion doesn't actually reveal the more complicated answer in my mind.
If you've read this far - thank you.
Firstly, what is 'technical ability'? Is it the ability to learn new languages? learn new frameworks? understand the framework currently in use? All the previous skills are skills that are desired inside a team. But what is more essential to a team (or tech) lead is technical maturity. This entails being able to foresee un-maintainable slices in an application, have visibility across a wide cross-section of the application and manage technical debt. This to me, is what is required from a technical lead.
However, this is also what is required by a developer on a day-to-day basis. A good developer shouldn't be someone who focuses on their own work item disregarding the rest of the application.
Now, from a non-technical perspective what non-technical attributes must a tech lead have? In an agile environment the lead must have the ability to communicate, have a holistic perspective on the sprint (not just focus on their own PBI) and drive work items to 'Done'. So, how is this different than what other team members must have, in short it doesn't. All team members must have these abilities.
So if the team lead and developers all have the same skills and behaviors. Is it even worth having a tech lead at all? In a situation where you have developers that do have technical maturity and that do have the soft skills necessary for a leader, you will naturally have disagreements. This is where the lead comes into play. The word authority has become a dirty word in today's world, we don't value it like humanity has in the past. But in a team of strong individuals the final decision has to fall on some authority. This is not to say that the lead must make all the decisions. Quite the contrary the team should always strive to reach decision by consensus. But when consensus is not reached (or is taking too long). This is where the lead jumps in. It shouldn't happen a lot, but is often necessary due to time constraints.
A final point I would like to make is the ability for a leader to make others feel safe. We often think our team leads (or leaders in general) are invincible. That they can do anything - I have had the opportunity in the last few years to work with such individuals. However, it is always a good idea to simply ask them "How're you going". You would find that they are in fact managing a lot of tasks simultaneously. The offer of service directly to your leader makes THEM feel safe. This is in fact a sure sign of strong leadership. The servant leadership I wrote about earlier.