During my career, I’ve worked with, for, and as a Technical Lead, Technical Authority, Technical Architect, Team Lead, and a Agile Team Lead. With my developer hat firmly on, I would suggest the above comprise two distinct roles:
- Technical Lead. Assumes main responsibility for the technical architecture vision, and steering technical work in that direction over time.
- Team Lead. Assumes main responsibility for timely software delivery and the personal/professional development of team members.
In my experience, when medium- or large-sized software organizations combine the above roles it is normally a result of management laziness or a misunderstanding of team dynamics. Unless the Whole Team in question is a well-oiled, self-organizing machine or a Great Agile Developer is in the room, it is difficult for a single person to excel when such different, occasionally conflicting challenges await.
For example, at employer ABC the Technical Leads were in charge of the technical architecture as well as the nitty-gritty of story implementation. The technical roadmap was well-defined, but with no separate concept of a Team Lead role the Technical Leads were over-worked and over-stressed. Stories frequently failed to reach Done by the end of an iteration, and non-technical issues such as helping new team members were simply ignored. Both of these issues are directly related to team gumption and as a result team members were frequently gloomy.
However, at employer XYZ I was one of a number of Team Leads working underneath a Head Architect (pardon?) that looked after the organization-wide architecture. The XYZ Team Leads prevented the sort of issues experienced by ABC, but I and many other team members chafed at the lack of technical input available. It is a hard balance to get right.
I believe that regardless of nomenclature, the key responsibility shared by Technical Leads and Team Lead is coaching. Whether you are in charge of software, people, or both, you have an immutable responsibility to help the team members around improve themselves and each other.