Published on

Rethinking Team Roles - The Importance of Team Leads, Managers, and Contributors

Authors
  • avatar
    Name
    Feanor RS
    Twitter

Team Contributor vs. Individual Contributor

The term Individual Contributor (IC) is often used to describe a software engineer who isn't responsible for managing others. However, this term has a more appropriate place when describing contributors to open-source projects. In those settings, contributors typically work in isolation, communicating primarily through forums and submitting code via pull requests, where most discussions occur. The work in these cases is largely independent, fitting the label of an IC.

An IC could also describe someone contracted to work alone, handling all an aspect of the project without interaction with other developers.

However, working within a company on a software project is a very different experience. While writing code is still a core part of the job, there are additional responsibilities such as updating tickets, responding to Slack messages, writing documentation, leaving comments on code, and actively participating in meetings. These tasks go beyond the narrow definition of an IC, suggesting a better term: Team Contributor (TC).

A TC's performance is often measured by their code contributions or pull requests, but this is only part of their role. A TC is also responsible for the collaborative work that keeps the team running smoothly. The success of a software project depends on team cohesion, not just individual contributions. Therefore, it's crucial to evaluate the team's overall performance, rather than focusing solely on individuals. A meme that I convenient stole from Aleix website, idea is from Team Topologies book.

Team lead versus a manager

In a well-functioning team of 5 to 9 people, there should be both a Team Lead and a Manager, and these should be two distinct roles.

  • The Team Lead is responsible for making decisions within the team, scheduling tasks, and helping team members succeed. This role is typically filled by the person with the most knowledge or experience in the project and focuses on the team's day-to-day technical direction.
  • The Manager, on the other hand, oversees the team as a whole. Their responsibilities include external communication, broader decision-making, ensuring the team's performance, and removing roadblocks. The manager handles the bigger picture and strategic aspects, while the team lead focuses on the immediate work.

However, due to poor company culture or slim budgets, it's common for one of these roles to be missing or for both roles to be assigned to the same person. When this happens, the leader can become overstretched, struggling to balance technical leadership and managerial responsibilities, which can negatively affect team and project outcomes.

References:

  1. Peopleware: Productive Projects and Teams Book by Timothy Lister and Tom DeMarco
  2. Team Topologies: Organizing Business and Technology Teams for Fast Flow. Book by Manuel Pais and Matthew Skelton
  3. Team Contributor instead of Individual Contributor link by Aleix Morgadas