By Rory Ou on November 28th, 2016 in Technology
Everything I know about leadership, I learned from reading Ender's Game, a classic sci-fi novel by Orson Scott Card.
I suspected this would become true when I first read it as a kid, and indeed it became especially clear a few months ago when I became a team lead within CoverHound Engineering.
I could talk your head off about all the things I first learned from Ender's Game that I now use at work on a daily basis, but in this post I'm only going to talk about one of those things.
In the novel, humans are at war with the buggers−aliens who behave as a single hive mind that can communicate commands telepathically.
"The buggers don't talk. They think to each other, and it's instantaneous... You've seen the videos. They aren't conversing and deciding among possible courses of action. Every ship acts like part of a single organism. It responds the way your body responds during combat, different parts automatically, thoughtlessly doing everything they're supposed to do. They aren't having a mental conversation between people with different thought processes. All their thoughts are present, together, at once."
How can ordinary humans ever compete against an enemy with that kind of power and coordination? As the same character points out, perfect coordination can be a weakness as well as a strength:
"They have great response time and a lot of firepower, but we have a few advantages, too. Every single one of our ships contains an intelligent human being who's thinking on his own. Every one of us is capable of coming up with a brilliant solution to a problem. They can only come up with one brilliant solution at a time."
In other words, humans can only compete with the buggers by being human--by leveraging their greatest strengths, rather than trying to beat the buggers at theirs.
In a small but rapidly growing engineering department, in a company that finds itself amongst much larger companies who have been established in the insurance industry for years or even decades, we could've been tempted to try to maintain the cohesiveness we used to have as a tiny team by establishing top-down control: keeping decision-making authority at the highest level and attempting to ensure that every engineer simply obeys without questioning.
Thankfully, we've chosen to go in the opposite direction as a department: to encourage autonomy, decision making, and problem solving at every level, down to that of the individual engineer. But creating a culture that empowers individual team members to make decisions isn't something that happens spontaneously. It's the result of consciously and deliberately building teams, structures, and practices that make this kind of culture not only possible, but natural. And maintaining this culture has a cost. It's the cost of turning down people and ideas and opportunities that may have value, but that ultimately aren't in line with the kind of culture we want to build. It's the cost of the emotional effort we expend to grow the body of engineers more as an organism than as a machine.
On my team, one of the structures we've put into place that plays a big part in enabling individual autonomy is team-level core values, which augment the company’s core values. We worked together to draft a living document that outlines our team values and what each one means in terms of everyday decision making. As far as I'm aware, we are the first team in any department in the company to do so, but I hope we’re far from the last.
One of our team values is literally "autonomy," which means that everyone spends some of their time doing things that, on a different team, could be reserved as the responsibility of the team lead: code review, architecture discussions, unblocking other team members, and making decisions in the absence of a specific directive from above.
I want to note that core values are not the same as policies, nor are they meant to represent ideas that are considered universally good; that's why ours don't include givens like "communication" or "respect for others." To me, both communication and respect for others are job requirements; it's not very helpful to include those as core values, because we would never not want them.
Rather, each core value is intended as a nudge toward one side of a reasonable tradeoff. For example, individual autonomy may not always be as efficient as top-down management. What if people disagree and have to spend time coming to a resolution, or what if a team member makes a wrong decision, and the team has to deal with the consequences? To avoid issues like these, it can be reasonable to decide to leave the responsibility in the hands of the team lead. But our core value says that on this particular team we prefer to err on the side of autonomy, and that we'll accept the consequences of that preference.
Another of our team values is open-mindedness to differing ideas, and the willingness to question established ways of doing things. Again, there is a tradeoff there, because it's possible to lose efficiency when you take the time to consider multiple approaches, or when you forgo an approach that's tried and true in the existing codebase in favor of coming up with a new way.
Core values don't exist to give people more rules to follow. They exist to protect the individual decision maker. When faced with a reasonable tradeoff, any engineer knows that they can go with the team's core values, and will be thanked for doing so, never penalized. If I'm unavailable when a decision has to be made, I'll be glad that a teammate stepped up to make that decision, even if I would've chosen differently. If one of my engineers suggests an approach that I didn't think of, I'll take their suggestion as seriously as my own. That's the code we've agreed to. Following the agreement creates the kind of psychological safety and mutual trust that keeps the team unified and moving fast in the face of new challenges.
"Ender watched as all his squadrons moved at once, each responding to its own situation, all guided by Ender's overall command, but daring, improvising, feinting, attacking with an independence no bugger fleet had ever shown."
That's the kind of flexibility that becomes possible when you lead by remembering how to be human.
Rory Ou is Tech Lead on the Integrations team at CoverHound. When not delegating all the things, she can also be found implementing new features for the company Slack bot.
Want to join our team? Check out our open positions here. We're always hiring, and we would love to hear from you!