Getting people engaged, moving, working together, improving constantly and enjoying it is hard. It’s really hard. And this is where happiness lies: Making people happy to ship and happy to get better at it. And shipping comes from the team, which is made up of the people. Simple, right?
As a leader of engineers, and sometimes data scientists, the most important aspect of my work isn’t figuring out roadmaps or developing technical architecture. It’s mentoring, coaching and developing people. As an “older software person”, it’s also expected, and I enjoy doing it.
We are only as good as our weakest. Think about a navy seal team. They work as a team, they help each other out, they teach each other things for which one is strong and others less so. This gives them the best chance of survival — their weakest link is the difference between life and death. And that’s why they are the best. Ours is shipping, competing, and keeping the company alive and competitive.
“How do you do it, what’s your secret, give me an example, etc. ” That’s a hard question to answer in that way since there aren’t really any secrets (at least, I don’t know any). I recently decided to share some of what I find effective and important.
- In the office, its not always the case that teams and companies have 100% transparency. So I try and get others to understand perspective. This lack of transparency can create a situation where one person is upset about a decision handed down. And it’s possible that none of us know why the decision was made and may not know. So we try to imagine: what would you do if it were your decision, and you were responsible for what the CEO was responsible for? When another person behaves in a way that you don’t understand or agree with, maybe there’s a reason that isn’t known or obvious. When you think about decisions your CEO made that you find odd, pretend for a moment that it was your company and your kids need to eat and you have to make payroll in two weeks for all the employees. Does the decision still seem odd? Would your decision to solve more problems than it creates? In this context, it’s easier to see.
- Teaching requires communication followed by understanding and acknowledgment. It’s not enough to tell someone what to do or how to do something or why they should do it, but also to ensure its clearly understood and processed. So oftentimes I use Metaphors. And since people learn and understand things differently. For instance, comparing Golang and Rust lang, I might use an analogy of another performance measurement system such as transportation. “Rust is like flying a helicopter… versus Golang, which is more like driving a Porsche 911. The helicopter will get you there much faster, but it takes you a long time to learn how to operate it. Golang is simple, like a sports car, which many people already understand how to drive. It’s very simple and relatable, And it’s pretty darn fast. But it’s still not a helicopter”.
- Recently Bill Gates talked about his biggest failure (Missing the mobile market). I often try to tell Stories about similar events (in an almost bragging way). I often reflect on something I did in my career which caused some havoc with the systems (I once introduced a bug at Rohm and Haas — now Dupont — into some automated mailer software which filled up everyone’s inboxes with the same message). Other times you can find stories outside of your own industry to use. As a prolific reader of hacker news, medium, and many other content sources, I often collect meaningful stories and repurpose them as need be to help teach. Also, as I have a background in restaurant management and culinary arts, I often look here to find stories to emphasize a point. If you have worked in enough restaurants, you are bound to have a lot of stories. rands wrote a whole book based on storires called “Managing Humans”. One of the best things I’ve read on people.
- Understand that everyone you are working with is Different. They have different reasons for coming to work and different goals from one another. They absorb information differently, and care about different things. The point of using stories and metaphors is to find ways to communicate with different kinds of people who see the world in different ways.
- Treat everyone like Adults. No matter how junior a team member might be, there is value to be gleamed that can make a team stronger. While thy might not be as experience, their world view can sometimes contribute great ideas. I’ve seem some of the best ideas and problem solutions come from people right out of school. Don’t assume people aren’t able to exceed your expectations. This only happens by letting them excel at what they are good at and participate fully. And while we’re at it, they grow faster when they have the real levels of responsibility.
- Focus on Strengths. Everyone is different, they are good at some things and less good at others. My philosophy is to leverage as much of people’s strengths as possible and avoid areas where they are weak. There’s obviously some debate here, but I believe that letting people do what they do best results in the best work. And where they don’t do well, let someone else do those things. As Gary Vaynerchuk says: “When I suck I something, I just hire someone better at it than me. Period.” My own coach, Omer Aziz, has taught me a ton about leveraging strengths for both myself and those that I get to work with. A strengths-focus helps get the right people in the right places to do the right work.
Those are some of the tools in my toolbox. What’s in yours?