The Three Qualities Of A Great Technical Lead

Edoardo Turelli
HackerNoon.com
5 min readJan 22, 2016

--

Over the past few months, there’s been an interesting debate in technology circles around retention, particularly for startups. We published a blog post with our own input on what had worked for us, and started an interesting conversation on reddit.

It goes without saying that the companies that will succeed will be the ones who can attract and retain the best talent. We covered this in our post on retention last month, which drew a really positive response. As tristanjuricek said on the Reddit thread for that post, “there’s no single “silver bullet” or recipe for programmer motivation and retention. Just good leadership that’s truly sensitive to the culture of the company.”

But precious little has been done to define what top-class Technology Leadership actually is. I wanted to draw together some observations I have from several years in tech — both as a technical lead within a team, and someone being managed. Overwhelmingly, what comes through is that soft and strategic skills matter.

For me, there are three principles that separate great technical leads from the rest.

1) Maximising confidence of delivery

The world of software engineering is naturally chaotic. It’s easy to get drawn into a reactive state of mind — where you are proactively searching for fires to put out. Before you know it, you’re a long way from where you originally intended to be.

When I look at high performing Technology Leads, as well as successful athletes and business owners, they all seem to have one thing in common: confidence. Confidence drives success, but critically, also takes planning and great execution.

I firmly believe that great execution is a product of intentional actions, planning and vision. By planning, I don’t mean a waterfall plan to be executed. The exercise of planning the expected achievements is the useful part, not slavish execution of the plan you came up with.

A good Technology Lead knows that they must hold regular “sanity check” sessions with team leaders to provide the opportunity to assess the status and realign on the core of the mission. This context provides a team with clarity, and focuses them on the activities that will drive success.

The Technology Lead is also uniquely positioned between the business and the technology teams — they need to be able to present plans for the direction that drive growth in areas that are strategic to the business, but the technology teams they lead also need to have confidence that those plans can be implemented.

Because a technology lead is constantly communicating and iteratively planning with her teams, she is able to deliver a plan to the board with confidence that the plan can be achieved. In turn, when a Technology Lead has confidence, they project a positive attitude and demeanour.

When a leader has strong confidence of success, the individuals on their team will become eager to win, empowered to take action and confidence will spread through the team. Excellent delivery is not a goal, it’s the natural effect of high confidence.

2) Understanding the value of trade-offs

As a technology lead you will often have a vision for where you would like your architecture and code base to be, but equally sometimes you have to focus on the here and now. Minimising technical debt is great, but are you sure that you’re not prematurely optimizing? Quality, [business] value, and future options are a triad, and technical leads need to know when to optimize for each of them.

At Adbrain, squad members work closely with technology leads to understand the overall mission, and work together to identify whether a piece of code needs to be a high quality solution when delivered, delivered quickly, or maximised for future options. Experience tells us that we can only usually have two of the three, so a strong technology lead will need to be able to make the call on which aspects of the triad the team focuses on.

We have at times implemented features in a ‘hacky’ way that gave us few future options, at the time it was critical to have it running. It turned out, we didn’t have to refactor that code for at least a few months after. The value we provided to the company was immense.

Rather than always optimize to reduce technical debt, know where you are cutting corners and make everyone aware accordingly. For instance, we recently built a resource coordination component where we spent some time prototyping a general purpose solution to be future-proof. After only a few days we decided to step back and work on a more simple and less generic design, but very well tested from all angles and delivering tremendous value: cost reduction and almost no operations. We decided to optimise for value and quality at the cost of less future options: even a simple bug there might have been too expensive.

3) You Can’t Fix People

Over the past year, there’s been a lot of talk about what some critics have called the “Dunning-Krueger effect”: the idea that relatively unskilled individuals suffer from higher than average confidence, mistakenly believing their ability to be higher than is accurate.

Since the original study, there have been a couple of others which seem to suggest that the idea has credence. But what the study fails to point out is that no one person is good at everything. What you have to do with people is to become skilled at quickly identifying what they’re good at. And at empowering them to do more of it.

All of us have shortcomings: the best we can do is to be aware of them and try to mitigate, manage and work around them. That’s why you have a team after all!

This is a difficult skill for engineers to grasp. Engineers are experts in spotting problems and fixing them. It’s challenging for a technology lead to, in effect, forget everything they have become good at and focus on what works instead of what is broken and enable their technology team to do more.

Final thoughts

Being a good technical lead is ultimately about creating the future you desire. A good tech lead can transform chaos and confusion into clarity and confidence.

A good technical lead knows the right balance between quality, [business] value and future options. And the very best technical leads bring out the best in the people around them. If you want to improve the outcomes of your engineering, you must be intentional.

Plan effectively, strive for continual progress and work as a team. The future of your engineering team depends on it.

This post was originally published on the Adbrain engineering blog.

Image Credit — San Jose University

--

--

Edoardo Turelli
HackerNoon.com

Exited Founder/CTO • Built world-record-breaking deeptech • Led multiple scaling | Advisor • Interim & Fractional CTO • Coach