Last month marked an interesting moment for me—the average tenure of my team hit the 10-year mark. We have had our fair share of churn, but it gave me a moment of pause—I am struck by how much time that is. When I first got hired in this particular storyline of my career, my boss (at the time) said, "We know you coders don't stay anywhere long, just give me two years." It's been 23.
A few years later, I stumbled on this humor piece by Orson Scott Card, and part of it is something I think about. The original is internet lore at this point, but there is a part about bees that has a sparkle of truth:
Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. You can't exactly communicate with them, but you can get them to swarm in one place and when they're not looking, you can carry off the honey. You keep these bees from stinging by paying them money. More money than they know what to do with. But that's less than you might think. You see, all these programmers keep hearing their fathers' voices in their heads saying "When are you going to join the real world?" All you have to pay them is enough money that they can answer (also in their heads) "Jeez, Dad, I'm making more than you." On average, this is cheap. And you get them to stay in the hive by giving them other coders to swarm with. The only person whose praise matters is another programmer.
The part that really resonates with me is that the most important thing keeping the hive together is the other bees. I've been in our beehive for many years now; the other bees are absolutely what keeps me engaged every day. I can't describe why it formed or why it keeps producing honey, but I do think I have figured out a few things and I think they are worthy of sharing to any fellow beekeepers and bees who find themselves pondering honey production.
1. One-on-ones
One-on-ones have taken on a buzzword-level (pun intended!) vagueness these days. In a software company, if you manage people, it's the most important time you will spend in a week. People are your most valuable asset. No software is being built without them.
An important part of establishing and maintaining a relationship with people is having regular and meaningful interaction. I look forward to these conversations and so should you. In this conversation, sometimes it will start off as a status update, which is fine, but that can happen in email or Slack. What you want is problem-solving, as in: there is a problem, and we are going to solve it together. Whether you like it or not, you have problems to solve, and they are either being ignored until they explode or you are working with your people to get them solved.
2. Let the Information Flow
There are definitely situations where confidentiality and discretion are important. There is also plenty of information that is irrelevant. That being said, it's extremely difficult to coordinate the success of something complicated if your team is operating in the dark. That's easy when the timing is convenient. Before you leave for the beach, check the weather. Before you go on a road trip, fill up the gas tank. Seems obvious. But it's most critical when the information is inconvenient or difficult: decisions are being made constantly and the timely actions on that information matter.
If a storm suddenly forms while you're at the beach, it's unfortunate that your vacation is getting interrupted, but you need enough time to get to safety. If you burn more gas than you expected, your schedule is messed up, but you should not skip this exit. Sharing this information will be uncomfortable, but you need all the available brains to avoid disaster. Most importantly, it establishes a sense of collective ownership and trust.
3. Reduce Friction
If you're a manager, you work for your team. Your job is to figure out how to get enough obstacles out of their way so that they can get the job done. The role of a manager, at any level, is to take the challenges you're assigned from the business, translate them into a strategy and tactics, sell your strategy and tactics, and then work hard to reduce friction that would slow the plan down.
The tactics and strategy will change when presented with new information (aka Agile) and the sources of friction will be different and challenging, but doing this for people is something that is truly appreciated and builds loyalty.
Managing a team is more educational than it sounds and it takes years to tune these skills, but it is worth every minute! What do you think? Any other tips you'd add for the beekeepers out there?