"Why would anyone work for free?"

That's a question that some people ask when they first learn about open source software. The answer is often that contributing to open source isn't work, but fun.

If you're thinking about the contributor experience for an open source project, you're essentially asking, "How do I make contributing to this project feel like fun and not like work?"

One way is to plug into the things that make your contributors tick. If contributing to your project aligns with someone's fundamental motivations, then you hope that contributing will give them a sense of reward. In other words, it'll be fun.

Not everyone works on open source for free

It's a little reductive to talk about open source as a hobby. Companies such as Microsoft, Google, and Red Hat pay thousands of developers to work on open source. In a world where paid contributors dominate some projects, does contributor experience still matter?

Well, of course. Even if all open source projects were entirely the result of commercial effort, contributor experience is good business. We want to work with contributor motivations, and remove barriers to contribution, because that leads to more successful open source projects.

In fact, we have to come back to the idea of fun even when people are paid to work on a project. And that's because being paid to work on something isn't always enough.

Two types of motivation

Stop me if you've heard this one before. Even if it's fairly well known these days, it's worth a recap.

In the '70s, a couple of psychologists -- Richard Ryan and Edward Deci -- proposed a new way of thinking about human motivation. Up until that point, the consensus had been that people respond to rewards. Ryan and Deci thought differently. Their experiments showed that people were more engaged when motivated by their internal desires rather than by external rewards, such as money.

In other words, fun rather than work.

Deci's famous experiment had groups of people attempt a mathematical puzzle. Some groups were paid when they completed a puzzle. Other groups were not paid.

Deci found that the paid groups lost all interest in the puzzles when their time was up. For them, solving the puzzles was something they did in exchange for an external reward. The puzzles were work, and they'd just clocked off.
However, the unpaid groups continued working at the puzzles even after the allotted time was over. For them, solving a puzzle was its own reward. It was fun.

That translates into extrinsic motivation---a form of motivation that comes from outside the individual---and intrinsic motivation, which is the reward one gets by doing something for its own sake. Extrinsic motivation is about payment.

But intrinsic motivation is a little more involved. It's that sense of accomplishment we get from a job well done, from feeling good about our abilities, from feeling that we've made a difference. The author Daniel Pink, in his book Drive, talks about three types of intrinsic motivation: autonomy, mastery, and a sense of purpose.

Pizza, t-shirts, and stickers

When thinking about contributor experience, we need to be careful to understand that the way we motivate people has a material effect on how they feel and behave.

In open source communities, we sometimes misunderstand the reasons that people contribute. We forget that, often, contribution is its own reward. Instead, we come up with schemes where people earn a t-shirt when they make a pull request and some communities award points that can be exchanged for physical goods. The moment that we offer a material gain in return for contribution we change the relationship.

Do you want people to attend your meet-up because you have the best pizza or because people gain a sense of purpose by being part of your community? Are the stickers you give out a fun signal of a shared cultural moment or are they a payment?

Extrinsic motivation isn't bad in itself. Sometimes it's necessary, such as in the case of bounties to fix longstanding bugs. But motivating people in that way comes at a cost greater than a t-shirt or $100 PayPal payment. Extrinsic motivation risks turning your project into work and so might prevent people from contributing for its own sake.

Craft opportunities for people to feel good

Open source communities thrive on shared purpose. Your contributor experience should plug into that. Rather than offer material rewards, shape your contributor experience to work with people's intrinsic motivations.

Celebrate people's contributions so that they can feel good about their ability. Be open and vocal about the good your project does so that contributors feel they are part of something better. Be flexible in allowing people to carve out their own path within your project so that they can feel good about doing something of their own.

Contributor experience begins with good tooling and documentation but those are almost just the entry points. Making people feel good about being a part of your project is the key to a long term fulfilling contributor experience.

Sustaining motivation

What motivates a contributor will change over time. People come to your project with a goal in mind. Some might be there to learn. Others to solve a problem they have personally. Whatever it is, there'll come a time when they feel that they've achieved what they set out to do. To create a sustainable community, you need a core of people who stay beyond achieving that initial aim.

This is where those fundamental, intrinsic motivations come into play. Again his book Drive, Pink sets them out as:

  • Autonomy: to feel in control of our own destinies.
  • Purpose: to be part of something that matters.
  • Mastery: to be completely on top of a particular skill.

The question for your contributor experience and community strategy is: how can contributing to your project help people realize their intrinsic motivations?

Changing motivation in the context of your project

In The Shifting Sands of Motivation: Revisiting What Drives Contributors in Open Source, Gerosa, Weise, et al. show how those fundamental motivations come together with shorter-term goals. According to their research, people join open source projects for a variety of reasons, but it's those intrinsic motivations that sustain their involvement.

Specifically, 91% of people contribute to have fun, 85% to do good, and 80% to feel part of something bigger. Only 30% say that payment motivates them, whereas reputation building is important to 68% of contributors.

Specifically, 91% of people contribute to have fun, 85% to do good, and 80% to feel part of something bigger. Only 30% say that payment motivates them, whereas reputation building is important to 68% of contributors.

The research shows particularly clearly that a person's motivation changes over time, so your project's contributor experience is perhaps better thought of as a contributor journey. If you can anticipate and understand how the needs of your community change over time, then you can help them continue to find fulfillment in the longer term.

Whatever the size or purpose of your project, building an ongoing contributor community requires that you align the needs of your project with the needs of people who might contribute. We think and talk in terms of code, pull requests, builds, and technical outcomes. The truth is, though, that an open source community is primarily a human endeavor and, as such, must work with the grain of human motivation.