Best Intentions

For the most part, people have good intentions. We generally want to be kind, responsible, and respected by our communities (at least, once our own personal needs are met). We have worthy goals and dreams for how to make life better. Yet, we all know that doesn’t always work out. We struggle with our impulses and willpower. We break our New Year’s resolutions as soon as we set them. We say one thing, then find ourselves doing another. This is true of individuals, but also for teams, communities, and organizations. Why does this happen, and what can we do about it?

Intentions are an important part of what makes us human. All sorts of animals set goals and make plans, but they’re usually very basic, short-term intentions, like “I’m gonna eat that bug.” In most species, lifestyle is largely innate, defined by genetics and the environment with only limited flexibility. Humans are different in that we design our lifestyles, both as individuals and as a society. We set abstract, long-term intentions like “I’m gonna save up for college” or “all people in this company should have equal opportunity.” These ambitious visions can help us imagine possible futures, and guide us to make them a reality.

It’s easy to set good intentions and stop there. Sometimes that’s enough, but often it’s not. Those delayed goals can be tricky for our animal minds, after all. I meant to pick up eggs on my way home, but I forgot. I know I ought to make a healthy dinner, but I’m exhausted, so I’ll order pizza. I said I’d learn Japanese, but maybe I was just kidding myself. I wanted to build a shed in the backyard, but I didn’t really know how, so it never got started. When one of my female engineers at work was criticized unfairly, I thought I was being supportive when I swooped in to defend her. When she pointed out how I was preventing her from proving herself, I had to unlearn that habit. In each of these cases, I meant well, yet I fell short.

This highlights some of the key problems with intentions. They aren’t rules that the brain enforces. If I keep my intentions in mind, I might notice when they should affect my decisions, and act accordingly. Or I might not. Like all people, I spend a lot of time on auto-pilot. I often get tired or distracted. I make countless choices in a day I’m not even aware of. Then there’s willpower. Just because I know I ought to do the right thing, doesn’t mean I will after a long and frustrating day. Lastly, intentions don’t come with step-by-step instructions. It’s often not clear how to achieve my goals, so I have to think about the steps involved, what my options are, and what outcomes are likely. Even if I do everything right, reality doesn’t always play along. I have to watch to make sure things turn out the way I intended, and respond when they don’t.

At their best, intentions serve as a frame for thinking and planning. They’re a first step in a process that leads to an outcome. To improve the chances of success, I must design that process. I must compensate for my cognitive blind spots and mitigate the risk of accidents and surprises. This is a form of self-programming. What can I do now to shape my future behavior? How do I make sure I get into the right situations and avoid the wrong ones? How will I notice when that happens? Can I prepare so that I know what to do in the moment, and have everything I need to act? How will I know if my plan is working, and change course if I need to?

I’ve found there are two essential tools for this sort of planning:

  • Write and revisit. Intentions are often too vague to be useful. They can be easy to forget, and can drift over time without our notice. To remedy this, I write my intentions down. When possible, I share them with others to make sure I’m rigorous about it, and to create a sense of accountability. Then I set a reminder to revisit those intentions in a few weeks or months. I try to be brutally honest with myself. Am I living up to my expectations? Do I still think about the problem in the same way? If not, I try not to feel guilty, but instead focus on what to do about it. What’s wrong? Should I change my behavior? My intentions? Both? I force myself to think about this.
  • Prepare yourself. When I set intentions, I think through how to achieve them. Not in full detail, but at least I’ll identify a few major sub-goals that are essential for success. I think about when and how I might do those things, and create some structure around that to make it real. I write TODO lists and set time aside for specific tasks. I leave notes or physical reminders in the real world to nudge me at crucial moments. I think about what decisions I’ll have to make, and how to make them. This is a way of front-loading the effort, doing the thinking and willpower work when I have time for it. That way, when the crucial moment comes, my actions can be fully automatic.

