Being a Technical Leader

Are you a Technical Leader or planning to become one? If yes, I would like to share my experience working as a tech lead at Xero, a cloud-accounting tech firm.

A Technical Leader is not someone that is merely a strong senior developer. It is someone that can also fill multiple roles such as architect, business analyst and a leader. The role entails being ready to lead a team by sharing the business and technical vision, keeping people motivated, advocate using the right technology and guarantee good quality deliveries.

This post describes a few lessons learned though through my experience as a Tech Lead.

When working in a technical leadership position, people might assume that the leader has all the answers and should make all the decisions. This dependency can create an unhealthy habit on the team. When the leader is not around the team shouldn’t stop producing or be afraid to make decisions on their own without approval. This dependency can slow down the development process and create an environment where people don’t own the ideas or don’t understand what they are building.

A leader should advocate for a team culture that promotes opinions where everyone’s suggestions are accepted no matter their seniority. Setting clear expectations and holding people accountable for their decisions allow the team to be more mature and empowered.

People working in silos doesn’t always work because if someone holds all the knowledge and leaves the company, then the project could be at risk.

A Tech Lead should promote an environment with strong collaboration and transparency with shared knowledge among the team. Different techniques could be used to achieve that goal, like Pair and Mob programming. Those techniques allow people to work together no matter their disciplines or experience and most of the time the result is much better.

Sometimes, if not most of the time, the Tech Lead won’t have the same capacity than a developer to code with the team although it is essential to do so. Booking time in the calendar could be a good solution to this problem as it ensures that the team can be together and there are no blockers to move forward.

The team is more than just the engineers. Tech Leads need to be prepared to have ongoing conversations with everyone: developers, product owners, managers, and other stakeholders.

Not everyone understands the technical language which is a reason why communication could be a real challenge. A lack of understanding can result in building the wrong solution, wrong cost-benefit analysis or inaccurate go to market dates.

Taking time to explain concepts with abstractions or analogies are a crucial factor for good communication. Being aware of different learning styles and adapting your speech according to the audience can make a difference.

A Tech Lead should learn how to communicate with everyone, not just one part of the team. Mastering a whiteboard by making drawings or diagrams can save time for everyone in the room and tear down a communication gap.

There are many questions that a Tech Lead should ask before starting a new functionality or project:

  • Is the right experience being built for the user?
  • Does the team understand the problem to be solved?
  • Is the solution future proof?
  • Does the solution fit into the architecture?
  • Is the team ready to start the development?

Challenging ideas can bring better results. Sometimes not all the solutions were explored, or there were too many assumptions made about the problem. Better outcomes are achieved by visualising the big picture and having a good understanding of the surrounding context such as your users, your customers, designs and architecture.

Understanding the business and technical vision before solving a problem, guarantee a better outcome in the solution.

People have different personalities, and leaders need to keep this in mind every day. A challenge that motivates someone could drain the energy of others.

Be sure to have regular one on one meetings with each person to share thoughts and concerns in a safe space. This information is crucial to understand individual goals and provide mentorship on how to achieve them.

Being a Technical Leader is to understand technology, people, and the business to find the harmony between them. Once found, the role can be rewarding.

A Software Engineer

Thoughts on Software Engineering