As Engineering leaders, it’s easy to get swept up by the day-to-day grind of delivering software. Code quality, broken builds, deployments that didn’t go according to plan, 1:1s, conflicts, stakeholders, and all the other things that fight for attention as we try to satisfy the needs of the organisation. This is us, working in our teams. We’re getting into the weeds of what’s going on and helping firefight issues as they come up. But to be really effective in our role, we need to take a step back and think about how we can be working on our teams. To look for, and cut through all the noise and waste. How can we improve our processes to go build more robust software? How can we improve our ways of working to go faster? Where are we missing data that would allow us to make better decisions? If we’re not doing these things and just getting stuck in the details with the rest of the team, what are we really bringing to the table as leaders?
When there are bugs in your code, there are many mechanisms for understanding the issue and creating a fix. Your computer will tell you when you’ve made a mistake, give you feedback and await your next command. So as a developer you learn to live in this constant cycle of feedback. Constantly making mistakes, and constantly making changes. It becomes second nature. But it’s through these constant mistakes that we learn what does and doesn’t work. We learn to see patterns and spot errors sooner. These mistakes and what they teach us are what make us grow.
Moving into a leadership role can often feel like the total opposite. There is no fast feedback for your decisions. Sometimes it may take months to know you’ve failed, and sometimes you may never know at all. So you can end up doing everything you can to avoid making mistakes. But just like the developer, you need to make mistakes to grow. It’s uncomfortable, and it’s painful, but you have to make calls when afraid or in doubt. You have to learn to live in the cycle of mostly absent feedback. Sometimes you’ll pick up on the affects of the choices you made, sometimes that feedback will be faint, but it’s only in that faint feedback that you’ll find growth as a leader.
As I have gotten older and my career has grown, a lot of my thoughts and opinions on topics around software development, management and leadership have changed. Reading back through some of my posts from ten years ago, I see a lot of the same thoughts and ideas that come up in discussions with more junior team members. And it’s not that they are wrong, but how the effects of experience and having a different vantage point can drastically change your view of things.
Whereas I used to be all for building a custom solution, now I would favour buying off the shelf more. Whereas I used to hate meetings, now I value the high bandwidth communication and alignment they can give when run properly.
A big factor is the difference that being accountable can have on your opinions. Before my promotion I would often rant about how “we have to immediately stop doing X”, or that “we need to really start doing Y before it’s too late”. But now that I’m in the role, all the second-order effects I had not previously considered, start to raise their ugly heads. I had only seen things through the lens of my IC role, now I see them through the lens of someone responsible for the team and how that team can meet wider objectives.
I’m sure that as I grow older still and my career grows, a lot of the thoughts and opinions I have now on software delivery, management and leadership will change. And all the things I’m critical of will look very different when I’m on the other side of the fence.
When you have sports coaching, whether that be for martial arts or tennis etc, often the coach will look at your technique and say “you’re doing it all wrong!”. And then you find that each coach has their own theory on how it should be done, even claiming other coaches don’t know what they’re talking about. But when you look at all these different theories and techniques, and put them into practice, at that moment where it counts, whether it’s contact with your opponent, or with that tennis ball, they all generally put you in the same, correct position, ready to take your shot.
Leadership is like this. Whether you’re quiet and gentle, or you’re loud and angry. At the moment when it matters, no matter what your individual style is, you have to be in the correct position in terms of vision and trust, ready to lead your team to success.