Mohamed Boudra

Building Exceptional Software is About People

11 Jun, 2023

In the initial months of my CTO role at a startup, I was mostly thinking like a developer, my focus was always on code. Whenever there was a problem, technical or not, my immediate response was to come up with a technical solution. I was mostly spending my time architecting, reviewing code, writing style guides and similar tasks. Those things, while still important, I don't think are the way to build exceptional software.

It wasn't until later that I realized the biggest impact I could have to the team was with focusing on the people aspect, this might sound obvious to some, but I think coming from an engineering background this is a difficult shift to do, and I've noticed that this is a common issue with new engineering managers, they find it hard to turn off their "developer brain".

I think that a reason for this is that as developers, we value hard skills and knowledge above all else, such as knowing all the best practices or mastering your stack. Another reason is that it's hard not to reach for a technical solution when you have been doing it for so long, it becomes second nature.

If you break down how developers spend their time building software, writing code in isolation is kind of the easy part, the hard part is coordinating with the team, tasks like figuring out how code you didn't write works, designing and deciding how we are going to build and deliver new features, discussing ideas, sharing knowledge with teammates etc. Therefore it is fundamental that the team is able do these activities effectively, and your job as a manager is to create an environment where that's possible.

I now believe that focusing on the culture is the single post important thing that you can do as an engineering lead. Building a team that takes ownership, a supportive environment where feedback is easily given and taken and where growth is encouraged is a much more powerful thing to be focusing your time on, because with time and patience, you ultimately will get better software.

The software might be the end product, but it's the team behind it that determines the quality!