I didn't know what kind of team I was inheriting. All I know was that I wanted to develop a high performance culture.
He was one of my first employees. I didn't hire him. He was just assigned to my team. And yet he was smart and fast. He was self-taught, but an incredible software engineer – doing things few others were doing. In 1995, after all, few people knew anything about the internet and he was making it his playground.
In one key respect he was different from another member of my new team. He detested interruptions. Even though he would often ask others for help, when others posed a question to him, it was clear the interruption was bothersome.
I'll admit that I didn't think much about it. One team member shared information graciously. The other didn't. Both were learning quickly and coding well. Both were open to code reviews and critiques, and both were fast.
Then we brought in a new member to our team.
And that's when I started noticing the consequence of this one trait – the willingness and desire to share and teach others. Having it or not having it didn't really make much of a difference on personal performance. But it made a huge difference on team performance.
After all, you don't suddenly have a full team. You hire people. Others leave. Teams are in flux.
For each new person that joined our team, I needed people (including myself) to not only welcome them but to help them come on board. I needed a team of people willing to educate. Willing to mentor. And willing to share knowledge without people feeling like it was a burden.
And that's what made the difference between those two initial team members. One was willing to help. The other was a lot less willing to do it.
Hiring Engineers Today
Today I hire for three traits, along with all the history, work experience and skills. These are the key to developing the culture I create for my teams. Your teams may need something different.
Commitment to Learning – I have no way to predict what technologies or landscapes we'll face in 5 years. So I know that the most important thing I'm looking for is the ability to learn. Not only the ability, but the willingness. Not really just the willingness, actually. The desire. A deep yearning to keep growing and learning. That's the first of three traits I look for.
Commitment to Sharing – That first team shaped how I thought about high performance teams. I know I'll add people to my teams. I need a culture that embraces bringing up / teaching our new team members. And that means that if you're one of those “let me google that for you” folks, it's likely not a great fit.
Commitment to Communication – I know everyone talks about communication. I'm not talking about “we all need to be good at communicating better.” I'm talking about, “I would like to learn to present in public, and pitch new products to customers.” As you can imagine, few engineers initially come in with that preference. But those who are willing to learn to be great storytellers are the ones I know I want.
High Performance Cultures
Some people build high performance cultures by hiring superstars. But that can be a risky proposition. Ashish Nanda wrote about his research and discovered that in 45% of the cases, the super stars that were hired to new companies performed 20% less than they had in the past. And in 35% of the cases, they didn't last 3 years.
That's why I spend more time building the culture rather than importing it.
Instead of looking for superstars, I look for young staff just getting a start in their career. I hire them and focus on developing them. Might some of them leave? Sure.
But this process ensures I create not just individual superstars but instead a culture that builds, helps and manages them.
And that means that I need those three traits – learning, sharing and communicating – to be just as equally evident as software development skills. Otherwise, I may have a great software engineer but never develop the high performing team I want.