How to get a team of talented engineers?
Recently I have come to realize that there are plenty of great engineers everywhere, but most of them are not allowed to shine in their job because of bad (or missing) company culture, wrong interview process, bad management, etc… In order to create a team of talented people, I believe you need to create a great company culture by: empowering them and allowing them to grow. Highly motivated people are capable to learn and improve much more faster than average.
What motivates engineers
“[Engineers] want to solve hard, commercially relevant problems, with people that inspire us, achieving a mission that we believe in.”
One would be tempted to think that giving the best best practices, best design choices and making the smartest choices would be the way to go to inspire others. But to be really inspirational you actually need to do the exact opposite: empowering people to choose their best practices, make their design choices and above everything else: don’t think for a single second that your choices are the smartest ones, let the people decide what is the smart thing to do. It’s your team who needs to feel smart, not you.
Of course sharing your own experience as a software engineer is always useful but you need to resist the urge to decide for your team. Let the team decide, let it fail if necessary, so it can learn and get better (or you can learn and get better).
“What makes a great manager isn’t the problems they solve, but the questions they ask.”
Never leave anyone in your team helpless with the impression that their ideas will never be tested. Always go for it if you can. My own personal gold rule is: if it’s safe to try, let’s do it. Either the result will be good, or it will be an experience.
Postmortems and growth
As we are all learning from our mistakes, your team (including you) is going to learn a lot also from their mistakes. That is why doing a blameless postmortem right after an incident can be very important to the growth of your team in term of experience.
In order to make the communication smooth and constructive, you also need to set up a few rules to avoid clashes between the team members. For example, it is a risk to allow strong opinions to be loosely held.
“It sounds like you are 100% sure of that, is that right?” If the answer is yes, you can ask them to explain why they are certain and see if they have any data to back it up
What happens when you empower your team & when you don’t
If the people who work on the project cannot take decision, they lose ownership on the code. Losing ownership will eventually lead to a lost of motivation and maybe to losing your entire team one by one. There is so much competition in the IT industry that you need to give people good reasons to stay, and code ownership is one of those. When your team feels like they are empowered to take the decisions, they feel impactful, useful and most importantly: they feel like they are part of the company.