Three Lessons Learned as a Team Lead, for a Better Future

Ori Cohen
6 min readMar 17, 2023
“a software team leader looking into a better future, sitting in front of a laptop and thinking, art” (generated by stable diffusion)

For the last two years, I’ve been the team lead for a team in a large organization. During this time, I’d devoted a considerable amount of time to building a framework of principles that guide me in my job as both a manager, a friend and a member of the organization who is committed to it’s continued growth and success.

This article will focus on three points that I believe are the most relevant and that I wish someone had discussed with me when I entered my position. The article is meant not only for team leads, but also towards anyone who would like to take a step back and consider how, perhaps, we can create a work environment that is both better to work in and is more productive.

I am always looking to learn, as so feel free to comment your thoughts on the matter.

Without further ado, let’s get into it.

Ego

Photo by mariel reiser on Unsplash

Ego, in the sense that I want to talk about, is “an inflated feeling of pride in your superiority to others” (vocabulary.com).

Everyone has some ego, and while it can be a driving force for positive change, it can often be a great hindrance to mutual projects, as people seek to put themselves above the shared goal. As a team lead, one of my main jobs has been to work both with my team members and other coworkers, while carefully balancing the need to provide value with the need to make the workers feel fulfilled, so as to not let everyone’s ego get in our way.

I’ve had projects go either way. I’ve had projects where all participants were entirely on board and completely dedicated to our work, as well as less successful projects where the ego of other teams didn’t let us move forwards in our own projects.

There are a few methods that can improve the situation:

  1. Convince the upper management of a shared goal. Higher mangers are a resources I wish I’d employed more earlier. They can negotiate on your behalf, find resources and compromises that I could not, and back you up when you make your case (especially when you have data to show, read on for more on the that subject).
  2. Remove toxic team members, either entirely or from a specific project. There are times where one or two people are the catalysts for the friction in the project, and so removing them from the work will do wonders.
  3. Invest time into personal meeting, both inside your team and outside of it, so that you can discuss this issue frankly. From my experience, people would like to improve, and constructive feedback on this subject can go a long way

Separation of concerns

Photo by Jens Lelie on Unsplash

Often times, the team lead has two roles, both of which are critical to the team’s success:

  1. The Manager — a person responsible for directing the team and organizing both the technical, logistical and administrative work
  2. The Tech Lead — the most knowledgeable person on the team that oftentimes also has legacy knowledge about past team activities.

The reason for this is clear and perfectly reasonable. Oftentimes, one of the senior team members is the one promoted to management, and it is only natural to put him or her in charge of the team they know best. Nevertheless, this put the team in it’s entirety in a fragile state that I believe should be avoided and worked upon.

This state stems from the fact that a team cannot depend on a single person, especially the team lead. As a lead, I find that most of my time is spent in meeting, both inside the team and outside of it, and I am therefor not free to help on the technical issues the team faces. This has gotten to a point where when I take a vacation, the team’s ability to solve issues is noticeably degraded.

I have taken steps to remedy this situation, investing considerable time and effort into the process. Here are a few tips how to do so in your own team:

  • Let the team make technical decisions. I have met many leads who want to make all decisions, down to the technical details. Having the team make the decisions, on the other hand, both ensures the development of team members, gives them the satisfaction of knowing they are responsible for their entire project, and improve the technical knowledge of the entire team.
  • Have a tech lead\architect role in your team, both as a means of promoting a successful team member and ensuring the longevity of the team’s knowledge. The way to create such a role is by having a senior teammate start attending more technical meetings, until they have a broad enough understanding of the team’s projects that they can support the team as a technical knowledge base.
  • Give your team the freedom to make mistakes. As a lead, the most important currency I can invest is time (both mine and the team’s), and letting the team know I choose to invest our time in the way they choose and that I have their back if we need to change in the future is the way I found most enhances the teammates’ will to expand their knowledge.
  • Give teammates a broad view. In some team, the workers focus entirely on the technical job at hand, while the lead also is responsible for coordinating with other teams, the product owners, the IT devs and so on. I found that letting each team member have a complete, end to end, ownership of their projects (from research to coding to monitoring to deploying) lets them become better at both their job and as teammates.

Start Speaking the Data Language

Photo by Carlos Muza on Unsplash

We’re living in 2023, there is absolutely no reason to keep arguing without data to back up our claims. As a team lead, I found that bringing facts is one of the most reliable ways to convince people, both managers and fellow leads.

Put some time into building data infrastructure in your team, it will benefit you in the long run. Some of the features may include:

  1. A data map, such as OpenMetadata, that allows you to clearly define where your data exists, what it contains and how to access it.
  2. A dashboard system, such as Redash, that allows your to show any and all interested parties insights regading your team in a user-friendly visual interface. I have also found that it is mostly an investment that is very beneficial in the long run, as it frees the team from constant report generation.
  3. Well defined logs and metrics. Having the state of your systems explained well, both their health and the value they bring, is a huge asset.

We team leaders are investors no less than any VC. We invest the time and resources of our team, and we need to do so wisely and carefully.

I hope that I convinced you that you should invest some of your time into making the people under you better and enhancing the data infrastructure, both long term investments that together, I believe, will let us create a better tomorrow.

--

--

Ori Cohen

An applicable math and computer science enthusiastic.