DEV Community

Cover image for Delegating Effectively as a Tech Lead
Tyler Hawkins
Tyler Hawkins

Posted on • Edited on • Originally published at betterprogramming.pub

Delegating Effectively as a Tech Lead

Being a tech lead is difficult.

As a tech lead, you’re often expected to continue to be a high performer as an individual contributor while also taking on additional responsibilities to help the team. These additional responsibilities may include breaking down work into clearly defined tasks, grooming the backlog, prioritizing work, mentoring junior engineers, and resolving blockers for the team.

The hardest part of being a tech lead is learning to balance your individual work with the needs of the team.

How do you get your own work done while helping the team remain productive? You can’t do it all, and you certainly don’t want to burn yourself out by working longer hours.

One solution to managing this added workload lies in learning to delegate effectively. So the question is, when should you delegate and when should you do something yourself?


The Delegation Matrix

Tasks can often be characterized along two spectrums — complexity and frequency. A task may be simple or complex, and a task may need to be performed frequently or infrequently. We can use these attributes to determine when work should or should not be delegated.

The delegation matrix (empty)

The delegation matrix (empty)

Simple and Frequent Tasks

Engineers love to automate tedious work. Ideally, anything that you have to do frequently should be automated as much as possible. For example, if you need to gather metrics for your team’s work each sprint, see if there’s a way to automate that process.

In the event that the task cannot be automated, simple and frequent tasks should be delegated. These could be things like running standup meeting or performing simple code reviews. Simple and frequent tasks are things that anyone on the team should be able to do with little or no additional training, so don’t make the mistake of thinking you have to do everything yourself. You’re here to help your team, but your team is also here to help you.


Simple and Infrequent Tasks

If a task is easy and rarely needs to be done, just do it yourself. If it would take longer for you to explain to someone how to do the task than it would for you to just do it, then go ahead and tackle it on your own.

Please don’t misunderstand. There is a lot of value in training team members and helping others grow. However, these kinds of simple and infrequent tasks generally are not core responsibilities of someone’s job and are not essential to anyone’s career progression.

An example of a simple and infrequent task might be running a script once per quarter to generate a report. Or it could be purchasing tickets for an upcoming team activity — nothing too exciting, and nothing too time consuming.


Complex and Frequent Tasks

Again, automate everything you can. If you can take a complex and frequent task and automate the process to complete it, you should!

Assuming you can’t automate the task, complex and frequent tasks should be delegated to your team members to help them grow. As a tech lead, you are someone who is good at breaking down work, planning projects, resolving blockers, and handling incidents. Train your team members to develop these skills too!

Ask a team member to lead the planning session for the next project your team is assigned. Delegate to a colleague the exercise of breaking down complex work into smaller tasks. The next incident that occurs, invite a teammate to debug the problem with you.

When you can train your team to handle these complex and frequent tasks, they will progress in their careers. It also frees you up to focus your time and energy elsewhere, as you are no longer the only person capable of doing this kind of work.


Complex and Infrequent Tasks

Complex and infrequent tasks are oftentimes the most difficult to delegate. These tasks don’t happen regularly, so they don’t consume too much of your time. They may be valuable for other team members to learn, but due to the infrequency of the task, the return on investment of training and delegating the work isn’t as high.

Complex and infrequent tasks should be delegated to rising leaders on your team as stretch assignments. You might ask a senior engineer to help provide a performance review for the intern that they mentored last summer. Or you might ask a senior engineer to do some research and then give a high-level estimate for a new feature that product management is considering but hasn’t committed to yet.

These types of tasks don’t come up often, but they can be good learning experiences for all involved.


Summary

Let’s return to the delegation matrix. Here it is, all filled out:

Delegation matrix (filled out)

Delegation matrix (filled out)

As you can see, much of your work can be delegated! Your role as tech lead is to help keep the team productive, and oftentimes the best way to do that is to invest some time up front to train your team members so that soon they can handle even the most complex tasks on their own.

Thanks for reading!

Top comments (5)

Collapse
 
sandordargo profile image
Sandor Dargo • Edited

Infrequent and simple tasks should be automated too.

Programmer move

Interesting article, by the way! Thank you.

Collapse
 
thawkin3 profile image
Tyler Hawkins

Haha I love this meme.

And thank you! I'm glad you enjoyed it.

Collapse
 
dvddpl profile image
Davide de Paolis

but but... the matrix then shows that you actually do something ( else than delegate) only when it's simple and infrequent...

sad but ok
this is really the hardest thing for whoever jumps from Individual Contributor to Technical leadership... ;-)

Collapse
 
monfernape profile image
Usman Khalil • Edited

This is amazing. I've been monitoring team of 4 young developers and this just gave me some ideas to test.

Collapse
 
thawkin3 profile image
Tyler Hawkins

Thank you! I hope this helps you and your team!