Of all the hats I have worn in my technical career (developer, technician, accountant, therapist…), “leader” is the most uncomfortable one. It is a word that is loaded with a responsibility that I do not always want, but it has also proven to be the most rewarding. I just looked up and realized that over the last few years, I have transitioned from being a solo coder to managing a team of six full-time developers. Learning how to juggle all of the responsibilities, increase productivity, and maintain sanity have been an interesting journey of growth.
I started as a software developer right out of college. I was a passable developer when I started, but I was lacking in discipline. Working with experienced and patient colleagues and mentors throughout my early career helped me gain that basic discipline and learn how to communicate effectively with customers and team members. I was given the freedom to make mistakes, and I learned from those mistakes and got better. I didn’t see it at the time, but I was also learning how to lead a team by being a member of several highly productive teams.
Prioritize Team Goals
My team grew organically, along with the needs of the business and the projects we work on. Things were so hectic that I had not reflected on what I was trying to accomplish and where I needed help. My first lesson was that I needed to keep the leadership of the team as my top priority. It is all too easy to carry on working as the solo developer, while just occasionally throwing work over to team members whenever you have a spare moment. As the leader of a team, I’m responsible for that team’s output. If I keep doing all or most of the work myself, there’s really no point in having the team; in fact, it would clearly result in far lower productivity. I needed to put the team first, and then if there was any time left, I can write some code myself.
Mentoring versus Micro-Managing
This leads to the next lesson I learned: having a team is not solely about scaling output. It is rather convenient to think that adding developers to a project will get the project done faster, but we know that it is almost never quite that clear-cut. A well-run team can do things that an individual cannot, however skilled that individual may be. A team can cover more hours of the day or cover days when individual team members are on vacation or out sick. Teams have broader sets of experience, both technical and non-technical, which can lead to more innovative solutions. These are all very simple concepts, but applying them in leadership is where the challenge lies. I realized that I had to completely change how I was approaching leading the team.
I knew that I didn’t want to be a micro-manager, but I had always thought that I had to very carefully orchestrate each of the team’s movements. I quickly realized that no one had ever done that while leading me, and that it wouldn’t work if I tried to do that with my team either. One of my jobs as the leader is to provide my team members with everything they need to do their jobs. Even though it is frequently extremely challenging, the work we have to do is fairly clear. I have discovered that I spend very little of my time actually assigning work, and most of my time being more of a mentor. This role feels much more natural, and my team started thriving when I realized this. I know that there are too many variables to always guarantee the results of my team’s work, so I focus on giving the team all of the tools and support that I possibly can rather than trying to force perfection.
My biggest ongoing challenge is reconciling all of these additional responsibilities with the fact that I’m a human. Not only do I make mistakes in leadership, but I also have a finite amount of resources at my disposal. I don’t have all of the answers, and I’ve found that as more people ask me for help, I’m reaching out for my own help more than ever. This is a good thing, but it doesn’t always feel that way. While I like the idea of having all of the answers, accepting that I do not and never will is a relief. The same is true of the amount of work I can do. I can’t just add leadership responsibilities without giving up some of the other tasks I used to do. I have to delegate to my team, and I have to say “no” more often. If I don’t take enough time to be with my family, eat, exercise, go on vacation, etc., then I won’t be an effective leader.
I have discovered time and time again that leadership, particularly technical leadership, is not always comfortable. The strategies I have learned along the way are well-known and fairly obvious. I can vouch for their effectiveness as someone who frequently has to learn the hard way. Above all else, I try to lead my team the way I would like to be led. It has not been perfect, but it has worked and it has been extremely rewarding watching my team grow and become more self-sufficient.