Critically, these two things go hand in hand. Writing down my intentions doesn’t help much if I don’t take some action to ensure they happen. Similarly, making a plan and following it rigorously can be a disaster if it’s the wrong goal, the wrong plan, or if the situation changes. The benefit comes from cycling through these two modes of thinking regularly. What should I do? How should I do it? Is it working? What should I do next?

The same problems appear in teams, communities, and organizations, often amplified dramatically. Aligning intentions across many people is very hard, and aligning behaviors is impossible. Each person has their own motivations, and is gifted and fallible in their own unique ways. To be fully effective, they must set their own intentions, and find their own ways to reliably achieve them. Many leaders are good at setting intentions for their groups, but struggle to make them happen. Sometimes they just say what they want to accomplish and assume everyone gets it and will (somehow) make it happen without any guidance or coordination. Other times they micromanage, trying to force people to deliver by robbing them of their autonomy.

I lead others the same way I lead myself. I just apply the concepts at different levels of abstraction. As a leader, my main responsibility is to keep intentions fresh in my team’s minds and to encourage each individual to be productive in their own way. Rather than telling people what to do and how to do it, I make sure my team has policies and tools to help with common challenges. This gives them freedom and flexibility, but also reduces their burden in the moment and encourages consistency. I create timelines, schedule check-ins, and set reminders in the right time and place. I often don’t care about the timing, I just want to give folks a nudge when they need it, and encourage them to prioritize, pace themselves, and track their own progress. Every quarter, we revisit our intentions together and try to think: are these still the right goals? Is our approach working? Is there a better way?

What makes humans so remarkable is our flexibility. We work creatively within constraints, figuring out the details as we go along. Intentions are a powerful tool for doing that, but they’re just part of the story. Acting intentionally, either as a person or as a group, is about creating the conditions for success. It’s not enough to want something. We’re just animals, after all. We can’t see the future, we can’t be “on” all the time, and it’s very easy to get distracted or to deceive ourselves. If we embrace our limitations, we can try to work around them and do better. Or, at least we can forgive ourselves more easily when we inevitably let that New Year’s resolution slip.

What do you think? Have you sometimes struggled to live up to your own intentions? Do you have any advice for how to overcome that? What about in the work setting? Have you noticed any practices that make a team / company better or worse at living up to their own ideals? I’d love to hear from you in the comments.

Incentive Landscapes

We tend to think of human intelligence as the power of a single brain, but human beings aren’t meant to work in isolation. Our intelligence is only fully realized in a group setting, where we can riff off each other, collaborate, and compete. But humans behave very differently in groups, and coordinating group behavior is hard. I didn’t fully appreciate that until I became a leader at Google. Leaders can’t just tell people what they want to make it happen. Their work is much more subtle: they shape incentive landscapes.

Ultimately, each person decides for themselves what to do at any moment. This is one of our superpowers as a species. We understand our environment, our place within it, and the choices available to us. We make decisions and plans that benefit us and our communities. This is not a particularly rational process. It’s heavily influenced by our instincts and emotions, through neurotransmitters like dopamine and oxytocin. Ultimately, it all comes down to what makes us feel good, whether that’s a literal reward like a doughnut or a paycheck, or more subtle pleasures like helping others or earning respect.

The theory of evolution often talks about “fitness landscapes.” Each organism is more or less “fit”, or likely to survive, thrive, and produce offspring in its environment. Across generations, a species explores different body shapes and behaviors, searching this fitness landscape for better lifestyles. Incentive landscapes are more or less the same thing, just on a different time scale. Evolution has equipped us with the ability to perceive and predict risks and rewards. It has hard-wired us to make real time decisions that, on average, should improve our reproductive fitness.

