Skip to content

Instantly share code, notes, and snippets.

@hoffination
Created June 28, 2018 00:51
Show Gist options
  • Save hoffination/4f09538b5b4bbe5349f905251b1c476a to your computer and use it in GitHub Desktop.
Save hoffination/4f09538b5b4bbe5349f905251b1c476a to your computer and use it in GitHub Desktop.

Technical Leadership and Enablement

Technical leadership is challenging. We look to these leaders to make decisions, mentor developers, lead meetings, and tackle the most difficult problems on our projects. These leaders are considered the "best" developers and are placed in these positions because of consistent performance in the face of challenge. However, I believe that while technical leaders have many roles and responsibilities, they also have a responsibility to enable those they lead. I'm just not sure we know what that looks like.

A "10x developer" is a developer that can do the work of 10 other developers. In our community we've decided that having one person who can do a magnitue more work than others is great, but making 10 or more developers twice as effective is preferable. A team of developers is less likely to leave, tends to perform consistently, and is generally easier to work with than a savant.

This same change of focus from the individual to the entire team is somehow lost when we think about leaders. We don't think about enabling a team to make decisions. Instead, focusing on the individual leader and driving them to take on many of problems that the organization faces.

My History

As a college graduate, I was hired and placed on a small two-person team with my lead. We were responsible for a critical piece of our company's system and a dozen of other subsystems. I spent six months learning what each subsystem did to the point that I could look in the right place when answering questions or debugging issues. This was a period of major growth for me.

I remember the stages of this growth. In the beginning, I would ask oo many questions to the point that my lead gave me the 15-minute rule: "If you are trying to solve something or answer a question, spend 15 minutes looking for an answer before you ask me about it." This was some great advice and it helped me to learn more than just getting an answer from him would have taught me.

Another growth point happened when a new member joined the team and the lead asked me to help mentor. I remember the feeling of elation realizing that my experiences had taught me enough to be able to explain our responsibilities. It was also around this point that I begain taking on night shifts and responsibility for responding to production issues that occured during the evening when the office was empty.

The final stage of this growth occurred after my team lead transitioned to another team. Almost a year had past and the team had grown to 5 members. It took him coming off for me to realize that he was stunting my ability to grow on the team. Even though there were times that I had to work through problems and answer questions on my own, I was still working very closely with my team lead. When they transitioned off was when I really was finally able to finish my growth on that team.

What is enablement?

Looking back, I noticed that each step of my growth came from a technical leader giving me more of my own space to work outside of the shadow of their control. By learning to answer my own questions and solve my own problems I gained experience, ownership, and agency. It was by moving aside and letting me solve problems for myself that I was able to grow. Eventually moving off of the team completely enabled me to replace him as a technical leader on my team.

Junior developers are only "junior" because they haven't been enabled to be anything else. They haven't been given enough opportunities to work on difficult tasks, talk to clients, or mentor others. Everyone is learning but it's often difficult to learn what we need to when our leaders don't enable us to learn. We all learn to confidently solve problems by developing a history of solving problems. It doesn't happen any other way.

What can leaders do?

Those whom technical leaders oversee need a great many things. This difficulty is eased by regular meetings without agenda or focus other than an intent to help. This generally comes as a bi-weekly, one-on-one meeting with each person in your group. Here are some things to consider in the meeting:

  • Understand what skillset they're trying to develop or what goals they have as well as what goals you have for this person.

  • Think about things you've done recently that this person could help you with that would help them develop futher.

  • If you're unsure of how able they are to handle something difficult then test them out on a real problem.

    • Don't make the decision for them about when they're ready because you're limiting them and you're limiting your teams.
  • Be supportive and avoid overwhelming them

    • Answer questions and provide suggestions for places where they might find answers themselves

Technical leaders are responsible for the growth of their teams because they're often the only one who can enable that growth. It's easier for leaders to have a team helping out rather than trying to be a famed "10x leader" who can accomplish everything themselves.

What can devs do?

The individual is the only one who truly understands their own context. As a developer if you're ready to progress to the next step, you may or may not know it. Are you comfortable doing what you're currently doing? If that's the case it may be time to grow. Here are a few ways to consider helping along your growth:

  • Ask your lead or volunteer to be the one driving that next thing (client meeting, initiative, or meeting)

  • Ask questions related to what you're interested in doing (make sure you understand it)

  • Ask questions about what you're struggling with to help communicate places where you have opportunities to learn more

  • Find something to learn or build that can help communicate what you're capable of (tooling, frameworks, etc.)

  • Offer to do something that is interesting to you that could also help to free up your leader

Be aware that those leaders you're depending on are trying to do the best they can to juggle many responsibilities. Be respectful and empathetic with the position these leaders have been put in. Someday that may be you and you'll have to remember the lessons you've learned about leading teams from your own experience. You'll be thankful for the lessons you've learned and will be ready to help enable others the way you were enabled by your lead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment