I was recently promoted from Senior Software Engineer to Lead Platform Engineer. While I had been performing some of the duties required of this position prior to receiving the promotion there are many aspects of the job that I have yet to discover. At first I thought some of the challenges were unique to my situation and the environment where I work, but, truth-be-told, these are just general problems that other people have faced and solved before me.
What is a Technical Lead?
Perusing the results in Google will likely yield a wide range of definitions for what exactly a technical lead is responsible for. Some will tell you tech leads are software architects who never write code. Others will insist that technical leads are mid-level managers who may have been software developers at one time. Still others will say that tech leads are simply the best or most senior programmers at the company and they are leaders just by sheer quality of output. I think the answer is somewhere in between all of those.
To me, a technical lead is someone who has a solid background as a developer, and has demonstrated an ability to effectively communicate not only with other engineers but also with product managers, stakeholders, designers, markerters, and anyone else who might have a need to express relevant ideas to a team of developers. Some of the things a good technical lead will do are:
- develop, update, and advocate for the technical direction of a product or part of an application;
- encourage healthy debate between team members and facilitate the decision making process;
- take on distractions to allow the rest of the team to work more effectively;
- see and find work arounds for challenges the team will face in advance; and
- delegate responsibility for areas of the codebase or project to capable and appropriate team members.
There are many other things a tech lead will do, but I chose these five to illustrate the particular challenge I face as a new technical lead.
Looks like management to me
I purposely used words like facilitate and delegate because they likely trigger manager-speak alarms in your head. (Unless you're manager, of course, in which case you likely nodded along as if I was playing the most beatiful song you've ever heard. Synergisticality!) The point was, depending on who you are, you might interpret some of those tasks as something a manager might do.
Observing and keeping track of the skills, talents, desired, etc. of team members sounds like something you might put on an annual review and check yes or no in a chart listing the abilities of the team. It also is something that a leader must know about the individuals on his or her team in order to effectively empower them to be successful.
Planning out longer-term visions for the project and figuring out how to properly staff the specific projects or initiatives that will accomplish and realize that vision might seem like a job for upper-level management, but it is a good fit for a technical lead within certain boundaries. Who better to understand the limitations of a particular system or a particular architecture than a competent engineer? Should the CEO make these decisions? What about the vice president of engineering?
While I agree that on face value these sound managerial in nature, they are, in my opinion, things a good technical lead will absorb and assert himself or herself on in order to advance the team. Above all else a technical lead's role in a company should be to understand the technical direction of the product or company and to anticipate the necessary skills and knowledge to allow his or her team to work towards that direction.
What is a Manager?
The difference in a first line manager and a technical lead can be quite subtle, as there is often some overlap since both must deal with some personal and professional development goals of the memebers of the team. For me, the line becomes a little less blurry once you give the proper amount of weight to the word "technical" in technical lead.
A manager is going to be someone who handles all of the administrative things that come with the territory of having employees. The performance evalution, the hiring paperwork, lobbying for the best corner in the open-concept office space. None of these decisions should happen without input from the tech lead, but the vast majority of these types of tasks fall under the management umbrella.
The line becomes slightly more hazy when you start thinking about mentoring and personal development. A good tehnical lead will be responsible for providing coaching and feedback on these types of issues within the context of the technical side, but when you get beyond the impact to the tech vision or progress and into more of the interpersonal arena, that's where the management's responsibility takes over.
Both managers and technical leads are responsible for removing obstacles from the team, but they should focus on different types of obstacles to be effective.
A manager often becomes the representation for engineering to the rest of management, the company, the board of directors, and so forth. Because of this a technical background is desirable, but the key for me is that a manager does not get involved in the day-to-day details of the technical progress or vision. They should have an understanding of it based on talking with their leads, but the decisions and directions should come from the engineers themselves.
Does a Technical Lead Have Power?
This is something that I find fascinating in things I've read. There is a mixed bag of opinions on whether a technical lead who is not also trying to be a manager has any authority over members of the team. The answer here is that there might not be explicit authority granted by possessing a title, but there should be organically-obtained authority. What I mean by this is a technical lead obtains power not by asserting her position on the org chart, rather she obtains power by leading and producing. This, in my opinion, is why a lot of technical leads are grown within the team rather than imported from outside the team.
The other difference between managers' and technical leads' authority is that managers will typically have authority across teams and outside of the team, while the authority of a technical lead is often focus inwards. Looking at this another way, a manager might be expected to deal with the needs of the entire group of engineering teams, while a technical lead is limited to advocating for needs that directly impact the teams' technical roadmap. This is the difference I was talking about with respect to the technical impact.
Am I a Manager?
If you would have asked me this a few weeks ago I would likely have told you yes I am part manager and part technical lead. But the more I think about it and the more I work in this role, I realize that trying to fulfil and, pardon the pun, manage the responsibilities of both roles will only be a disservice to my team and to my company. Thus I have concluded that I am a technical lead, not a manager.