As a leader, this mostly means I have limited control over my team’s behavior. Yet, their decisions aren’t entirely free. Our team culture makes some paths much more likely than others. The best metaphor for this comes from sailing. Culture creates headwinds and tailwinds, which determine which paths are harder or easier. Tailwinds mean the wind is at my back, pushing me forward. Paths with a tailwind are more obvious, encouraged, and supported. Headwinds are the exact opposite. Those paths are obscured, high-friction, and full of obstacles. I can still go down a path with headwinds, and may even find success there, it just requires more effort and determination.

Leaders can’t decide what each person will do. Instead, they use incentives to influence all those independent choices, making the desired outcomes more likely on average. The most direct way to do this is with reward and punishment. When they’re transparent and consistent, they can guide group behavior quite effectively. Sometimes. A big challenge is that everyone perceives incentives differently. Some folks are highly motivated by a good speech, while others will simply roll their eyes. Extroverts may thrive on public recognition and fame, while introverts may dread the spotlight. Sometimes, money is the best motivator, and sometimes it feels demeaning. Punishment is just as problematic. How well a fine works depends on wealth. Some people take perverse pride in breaking the rules, and foster a reputation as a rebel. Sometimes punishment is just an incentive not to get caught.

For this reason, incentive landscapes are quite complex. Making them robust means combining many different factors that reinforce each other, so all together they will have similar effects across a diverse group. Incentives are hard to manage, since they’re not in the leader’s control–every person in a group influences the others by the behaviors they normalize, the feedback they give, and their social interactions. Just being aware of the incentive landscape and how each team member perceives and experiences it differently can be a tremendous challenge for a leader. It’s also critically important. When someone’s goals and motivations don’t align with group incentives, they leave.

One example of how different people experience incentives differently is racial equity. At Google, there is no rule saying black people can’t be hired, promoted, or given positions of authority. Just the opposite, actually. Leaders work hard to encourage those things. But black names on resumes sound less professional. Black students are less likely to attend prestigious schools, or master all the jargon folks look for in interviews. No one will say “I don’t trust a black person to do this right,” but they will scrutinize the work more closely, hold it to a higher standard, or reassign it to someone with more experience. Despite leaders’ best intentions, black people face greater friction on every path. A supportive leader needs to recognize that, and attempt to compensate without playing favorites.

A leader does a lot of talking. We talk about our team’s purpose, our goals, and why they matter. We talk about what success looks like. We talk about our values, and how to be a good citizen. We do this in big meetings, so everyone can hear. We depend on folks to repeat the message, model good behavior, and pressure their peers. This can be a powerful tool, but only if incentives truly align with the talk. My infrastructure team at Google talked about the importance of code health for years, but it was neglected until we actually held people accountable and rewarded grungy clean-up work. Tech companies love to talk about their respect and appreciation for women. They make commercials, throw parties, and host lavish recruiting events. But if women must work much harder to achieve the same salary and career progression as their male peers, then the talk is meaningless.

The incentive landscape is highly volatile, as world events and many people continually shape it. I led a project to rebuild the user interface infrastructure for Google Search. I crafted a story and designed incentives to guide us. Then, an adjacent team announced a major redesign of the Search page. It was like our plan to repave the downtown streets and redesign signal patterns to streamline traffic was suddenly preempted by a massive parade with the governor giving the keynote speech. How could we do our job without getting in the way? Anything perceived as a risk to the redesign suddenly had massive headwinds.

My job was to reshape the incentive landscape so my team had a smooth and fruitful path forward. Despite being the leader, my decisions were shaped by incentives beyond my control just as much as anyone else. I was powerless to stop the redesign, so instead we joined in. We prioritized cleaning up the parts they wanted done. We adapted to their schedule, to avoid stepping on their toes. We got them to do their work in a way that also advanced our goals, but we had to be very careful not to slow them down. We made tools for them, so the “right way” to do their job was also the easy way. This let us ride their tailwinds. We had to compromise on our goals, but it allowed us to move forward, perhaps better than if there had been no redesign at all.

