Featured Guest: Nick Malaguti
Nick Malaguti is a software engineer who specializes in developing a comprehensive understanding of intricate systems. He’s also interested in the leadership, management, and organizational structure of engineering teams. Nick worked with Gray Scalable on his recent job search.
When I started my career as a software engineer, I thought that writing great code was all it would take to rise through the ranks and become a top tier engineer. I had heard the myths of 10x engineers – the idea that the best engineers are 10 times as productive as their peers – and I assumed that choosing the right abstraction and writing fast, clean code would get me there. I was wrong.
A few years into my career, my manager told me that if I wanted to get promoted to the next level, writing great code wasn't going to be enough. She explained that engineering projects are too big for any one person to do alone, and so working effectively as a team is more important than any one person's output. Simply having the best idea, or writing the best code, wasn't enough. I needed to present my ideas in a way the rest of the team could follow and buy into. I was struggling with a human problem, not a code problem.
I used to think that management was of dubious value. If you think of software engineering as the process of turning ideas into code, why do you need people who don't write any code? I think a lot of young engineers start out not knowing what they should expect from management, and have no way to evaluate whether it is good or bad. If you don't think you have anything to gain from having management, and you've never seen it done well, it's easy to miss how much value it adds to an organization.
I compare management to code reviews or continuous integration; when done poorly, it is clearly a drag on the organization, and if you feel like you've been getting on fine without them, why take on the overhead? But anyone who has made the transition knows that once in place, you'll wonder how you ever got on without them. The same can be said for good management.
Earlier this year, I decided to join a startup. It was time to make a move and I felt that a smaller organization would be better for me. I also knew that I needed a strong manager and organization to help me level up my soft skills. Unfortunately, startups seem to hate management. From “flat” and “meritocratic” organizations to Tony Hsieh's Holacracy, many startups are actively exploring ways to excise traditional management altogether. Nearly every company I've talked to uses a flat organization as a selling point.
I've grown a lot while working on some exceptionally hard problems, but each time I thought I was ready to take on new challenges after leveling up technically, I found that weak soft skills often held me back. Successfully taking on the next order problem was as much a function of getting the architecture right as it was communicating with a wide range of stakeholders.
I realized that in order to have the kind of impact I wanted to have, I needed help growing my soft skills in tandem with my technical skills. I was looking for an organization that was ready to invest on both sides. It was surprisingly difficult to find.
What's a Flat Organization?
To me, a flat organization has two aspects (and companies can have either one, or both):
- a lack of layers of management between engineers and leadership
- a lack of hierarchy of titles and well defined career paths
Both of these are trying to solve problems that can arise when hierarchy or management are done poorly. However, I believe that hierarchy and management provide critical support that engineers need to grow and succeed.
Even flat organizations develop hierarchy
Titles serve a purpose: they can help employees identify leaders, provide a shorthand for responsibility, and give employees a sense of forward motion over a long career. Of course, titles are not always merit based, and excellent employees can end up under the thumb of someone who has simply been there longer and is better at office politics.
Also, if you're going to have titles, you need a way to identify who should have which title. This can be a lot of work, and is often hard to quantify in any meaningful way. Rather than waste effort on something that isn't going to be accurate anyway, some organizations opt to avoid it entirely. Or they allow engineers to pick any title they want. Who wouldn't want to be a Chief Jedi of Engineering?
Understandably, small, young organizations want to avoid these pitfalls. By removing titles and hierarchy, the best people and best ideas will naturally rise to the top - or so the thinking goes.
Just like scaling your product, it can be hard to know if or when to refactor your organization. Too early, and you add unnecessary overhead. Wait too long, and a lack of structure can be replaced by “shadow” hierarchies anyway.
Organizations that exist without titles or a hierarchy for too long often develop a “shadow” hierarchy instead. The hierarchy still exists, but it is difficult to see unless you live within it. It can hold you back just as much as an explicit hierarchy, except you have no recourse to say that the hierarchy has been perverted or isn't working as intended.
Even the best athletes have coaches
Why do startups dislike management? If we look at the traditional bureaucratic organizational structure, it's easy to see why. For engineers, lots of non-technical managers that don't appear to do much can actually get in the way of doing good engineering work. Distance from leadership can lead to a game of telephone where valuable information is lost. As an employee, there’s a lack of agency when someone, somewhere needs to approve every decision you make.
All these are valid fears. But there are ways to avoid some of these pitfalls without removing management entirely.
For a change in perspective, let's think about athletes. Even the best athletes in the world have coaches. Coaches provide insight, support, and have a wealth of experience in their field. Getting rid of coaches because they don't play the sport today seems like a foolish thing to do.
Just like coaches, management can add a ton of value. The best managers will help you manage your career, help you round out your skill set, provide feedback and recognition of your effort and impact, and take things off your plate that get in the way of doing your job. They will see things you can't, and have the experience to help you overcome new challenges.
In my job search, the critical piece I was seeking was well defined career paths. I eventually found a startup with the right balance of organizational structure and focus on management. I encourage engineers and organizations to invest in management as a driver of growth and future value - it was a huge differentiator for me.