I’ve been very fortunate in my time as an engineer to have a lot of great examples of technical leadership. As I start the second chapter of technical leadership myself, I started to reflect on the specific qualities of leaders and examples that I try to model myself from.
1. Engineer well-being is the number one priority
Yes, we have a deliverable. Whether that is releasing software, supporting software, or some other variation: We are employed for a specific purpose. But it is important to remember that behind the technical delivery there is an engineer (or many engineers). And every engineer is a person. Put the engineer first. The primary reason is because we are all people just living in this life and trying to do our best. But another benefit to that is engineers do their best work when they are cared for. Everybody wins. And it’s the right thing to do.
2. Understand what delivery and timeframe is possible
Oftentimes we have a roadmap for our product or technical delivery. A great leader is very realistic about what can be (and cannot be) delivered. And equally important, when it can be delivered.
3. Restrict the scope of the product
Some of the largest forces of pressure for a product are external: Other teams in the same company, users using the product, or customers (large and small). It’s very easy for a technical leader to just say “yes” to everything, but that sets everybody up for failure: The engineers who will be stressed out and overworking and the users that won’t get the product in time or in the high quality they expect and deserve. Saying “no” to feature requests is an important skill.
4. Security is the highest technical priority
When security is done correctly, nobody is writing blog posts about it. It’s not the thing that (most) users chat about. Everybody likes to push (and talk about) features, features, and more features. But if your engineering team is moving too fast, then there’s a good chance that security is an oversight. And there’s nothing more stressful for an engineer that working on a security issue or vulnerability. These are the highest priority technical issues.
5. Supportability is a close second
Your product might be great, but if when it breaks or is hard to understand, those that support and use your product will be hitting a high point of frustration. And that’s the quickest way to lose users (well… the second quickest way. An insecure product wins that one). Invest your time in ensuring that your product is observable, monitored, and well-documented. After all, you’re making this for production.
6. Organization (or the lack thereof) can make (or break) a team
Are things easy to find in your team? Is there good external and internal documentation? Do engineers know where to look for work? If there is a lack of organization, engineers will quickly get frustrated and fatigued.
7. Be a champion for the engineer
Tell all the great things the individual engineers do to anybody that is willing to listen. As a technical leader, it is absolutely your job to amplify the great work that your engineers are doing. It’s this champion mentality that allows the engineer to get the recognition that they deserve. This also helps propel their career forward!
8. Shield engineers from negativity and stress from above
Your engineers want to focus on engineers, and not much else. As a technical leader, there are going to be a lot of things coming from above. Be transparent with the engineers about things that directly affect them, but do not unnecessarily flow stress from above.
9. Cultivate a healthy culture of code reviews
To ensure that your team is delivering a high quality product, code reviews are one of the best ways to achieve this. Using examples and guidelines, make sure that your team maintains a healthy and positive culture of technical reviews.
10. Create a blameless culture
We all make mistakes. We all write bugs. The only programmer that has never written a bug is the programmer that has never written code (so… not a programmer). Normalize this and when these issues come up be very intentional not to place blame. Don’t focus on the mistake: Focus on the solution and how to prevent this in the future.
11. Explain the vision
Engineers care about the vision of what they are building. As a technical leader, there are usually a lot of factors that go into the future of the product. Distill this into a consumable vision that the engineers can support and work towards. Yes, of course we care about code and systems but we also like to know why we’re building this.
12. Be technical
Engineers like to work with other engineers. We like to know that our leader speaks the same language (not programming language, but “technical” language) as we do. Having a technical leader that is technical gives the engineers confidence that they know what is possible and what is not possible.
13. Bucketize work into initiatives
We are used to these massive backlogs and big project boards. Having granular work items is very important, but the technical leader should be able to group these small items into larger projects or initiatives. If engineers feel as though work is unconnected, there will be an increased feeling of context switching which is a quick cause of engineer fatigue.
14. Understand the individual engineer’s needs
Each engineer is different. We are all people and we all have different needs. Make sure that you understand the individual engineer’s needs. And also be very conscious that you are not projecting your own personal preferences on the engineers. They are not you. Work to understand what their preferences are, as well as their strengths and ways they can improve.
15. Get the engineer where they want to be…
…even if that is not on your team. Focus on engineer happiness instead of attrition. Don’t take offense when an engineer says they want to work on a different product and/or team. Be happy that they are comfortable and confident enough to tell you this. And work to get them to where they want to be. Especially in our industry, we are all typically temporary on this team. Including you, the technical leader.
Summary
These are a handful of qualities that I try to focus on and improve every day as a technical leader. Hopefully this list has helped you as a technical leader, or understand what you should be looking for in your current and future technical leaders.