BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Technical Leadership: The Often Overlooked Skills and Responsibilities of a Technical Team Leader

Technical Leadership: The Often Overlooked Skills and Responsibilities of a Technical Team Leader

Bookmarks

 

Because they are a team, software teams are assigned a team leader. This post may have different names in every organization, but the main and common responsibility of this person in all organizations is product delivery.

What varies is the scope defined for the responsibility of product delivery. At one extreme, this person is just responsible for the technical effort of design and development. On the other extreme, it may include design and development as well as collaborating with customers, team operations, reporting to senior management, and strategic product management!

In this article, I will try to lay out the responsibilities of a Technical Team Leader. Knowing the responsibilities, we may determine the necessary characteristics of such a key person in software development.

First, I will point out several deficient views of a technical team leader, and why these views are incomplete and may not lead to team success. Then, I will categorize all the necessary responsibilities to be carried out by a technical team leader. Finally, I will discuss other functions in a typical software organization, and will explain why we shouldn’t overwhelm the team (and its leader) with such responsibilities.

Incomplete and deficient views of Technical Leadership

Teams assign TTL’s based on various considerations. For example:

Technical Team Leaders as architects, senior, or most experienced Developer

At 2003, I was appointed a senior position at IBM and became a technical team leader. This appointment was based on two things. First, I have spent 3 years in development. Second, I was an excellent developer! Are these enough criteria to become a technical team leader? The answer is no!

These type team leaders usually forget about the team and get immersed in development. They take over most of the critical stuff and may not be aware whether the team is fully functional or not!

Technical Team Leaders as Facilitators

Some teams assign product delivery responsibilities to pure facilitators. This facilitator is typically responsible for running and facilitating team group activities.

In some cases, scrum masters are inclined to play this role of “facilitating Scrum events as requested or needed”, as mentioned in the scrum guide, and nothing else. Although Scrum mentioned this among many other responsibilities, many practitioners who get certified as scrum masters focus only on team facilitation.

ICAgile certification for Team Facilitation (ICP-ATF) is known to be a track for those who are willing to lead teams. As per the ICAgile website, this track “focuses primarily on the mindset and role of an agile team facilitator”.

While facilitation skills are paramount to team success, there are some other skills which may be equally important. If a technical team leader got trapped in team facilitation, his role may become another manifestation of the traditional role of a management proxy for the team!

Technical Team Leaders as Innovation Engineers or Dreamers!

Yes, dreamers are leaders. However, nothing is achieved until this dream materializes into something tangible and somehow defined.

The problem with this kind of technical team leaders is that they may be trapped in endless technical investigations and innovation and forget about the product itself. It’s the idea of balancing divergence and convergence: Diverge to generate more innovative ideas, and then converge to get something done!

A Map of Technical Team Leader’s Core Responsibilities

The fact is: a TTL balances several key responsibilities, outlined in the following mind map:

(Click on the image to enlarge it)

Team Support

First and most important: Team Support. A TTL can motivate the team, has the ability and art of facilitating team activities, and can organize team work into a process oriented manner. 

Technical Excellence

Second, a TTL is responsible for nurturing/enforcing and monitoring the product technical excellence and high quality. More specifically, a TTL is responsible for ensuring this is realized by the whole team. In other words, if the TTL developed an excellent product by himself while the team is doing nothing, then he is still failing in this regard. 

Innovation

Third, a TTL should sponsor innovation in the team work. This is different from technical excellence. It is related to the team spirit and desire to experiment and try new things and unconventional solutions. This is also different for problem solving, because you can solve a problem in a dumb way!

Organization

In all of these responsibilities, there is a common component of organization. The TTL is responsible for organizing accumulated knowledge and information gained by the team, and making it available and easy to retrieve whenever needed by any team member. Also, organizing the team process, which is a responsibility that may take a lot of time and effort to monitor and foster.

Delegation of Responsibilities

Practically, team leaders cannot do all these tasks on their own. The following graph shows how much delegation he/she may do:

For example, in case of team motivation as part of the Team Support responsibilities, the TTL may not be able or entitled to handle aspects of motivation or demotivation in the organization. In such cases, it is still his responsibility to escalate such issues to management and keep nagging till issues are resolved and a healthy environment is maintained.

In case of Technical excellence, it is a big responsibility and the team leader usually delegates technical responsibilities to other seniors in the team. However, it is still the responsibility of the TTL to make sure the product is of high quality. To do that, the TTL may review code, inspect designs, consult experts, automate inspection, use tools, etc.

For Innovation, the TTL is not responsible for innovation. Rather, he/she is responsible for sponsoring innovation. TTL should allocate time, facilitate sessions, sponsor experiments, assign spikes, etc. He should do that in order to discover:

  1. Innovative solutions for issues and problems
  2. Innovative ideas for features and products
  3. Innovative ideas for the team to become more effective and efficient

While Organization is the responsibility of the TTL, guidelines and procedures for organization are implemented by all the team. For example, the team must have a means to document accumulated technical solutions for problems the team face (a wiki, for example). This solution should be easy to use, available for all team members, and knowledge should be easy to search and retrieve anytime by any team member. Fining such a solution is the responsibility of the TTL, and documenting knowledge and sharing it should be a responsibility of all the team.

One final important note: TTL delegates tasks not responsibilities. That is, a TTL may delegate finding a way to document knowledge, but it is still his responsibility and he is still accountable for it. Another example is that making sure a product is technically excellent is the responsibility of the TTL, even if he delegates some review and verification tasks to team members. At the end of the day, it is his responsibility and he is accountable for it.

Anything Else?

Of course there are many other roles and responsibilities in software development organizations, like operations management (HR, Support, Sales, etc.) and senior management activities (Program/portfolio management).

To determine whether or not these activities should be carried out by the team, we have to clearly differentiate between knowledge work (work which needs technical expertise and cognitive skills), and task work (work which is procedural, algorithmic, and needs systematic management experience). This differentiation is necessary because the mode of operation of knowledge work is completely different than that of task work.

The graph below points out the product development activity as opposed to some other activities in a typical software company:

As appears in the graph, product development involves a lot of knowledge work. This should be the primary responsibility and concern of development teams. Overwhelming the team (and his technical leader) with other operational tasks of sales, customer collaboration, and HR may distract the team from focusing on his primary role of product delivery.

Conclusion

In Summary, a Technical Team Leader should demonstrate capability in three main areas:

  • Team Support
  • Technical Excellence
  • Innovation

If you are going to become a TTL, make sure you get enough knowledge in these three areas. It is your responsibility to become knowledgeable, or else you will spend years or fumbling in the darkness and learn by trial and error!

About the Author

Amr Noaman Abdel-Hamid is an agile coach, trainer and practitioner who's passionate about spreading agile and lean thinking in Egypt and the Middle East. Amr co-founded Agile Academy and is a founding member of the Egypt Lean & Agile Network. Amr had the honor to initiate Egypt's GoAgile program, an agile adoption initiative sponsored by the Egyptian government for expanding agile in Egypt. Since then, Amr has trained 700+ practitioners, coached many teams and organizations. Amr is a frequent speaker and author of several industrial reports and shares his thoughts in his blog: Tales of Agile Software Development. You can reach Amr through email, Linked-in, or twitter @amrnoaman.

Rate this Article

Adoption
Style

BT