22 - Learn To Delegate
Delegating is the act of assigning a task, or a piece of work, or a responsibility to a teammate or a team.
Delegating is a critical management skill to acquire. Junior engineering managers often struggle with delegating efficiently, it’s not an easy skill to learn.
The goal is not to individually assign every single piece of work to teammates. Doing so would totally destroy the autonomy of the team as well as create a crazy workload for you.
For most of the work that has to be done, the system and the related processes will create a context where everyone knows what he has to do, or what he can pick as a next task.
For instance, in a product development team using a scrum-like framework, the work planned for the current iteration is visible and known. Each teammate can easily pick a new task when the previous one is done.
If you find yourself having to assign a lot of new tasks every single day, you should look at the process and at the system to fix it.
With a proper system in place, delegating is about assigning a task which is on your plate. The purpose is not to randomly push all your work on the team. The goal is to identify which task can be a learning opportunity for a given teammate.
Ultimately, as an engineering manager, you want to make the team as autonomous as possible. They should be able to efficiently work without you being around.
It’s also your responsibility to identify and to train the future organization leaders. The leaders that will be fully ready and proficient to replace you at some point.
So, how to decide what to delegate and how to do it efficiently?
📝 Identify and list the tasks to be done
You should maintain and nurture a list of your current tasks to be done. As discussed previously, my trick is to use a dedicated Kanban to capture these tasks, and work on them following a Getting Things Done workflow.
👤 Assess the skills and the autonomy of a teammate for a given task
The goal is to pick the right task, for the right teammate, at the right moment. It should be a bit challenging, give a growth opportunity, without putting the teammate totally out of his comfort zone.
We use the word task as a generic term here, a task can be a complete project, or a large initiative. The size of the task has to be relevant with the teammate’s mastery.
When you can, avoid delegating tasks seen as too simple, or boring to a senior mate when they could be super exciting for a junior. It’s a missed learning opportunity.
We can notice that we’re all junior or senior depending on the task, a very seasoned backend software engineer can be extremely junior on frontend dev for instance.
Try to pick a task that will contribute to the learning wishes of a teammate, that will contribute to his goals. It will create a strong engagement as well as showing that you’re investing into his personal growth.
☑ Decide to delegate, prepare and communicate
Some tasks can’t be delegated. Because they are too critical, too important, and because no-one is ready at that point to handle them, even with guidance. Keep track of these ones, being the only one able to do a task can be a strong signal that there is a bus factor risk here.
While deciding to delegate, make sure the task is clear enough, prepared enough to be delegated to a specific teammate.
Don’t let a teammate handle a complex task without any guidance or preparation. Explain you want to give him this opportunity, slice the task in steps with him, enjoy this opportunity to teach him how to articulate this work.
Don’t over prepare upfront for a teammate who is skilled and autonomous on this task. Explain to him why, what’s the purpose of the work and let him fully own it.
💬 Follow up until completion
Once delegated, it’s critical to follow the progress until completion. It’s usually done during the One on Ones. Depending on the level of autonomy and maturity of a teammate on a given task, you will have to adapt your style.