I’ve been thinking a lot lately about Engineering Leadership. This is a very difficult job for all the reasons that leadership is difficult, management is difficult and that software development is a difficult discipline.
For various reasons – we as a species suck at writing software. Writing great software is HARD. Nevertheless we as a community are learning a lot more about this, and we at least have some patterns that work.
So I wanted to share some lessons I’ve personally learned over the last few years from operating in teams and building teams. I’ll also link them to a sport I love – Rugby. Even if you don’t know Rugby, the lessons should still be relevant.
1. Know your role: It’s important to know your role and operate in that role – a mistake a lot of leaders and operators make is that they either try to do someone else‘s job – and then try to do too much and fail. Or they don’t realise that they’re part of a larger system. In Rugby – this is like situations where the defensive line becomes misaligned. If there’s not a solid defensive line other teams can attack. Alignment is super important in executing any strategy, and not forgetting that as a leader a big part of your job is to set the direction for the team.
2. Building and forming trust is important: A lot of training for sports is about forming trust among the team. This can be fostered by drills etc – however it’s often best formed by performance. This also means though that like in sports, the relationships matter. If the team doesn’t trust the coach, or even within the team, such issues need to be addressed.
3. The competition are human too: It’s easy to respect your competition too much, or even think you can’t win a big customer because your product isn’t good enough. But self-belief matters, and you need to play your own game-plan in Rugby, in business you need to play your own strategy which suits your team.
4. Best form of defence is attack: In Rugby it’s often better to not focus on defensiveness, it’s best to just attack. In startups it’s the same thing – the most debilitating thing for a competitor is to simply be able to move faster than them. Speed wins in business as in Rugby. One of the questions to ask is what you can do as a leader to encourage agility and speed. It’s often worth thinking about what you can do to improve the speed of the team. In sport that may be better training, or better drills. In business – there’s a lot you can do to encourage speed – send that email today, get that prototype done today, don’t wait until next quarterly planning to schedule that sprint. Set your operating cadence to run.
5. You have to analyse and learn from what went wrong: In software we often have ‘postmortems’ about outages. A fundamental part of that, like with sports is that in a fast moving environment you need to adapt to change. It’s sort of a cliche. But it’s good to be honest with yourself about what’s working and what isn’t. Fundamentally though this is hard because people feel shame. And it’s easy to regress to ‘blaming others’. Remember you’re all part of the same team. This is where techniques like 5 why’s can come into it. Because often it’s more about the system than about a particular player. It’s easy in sport to say think – ‘it was the player who missed the last tackle who gave it away’, but often it’s poor alignment, or other mistakes that happened earlier in the game that caused things to go wrong.
Those are just some thoughts, I’ll keep fleshing this out. Thanks for reading!
Some good resources on Engineering Leadership and Postmortems: