5 traits of a successful engineering leader
My experience has taught me how - in technology but also I suspect in other fields - companies tend to spend very little time defining important senior positions in terms of responsibilities, expectations and deliverables.
And yet, defining a simple but exhaustive list of the most common traits of successful leaders in technology isn’t actually that hard.
Here’s what I would start with, in order of importance.
#1 knows how to build software
Now you may say: this is obvious. How can you lead a technology function without the specific know-how? Ultimately every leader should be able to do the job of anyone that falls under their remit, right?
How can you lead a technology function without the specific know-how?
Well it’s a bit more complicated than that: there are a lot of people that over time transitioned into management positions more for age reasons than for specific accomplishments as individual contributors. As such they have been away from the tools for quite some time and back in the day they may have not even enjoyed these tools that much.
While it’s true that the foundations of software engineering haven’t really changed since the 1970’s, the tooling instead continuously evolves at such a speed that being hands off for a few years means effectively being out of touch with the current problems, approaches and solutions and not being able to provide much support to the development teams.
So knowing how to build software using the latest technologies and strategies is a must for technology leaders.
Specifically there are 3 main areas where they need to excel:
- coding principles. They have a set of coding standards that - without being too constrictive - are associated with fast, reliable and maintainable software. And they are not afraid to put them in writing, to explain them and to have them tested day to day.
- architectural principles. Just as good code requires its standards, there are only a handful of architectural principles (microservices, load balancing, sharding, high availability) that really matter and knowing when and how to apply them is key to any technology leader.
- security and scalability. These are currently the most important non-functional requirements good software needs to possess. The need for heightened security comes from the ever growing number of security attacks and ransomware incidents we are all too familiar with whereas the continuous growth in terms of use of online services requires every software to be designed for scalability from the grounds up.
#2 understands delivery
Delivering software on schedule used to be very complicated but this is no longer the case.
Going back in time, since its early days the whole industry used to battle with issues in this area. At the beginning, when there was no process at all, timely delivery was almost impossible. Then the waterfall model was introduced to add sequentiality and predictability to the delivery effort.
Because of its inherent inflexibility and pachydermic slowness this model was superseded a few years later by the more modern Agile methodologies - created to shorten the feedback loop and provide cross functional value more quickly.
Nowadays there is literally no great technology leader that doesn’t understand Agile and its methodologies: after all it’s all about a set of best practices that aren’t that hard to master.
When it comes to implementation though, it’s not unusual to see leaders either going by the book - mindlessly forcing time consuming processes on their teams without too much thinking - or just not having any delivery process whatsoever while calling themselves agile.
What sets great leaders apart from the mediocre ones is understanding what Agile can bring to the table:
- predictability,
- observability,
- pleasant delivery,
- focus on business value
and which agile ceremonies add the most value depending on the specific circumstances.
A typical blind spot in this area is cross team coordination. While there have been a few attempts to create frameworks (like scaled agile, less or others) to align the delivery of multiple agile teams, there is just no perfect solution.
Sometimes going back to the old GANTT charts and project management 101 methodologies is the only way forward.
#3 cares about people and performance
Management and coding are very different jobs and let’s be honest: most people get into technology in the first place to avoid the complexity of human relationships. After all, coding does feel way more predictable than dealing with people.
Therefore it is only fair to expect some struggles in this area.
When it comes to people and performance, great technology leaders do 3 things particularly well:
- recruiting and attracting talent.
- managing performance
- all while being well liked and respected.
It doesn’t sound easy because it’s not - but let’s look at each of these points in more detail.
Hiring
When it comes to software engineering the global pandemic seems to have only accentuated a global shortage of talent. Simply put nowadays there is not a single technology team that is not hiring.
It’s a saturated market with too much demand for skilled engineers and limited supply so being able to hire well becomes incredibly important.
Hiring well means being able to:
- attract talent through a well crafted employer branding strategy
- identify the type of characteristics to look for in candidates that bring the specific positive impact that your team or department needs.
- and convince them to join your organisation.
There are well oiled techniques that can be used to attract talent and I have covered these topics in multiple previous posts
Performance
Most technology experts tend to focus a lot on the technical aspects and very little on the behavioural elements of both individual and team performance. They like to see the world through the binary lenses of good coder vs bad coder and little else.
Reality is incredibly more nuanced and requires a genuine interest in the people, in what makes them tick, in understanding where they are on their personal journey and where they can be if appropriate feedback and support is provided.
Great technology leaders are ready to make the choices that others don’t - even if they are painful in the short term, have the hard conversations when needed while keeping a balanced view of problems without too much black and white thinking.
For example it’s incredibly common to see teams setup by 10x developers that end up not working well with each other - whereas the concept of having a balanced ratio of humble doers in the team is not commonly understood as it should.
Likedness
This is a broad topic I know but suffices to say that if hiring is hard, retaining top talent is even harder.
The right leaders strike a balance between firmness when it matters and flexibility whenever possible, giving freedom and autonomy while still being able to control what really makes the difference in the outcome. Setting the why while being flexible about the how and what.
They are genuinely nice people that have achieved a balance between personal and professional development. They have seen them all, don’t need to prove themselves nor feel threatened easily.
They don’t pick a fight over technology choices but offer a balanced view, without strong opinions and bitter disagreements that create unnecessary conflict.
They care so much about what matters that they have learnt not to care about anything else.
#4 Knows more than just tech
Let’s be honest:
in technology - like in every other field of business - no senior leader can just limit herself to just her specific area of expertise.
But nowhere like in tech there are just so many good reasons to just not deliver blindly what we have been asked to.
To start, capturing good requirements for digital products is extremely complicated. Customer feedback and top down business desires tend to intermix reaching the technology function so distorted that the real customer benefits of many product initiatives tend to be quite fuzzy.
Some other times technology teams are asked to deliver random changes with no real effect on any appreciable business metric - like moving buttons around on the screen or changing colour schemes. We can call these experiments and although experimentation is part of the toolset of every modern product manager, sometimes it’s easy to fall into the realm of randomness.
Then there are the valid but very underspecified high level requirements like:
- we should have auditing,
- we need single sign on,
- we need feature X otherwise client Y won’t sign and alike
These kinds of requests are the real curse of every technology leader.
Mostly because they are underspecified so it’s hard to get your teams to deliver them but more subtly because they tend to show a lack of maturity of the processes and getting the business on a journey is painful and very long term.
As you can see, without a basic understanding of product management, sales and marketing, it’s easy to end up delivering features that are useless or delivered with the incorrect architecture or with the wrong scalability requirements.
A great technology leader questions every request and every requirement from the lenses of customer benefit and is not afraid to ask questions like:
How confident are we that this new feature will yield the results we want?
How have we validated the need for this feature?
They understand more than just tech, focus on customer benefit and positively influence the rest of the business to do the same, by championing exploratory techniques like design thinking, design sprints, service design to shape the requirements in a user centric way.
#5 communicates effectively
This is a must for every senior manager of any kind and this is where the difference between the average and excellent sits.
On this topic I like to always quote the famous motivational speaker Anthony Robbins when he says:
the quality of our life is in direct proportion to the quality of our communication
Too many times I have encountered senior leaders that forget the importance of communication, they either
- talk too much and don’t listen or
- don’t talk enough or
- just don’t use the right words and end up sending the wrong signals.
Let me be brutally honest: communication issues act like a handbrake pulled on any company initiative. The good news is that there are mainly two key elements that act as the backbone of effective communication: clarity and free data flow.
On one hand, clarity is essential to make sure that all the various teams are aligned towards a common goal consistently over time.This may sound easy but in the ever changing world of today it is instead a real challenge.
On the other hand, free data flow - top to bottom and vice versa - is instead the necessary complement to clarity.
Great leaders know how to leverage both by creating an environment where there is enough psychological safety to raise concerns, where everybody feels heard and everybody knows what they need to work on.
summing it all up
There are 5 major areas where great technology leaders need to excel:
- technology,
- delivery,
- people,
- business value and
- communication
While recruiting too often CEOs focus too much on the technical side of things - which is what they don’t understand and need help with - without realising that great leaders are more than just techies but really understand the bigger picture, bridging the gap between technology and the rest of the business.