Have you worked in a high performance engineering (HiPeE) team, how do you know you are in one and why is it so hard to replicate that? Are there factors that make it possible for HiPeE teams to grow and sustain. This was a topic of discussion at a recent chat with a few folks. I speak from my own experiences having seen HiPeE teams and was lucky enough to be part of it couple of times. It came down to a few dimensions for me.
- Trust & Empowerment. This has to do with the environment the teams operate in. Do you trust the people you hire to do the right thing? Do you empower them to make decisions and be accountable for them? Will you let them do what they think is right without taking consent from a hundred people? I have seen teams paralyzed because of the lack of trust & empowerment. Every turn they take is met with a thud, eventually killing motivation and the will to do anything new.
- Welcome experiments & failures. Welcoming failures means an environment that is not afraid to take risks and try new ideas. With new ideas it is more the case that you will have a few failures before the first success.
- Hiring the right people for who they are vs just their hard tech skills. You cannot “teach” passion & drive. Those come from your inner self. It defines who you are. It drives you to learn, experiment or question the status quo. It is important that you are feeding this inner part of you both at work and outside.
- Build the right teams. Good teams laugh together and share the pains during harder times. You know when your team member is having a tough day at work and you know when to offer help. You can voice your disagreement and expect respectful responses.
- Build small teams. How many software engineers do you really need? I have seen environments with 100s of engineers with nothing getting done and also environments with say 10 engineers and 30 additional people who do not know how to write code but are good at telling engineers how to do that. I rest my case.
Take the first one – Trust & Empowerment. Near to impossible in many large firms. With many silos, each vested to keep itself alive and no alignment with business or development team goals it is impossible to get even mundane things off the ground. Add to that the unwillingness to see failure as a learning guide and you have an environment that drowns itself in fear to even start off or in constant analysis paralysis dreaming up perfect paper solutions that are like a mirage in a desert.
Two occasions where I experienced high performance engineering were both in a product development environment. The firms were not large so there were no established silos to fight. Every dimension I noted above was alive and well there. Even for these type of firms, with growth comes the risk of loosing the HiPeE edge.
Which brings me to my final thought. How do you create HiPeE teams in large firms? First we need leadership at the senior level to acknowledges that we have a problem and stop hiding behind metrics that often don’t reflect the ground reality. Second, create startup style development groups within the firm that is unshackled from the legacy enterprise constraints. Keep them safe and fiercely fight for their independence. Third, expect some failures with this effort (cause most startups fail anyways). The very first success will become infectious. Post that new teams can be stood up in this style and we can begin dismantling silos that have outlived their life. Sounds simple ah? It is not.