The Role of the Team Lead

Nahim Nasser
4 min readOct 3, 2013

You are an all-star developer on an elite team of developers, building a great product and changing the world.

In the blink of an eye, your fearless leader suddenly departs.

Management thinks it’s a good idea to promote the best developer on the team (you) to continue to lead the crew forward.

You now find yourself in completely foreign waters, steering a ship with a significant amount of uncertain doom lurking in the ocean. Feature requests are coming in from all directions, with no end in sight. Your team’s morale starts dropping the longer you keep accepting things the way they are. Your team slowly starts degrading.

You now find yourself asking: What am I supposed to do? What direction do I go in? How can I possibly complete the mission with this much work?

Enter the role of the team lead.

Your job is to steer the ship away from impending doom, and provide the team with a clear vision of where they are headed.

You will have to rely on your experience, knowledge, intuition, and deductive powers of logic to make it through.

You are the guiding light for your team— providing foresight, vision, and instruction to get to the finish line.

In order to successfully do this, there are several critical steps that must be executed.

The first step is to be exceptionally clear on what your product is, and what it is going to be.

You need to understand the problem that is going to be solved.

You need to understand the business requirements.

Most importantly, you need to understand the “why” behind the business requirements.

Having this foundation is absolutely critical to choosing the correct path for your team. When you understand the “why”, you develop the ability to come up with new, creative, and unique solutions that were never thought about — opening up several strategic directions and decisions that can be made.

Your goal is to pick the optimal direction. This can be defined from a utilitarian perspective, where the benefit of the greater good (your company) must be optimized.

Once you have been able to articulate several possible strategies and scenarios — start evaluating them all and pick one. One thing to be aware of, is that you will never have all of the information for these decisions. Your goal is to evaluate cost/benefit ratios, make reasonable assumptions, and pick the best direction you can.

Your decision making should be justified and defensible.

Rewrite or Refactor?

“Why can’t we just rewrite the entire codebase?” — Your Developers

“At our current pace, I’ll have three grandchildren by the time its done. An incremental rebuild gives us the flexibility of refactoring critical components, without disrupting the entire application and our ability to deliver to our customers on time.” — You

This dialogue brings us to another point.

Once you have deliberated your direction, it is absolutely critical that you articulate this to all your stakeholders before taking action.

Explain your course of action to your team, let them poke holes in it. Hell, put all potential strategies on the table, and go through the pros and cons of each one if you have to. This will often result in more information and insight being surfaced.

You will only get better and better at anticipating these types of holes, and resolving them immediately. It’s much better that someone completely demolishes your plan early, than waiting until it’s too late and millions of dollars are lost.

Don’t be afraid of feedback — the best strategies are often collaboratively discovered, as a result of building on each others ideas.

The best ideas often come from collaborative discussions.

If you truly care about steering your team in the right direction and doing what’s best for the business, you will toss your ego into the ocean.

So now that we have a direction, how are we going to make sure that we are going to get there?

Twitter - @nahimnasser

--

--