A group’s leader has very limited control, but there’s an important flip side to that: individuals have more power than they realize. The greatest misconception about leadership is that it’s something granted by those in authority. More often, leadership is recognized and co-opted by authority. Anyone who influences their peers is a leader. Other leaders will see those influencers as either opportunities or threats, and react accordingly. Whether they chose to support or resist this budding leader often comes down to which path seems easier. In other words, they tend to follow the incentive landscape.

What do you think? Does this fit with your experience? Do you know any great leaders who excel at getting everyone on the same page? Do you have examples of perverse incentives undermining the best of intentions? Any thoughts about how pressure from peers and leaders affect your decisions, or how they interact with your emotions and instincts? I’d love to hear from you in the comments.

Programming with People

Introduction

In the tech industry, leading a team is sometimes referred to as “programming with people.” As a novice engineer, I saw that as a cute metaphor that makes managers sound more technical than they actually are. After years of management, though, I’ve come to see it as quite literally true. In both cases, you’re trying to set up a complex system that, when left to run, will perform useful work and solve problems. The only difference is in how you define and maintain those systems. It’s a dramatic difference, though, which is why the parallels are hard to see at first.

Human Machines

What makes human beings unique among animals is our capacity to collaborate. Language lets us serialize ideas and pass them from mind to mind, quickly, easily, and in high fidelity. Sharing ideas lets us build systems bigger than a single person, whether that be a hunting party, a soccer team, or a company. We agree on goals, specialize in different tasks, and coordinate our strategy to form intelligent machines built out of humans. Although everything the group does is the product of individual people, the group itself has its own independent identity and can have behaviors that are totally different from what the individuals do.

So how do you make one of these human machines? The remarkable thing is they form spontaneously, all the time. Human beings instinctively want to socialize, build relationships, and help one another accomplish things. It’s an innate drive, built by evolution and mediated by emotions like pride, belonging, and admiration. In other words, all collaborative endeavors rely on healthy human emotions and relationships. Before we get carried away with the machine metaphor, we must remember that human needs must come first. That includes basics like compensation and healthcare, of course, but also more touchy-feely things like work / life balance, sense of purpose, a supportive community, autonomy, and growth. Providing these things is the humane thing to do, but it’s also good business. Happier, healthier, more fulfilled employees who trust and respect each other are much more productive and successful.

But we don’t just let teams form organically and do whatever they please. Leaders rally people around specific goals, then coordinate and direct their work. This is much harder than it sounds. One of the first things I discovered as a leader was how little control I had over my team. I could ask them to write some code for me, but it might come out all wrong if the solution I asked for was counter-intuitive to them. I could ramble on about the importance of code health, and everyone would nod in enthusiastic agreement, but that alone rarely changed anyone’s behavior. I couldn’t make people get along, hit a deadline, tell me what they “really think,” or hold off on sending that flippant email. Ultimately, what my team did was the product of all the people in it. Human beings simply aren’t robots who do what they’re told. Each person sees the world differently, has their own agenda, and makes decisions based on what makes sense to them. Leadership is getting people to choose to do what’s best for the team, on their own terms.

Culture

While computers are configured with software, humans are configured with memes: ideas and ways of being that we share with each other, internalize, and repeat. Each community has its own unique set of memes (its culture) which shapes its behavior. Culture includes the things that define a group, like the stories about who that group is and what they do, the activities they do together, and the relationships and patterns of communication with other groups. It also includes “guard rails” in the form of expectations, goals, incentives, and peer pressure that encourage good behavior and group alignment. A leader has outsize influence on a group’s culture, but in reality culture is emergent, continually being reinvented by every member of the community as they speak and act. A leader’s job is to cultivate a healthy culture, like a garden. They make an environment with rich soil and lots of light. They water the flowers, and pluck the weeds.

