Build a leader habit: learn how to let go

Gabriele Cimato on March 06, 2019

I would like for this post to be addressed to everyone, junior to senior. I believe it will resonate more with senior engineers though. Nonetheless... [Read Full]
markdown guide


At my company, I usually assign each individual (including interns) primary responsibility over a sector of the code. When I have a large enough staff to cover our active projects in that manner, I like to go to various staff members, including interns, and ask them what they'd like me to do. I literally let them assign me tasks.

When I'm working on such a task, I refrain from making project decisions; I'll ask them instead. Even if it's not the decision I would have made, if I'm not asked for my feedback, I'll generally go with the flow. [See my other comment.] It's amazing how often I learn things, even from interns, that way.

I find that really empowers the staff members, especially interns, to work independently, make mistakes, and get a taste of real-world project management. Bonus, it keeps me closely involved, without me being underfoot.

(By the way, I do have the authority as lead developer to provide unsolicited feedback and override decisions, but I rarely do so unless the mistake would have significant repercussions beyond the immediate code sector.)


Thanks, great post! How would you approach a situation where a team mostly consists of junior devs?


Practically my entire career has been in that situation, so although I'm not the OP here, I do have some insight. My adage has always been...

It is easier for a developer to get themselves out of a hole THEY dug, rather than one YOU dug for them.

So, I'd say this article still applies! I try to stay familiar with as much of the code base as I can, but when I assign it to someone else, I trust them to make decisions (and mistakes) and to deal with the natural consequences thereof, whether good or bad. I'm still available to help, through code reviews, one-on-one conversations, meetings, and the like, but my other rule is...

Don't offer help until asked for it.

When I bring an intern on to the year-long internship program, I personally guide them through the first month. After that, I make it clear that I will no longer help unless I'm asked. Aside from my asking "how is it going? any problems?" periodically to help prompt them to reach out, the responsibility to seek help is on them.

All in all, it works pretty well.


@jason gave a great reply in his comments! I have been in that situation before and my goal is to work towards being able to let go. What this means is that I do my best to provide juniors with all the tools they need to be independent as soon as possible.

Most of the times I let them make mistakes in a "controlled environment". What this means is that there's usually some work that needs to be done that, even if big mistakes are made, the consequences are not a big deal. But make sure to be upfront about it! You don't wanna trick them into thinking they are working on something mission-critical and let them stress out for no reason.

Put them at ease, mentor them and guide them enough so they can start working on their own. What I often did is sometimes sit down for 10-15 minutes to talk through something like state management in React. I give them all the knowledge I have and they usually pick it up and start coding! Sometimes they even find flaws or limitations and we go back to chat about it, every time it's a pretty casual chat nothing official.

But yeah the gist of it is the following: do your best to guide them and provide them with the tools to be independent. Help them become the teammates you can trust which will make your life a lot easier. Working towards the "let go" mentality is not something that happens within a day, you need to work towards that and then...reap the rewards!!!

code of conduct - report abuse