This means embracing the diverse perspectives of the team, supporting grassroots ideas, and giving folks a chance to prove themselves. At Google, my director once told me the whole department was going to focus on developer experience (DevEx) next quarter, and I should figure out what that meant for my team. A bunch of ideas immediately sprung to mind, but I decided to start with a team discussion. I explained why we were doing this, facilitated some talk about what good DevEx means, then opened the table for ideas. I didn’t start with my ideas. As a manager, my voice would overwhelm others, and my intuition was less valuable than the actual developers on my team. When someone suggested one of my ideas, it became theirs. I gave them my full support and feedback, but let them run with it in their own way. Then someone else had an idea that was surprising and unfamiliar. I wasn’t sure it would work or that the person was up to the challenge, but they were eager and confident, and a few others seemed to think the idea had potential. So, rather than sticking with the safe options, we talked about the costs and the benefits of this idea, how it might go wrong, how to prevent that, and how we could quickly test whether it was working. It turned out to be a smash hit.

Cultivating a healthy culture also means encouraging good habits, while discouraging harmful ones. As my team increased our focus on DevEx, we had to establish new patterns of communication. We had to deal with frustrated customers, disarm their anger, and listen deeply to their problems and feedback. We had to set healthy boundaries, making it very clear what we considered to be “not our problem,” low priority, or working as intended. We had to provide hands-on help to build trust and a reputation of competence. As a leader, my challenge was to keep up with my team’s work so I could give regular feedback, highlight good examples to share with the whole team, explain why some behavior was good or bad, and reward people in ways they found personally meaningful. I also had to be very consistent about modeling good behavior myself, but that could only go so far. I couldn’t possibly control, participate in, or even keep track of every request, conversation, or conflict. Instead, I focused on giving my team the tools, incentives, and trust to muddle through on their own. They did great.

Since a team’s behavior is mostly determined by its culture, one interesting consequence is that friction between teams is almost always a matter of culture shock. Each team has their own understanding of the work, their own ways of doing things, their own vocabulary, and their own sense of right and wrong. Most people aren’t consciously aware of their culture. It’s simply “how things are done.” This means it’s often surprising and upsetting to see someone do things differently. It feels like they are wrong, and getting in the way of your team and what’s good for the company. Misunderstandings are common. Two cultures might share a word in common, for instance, but the meaning or sentiment of that word might be totally different, in a way that neither side notices.

At one point, my team was building tools for our partners, who would use those tools to build user-facing products. Though we were friends working on the same code, it sometimes felt like our teams were from different planets. They used code names for major projects they were involved in, but our team didn’t know or care about. The problematic legacy code that my team was trying to eliminate and replace was their bread and butter. They had to use it extensively to meet their product goals, constantly adding more to the mess and getting upset when our improvements changed things out from under them and slowed down their work. We needed each other to do our jobs, but some level of conflict was inevitable.

As a leader in this space, a big part of my job was to act as a cultural interpreter. I lived in both worlds, to the extent I could. I had to align both teams on language and best practice. We had to agree on what vague concepts like “visual consistency” meant for our product, and ideally find a standard way to measure them. We had to debate priorities, which often meant figuring out how their goals might suffer if our goals weren’t met, even when they seemed totally unrelated. When conflict arose, I sat down with both sides, listening carefully, sussing out the root cause of our misunderstanding, and finding a new way to frame the discussion so we didn’t feel opposed to one another. In most cases, both sides were right and ultimately wanted the same things. The challenge was in helping everyone appreciate the other perspectives, and in turning an argument about “my way” vs “your way” into a discussion about what sort of compromise might strike a healthy balance and mitigate all our concerns.

Efficiency

Getting things done with diverse, independent, self-interested people can feel like herding cats. It’s the worst thing about programming with people, but it’s also the best thing. The real strength of human beings is their autonomy and creativity. Unlike computers, people will figure out how to solve a problem for themselves. They might even notice that they’re working on the wrong problem and choose to solve a different one instead. That’s an incredible super power, and the job of a good leader is to coax this out and make the most of it. This requires mastering some “programming techniques” that are wildly different from what works on computers.

One important technique is thinking in negative space. That is, in a creative project, a leader should avoid saying what to do, but instead focus on describing what success looks like. This gives each person a license, a responsibility even, to find their own way to a solution. This is why a leader will typically kick-off a new software team by writing a mission statement, or describing a vision for the future. Only then do they make a roadmap of work to do, usually with the help of the whole team. A healthy team has a clearly defined scope. Everyone knows what the team does and what they don’t do. The scope should be loose enough to leave room to explore, find new opportunities, and grow over time in whatever direction feels right. That’s not possible for a team defined in positive space—that is, purely based on the tasks they do.

On an individual level, the best way to think in negative space is to use problem statements. When I discover a new problem for my team to solve, I can’t help but imagine the good and bad ways to solve it. As an experienced engineer, my intuition is valuable, so it may be surprising that I make an effort to suppress those ideas at first. When I delegate some task, I want that person to take full ownership for the work. I want them to find a solution that they find intuitive, know inside and out, take pride in, resolve on their own, and take full credit for. I want to give them the chance to find a better solution than I can imagine, and permission to change strategy if they discover the first idea isn’t working. I want to let them make mistakes (safe, small ones), and learn from them. My intuition still matters, of course. It just shows up in the form of constraints and feedback. I highlight the key design factors and priorities, the challenges I anticipate, the properties that any good solution must have, how the work will be judged, and how this piece will fit into the bigger picture. As long as those things are satisfied, then it really doesn’t matter what design they choose.

Another challenge in working with human beings is their limited cognitive capacity. People are smart, but things like attention, will power, patience, and decision making are limited resources that can quickly be exhausted. When that happens, people make mistakes, cut corners, procrastinate, and get into conflicts. This isn’t a personal failing, it’s simply human nature. As a leader, I try to prevent that and make sure that limited, precious human brain power isn’t wasted.

The primary tools for this are process and policy. That is, figuring out how to do things up front, and standardizing that across the team. This includes things like checklists, frequently asked questions, form letters, bug report templates, and duty rosters. Revisiting the programming metaphor, this is actually pretty similar to how an engineer might optimize a program by moving code out of a loop, or from client to server. It’s about decoupling the work of deciding what to do and how to do it (an open ended and relatively difficult problem) from the work of actually doing the task (which is often just rote execution). The idea is to do the hard work when the team’s got the time and energy for it, not under pressure in the moment it’s needed. The planning gets done once, then the plan gets reused time and time again.

Process and policy are ways to externalize cognitive work and automate part of a team’s execution. They reduce the cognitive load and personal responsibility for each team member, but also reduce their autonomy and flexibility. That’s the polar opposite of thinking in negative space, like I advocated above. The reality is, a good leader’s job is learning how to balance these two ways of thinking, and applying them in the right circumstances. The goal is to encourage autonomy, creativity, and active thinking where it matters, and conserve those resources by using rote execution when that’s good enough. Knowing the difference is more of an art than a science.

There’s an interesting parallel here with biology. Life strikes a balance between cognitive power and instinct. Animals with big brains can think for themselves in the moment, taking context into account, finding new solutions, and jumping on opportunities as they present themselves. But in a life or death situation, it’s critical to do the right thing at the right moment. Sometimes thinking just wastes precious time, and opens up the possibility of doing the wrong thing. In those situations, instinct takes over, limiting the animal’s freedom, but preventing them from getting bogged down with a puzzle at the worst moment. Over time, intentional behaviors that work reliably can become instincts (this is called the Baldwin Effect). On the flip side, any instincts that no longer serve and unnecessarily limit an organism’s reproductive potential tend to be eliminated by natural selection.

Conclusion

Well, I could go on, but that seems like enough for one post. What do you think? Does this resonate with your own experience? If you work in another profession, does this sound right or are things very different for you? Do you have more ideas or advice to share? If so, then please leave a comment below. As always, I’d love to hear from you.