What are people's motivations to work on open & collaborative projects?
June 21, 2016 12:45 AM   Subscribe

I'm interested in finding the (psychological) reasons why someone decides to start and contribute to an open and collaborative project. After some research into open-source software (a typical example of open and collaborative projects), it seems to me that necessity (scratching an itch, or improving a product someone or her business is using) is the main driver. Is that so, and what are other motivations and incentives for people to work on open and collaborative projects?
posted by Captain Fetid to Society & Culture (16 answers total) 6 users marked this as a favorite
My husband contributes to a couple of the big open source software projects. It's partly that he likes improving and maintaining his coding skills, and the feeling of contributing to something that people find useful, and also because he's an incredibly introverted geek, the small amount of social interaction that he gets on the forums and on comments when he posts code, helps maintain most of his social needs.

I think it's probably similar motivation to what many people feel about posting answers to Ask Metafilter.
posted by lollusc at 12:57 AM on June 21, 2016 [4 favorites]

Actually, a lot of "open source software", maybe even the majority at this point, is developed by professional software teams being paid by corporations. Joel Spolsky explains why in this post.
posted by Chocolate Pickle at 1:22 AM on June 21, 2016 [2 favorites]

other motivations and incentives

Fun, career enhancement, ego (prove I'm smarter than famous dev), curiosity, need to get something working and the best solution is to fix a tool, desire to improve (humanity, the world, etc).
posted by sammyo at 3:30 AM on June 21, 2016

Open source projects also tend to get more adoption. There were lots of proprietary operating systems and programming languages that lost to UNIX/C because the latter had a more open development process.
posted by panic at 3:33 AM on June 21, 2016 [1 favorite]

Developers bored with their work projects. Or "developers" who spend more time in meetings than they do developing.
posted by smackfu at 5:07 AM on June 21, 2016

I can't speak to how common this motivation is, merely testify to having had it.

In a collaborative project, you (and when I say 'you', I mean 'I') can feel like part of a community of people you respect working toward a common good. You learn to admire these other people and their judgments and decisions about things. You appreciate what they have given you (and the community) and you want to be a part of it and give too. It's like being given a present and you want to give one back.

(and, of course, this is just one of many simultaneous motivations)
posted by Obscure Reference at 5:59 AM on June 21, 2016

For me it’s a combination of play and social motivation. It’s an activity that lets me find the extent of my abilities and stretch them, and it’s also a way to stay close with a group of people I love to collaborate with.
posted by migurski at 8:52 AM on June 21, 2016

You may need to think about defining your terms: open collaboration, open source, and volunteerism have substantial overlap but they aren't the same thing.

Lots of people are paid to work on open source software. Open source projects can be developed in private.

In the case where developers are paid, it might be more useful to think of the contributor as the employer and ask about their motivations. I'm not sure I agree with everything in the Spolsky article linked to above, but he's correct that driving down the cost of compliments is a frequent motivation.

From the point of view of an individual linux kernel developer, there's plenty of motivation in simple economics: I make a good living, my portfolio of work is public, I have more opportunities to build a professional network, and the specialized knowledge I build up of my code will transfer.

Beyond that: it's just nice to be able to talk about my work with anyone. It's nice to feel like part of a larger community. And I'm a believer in free software, in the sense that I'd rather live in a world where it's possible to tinker with and understand the software and devices that we use. So I feel good about contributing in a small way to that.
posted by bfields at 8:56 AM on June 21, 2016 [2 favorites]

One volunteer's perspective...

Over the last 20+ years, my career and interests have evolved significantly. Professionally, these days I run data centers (and teams of people who do most of the hands-on work). I can't really call myself a professional software developer anymore. Instead, I've got (awesome) teams of developers that I support and manage.

Because I don't get paid to write code anymore (and if I did, it probably wouldn't still be in C), I get far fewer opportunities to stay current and to scratch the itch. So, I still contribute to FreeBSD (and the ports tree) regularly and I'm pretty sure I've got some code still in Squid 2.x, though it's been a while.

I do it primarily because I still like to write code, and I like to see my code running. I don't have the time, problem to solve, or inclination required to run/maintain my own open-source projects these days. So, I volunteer and contribute to more collaborative projects.

Like bfields above me, I'm also a believer in free software, which is something that I fear is becoming increasingly uncommon. The difference in attitude between "I wrote an application and hope people use it, examine it and help to make it better" and "I wrote an app and I hope half the users pay 99 cents to turn off the advertising" is absolutely enormous. (There's also a gulf between "if you add something, send us a patch so we can all use it!" and "Need something? fork our codebase and maintain a tree with your username associated with it", but it's more nuanced than belongs here.)

The culture that surrounded me as a younger programmer was decidedly the former, and I think it's worth preserving, even as I watch the industry move further and further away.
posted by toxic at 11:07 AM on June 21, 2016 [3 favorites]

I started contributing on Wikipedia basically due to Cunningham's law. Turned out I also liked helping people in a direct manner, and sometimes I even get thanked.

It also sometimes makes me feel smart.
posted by SaltySalticid at 11:52 AM on June 21, 2016 [1 favorite]

If you want to know why Stallman started doing open source, you can read a biography or any number of articles. He came from a hacker culture (not "hacker" in the sense of "guy the FBI is looking for because he did bad things" but in the sense of "problem solvers") and he ran into a problem that he wasn't allowed to fix because the code was not available. This became a big political/moral stance for him.

Some people do it to build a portfolio, either to put on a resume or to promote themselves as freelancers.

Some people do it because you can basically develop what you want. When you get paid to do work, you do what you are told to do. If you just like writing software and getting things working, doing something on a volunteer basis can be your chance to do as you please -- to scratch that itch, as said above.

Some people do it because they want to learn a new language in their spare time and working on a project is the best way to learn a language. If you just want to learn, working on an existing project has some advantages over trying to come up with an idea for a project of your own and you can do as little or as much as you want because other people are working on it too and it isn't your responsibility to make it all work.

Some people do it because they are retired early on disability and can no longer do paid work but still like writing code and this is what allows that. A lot of volunteer work of any kind is done by people who cannot make a large commitment of time for some reason but who want to be involved. If you work full time or have other large obligations or large barriers to doing something more seriously, you can do as little or as much as you want for volunteer work. You can do it one hour a week or five hours a week or two hours every other week. Generally speaking, you aren't going to be paid to work that little.

When I was a full time wife and mom with health problems and other big obligations, I did a lot of volunteer work, some online, some in person. (Not writing code, though.) I also took college classes part-time and intermittently. I couldn't commit to a full time job or full time school. I initially did things related to my family, like volunteering at school for my kids, but I later did things more out of interest to me and related to career goals of mine.

I was a homemaker for about two decades. When I got divorced, college classes and volunteer experience were the majority of what was on my resume. I did manage to get a job at a big corporation, so it was successful in terms of preserving my employability, in spite of my circumstances making me unemployable for many years.
posted by Michele in California at 1:28 PM on June 21, 2016 [1 favorite]

For a lot of people, the driving force is a perceived need - I want [X], or I wish [X] had [Y] feature, but it doesn't...

However another motivation can be career advancement. If you can put [X] years with [prestigious company] working on [impressive project] on your C.V. you're good. But for someone starting out it can be hard getting a job that requires experience.

Contributing to open source projects is a good way to get that experience, and unlike the work I did for [prestigious company], a prospective employer can look at my public contributions and decide if I've got what it takes.

Similarly, if you want to change your career direction, working on an open source project in the area you want to transition to can be a good way of demonstrating a skill you can't get experience with at your current job.
posted by HiroProtagonist at 10:03 PM on June 21, 2016 [1 favorite]

Thanks all for these great and enlightning answers. I'm sorry I did not accept one answer as the best; all of them were very valuable (and apparently many of them based on first-hand experience).

One follow-up question though: am I right in supposing that the public nature of the contribution plays a valuable part in the motivation? It's not that people seem to want to boast about their contributions, but they do seem to want the contribution to have a publicly visible impact.

To apply it to open-source: I can imagine there would be a lot less enthousiasm should the tool/project/solution be used internally by one entity only.
posted by Captain Fetid at 8:30 AM on June 22, 2016

am I right in supposing that the public nature of the contribution plays a valuable part in the motivation?

It depends on the person. Another example of public participation is Wikia.com. I contribute a lot there, mainly information about anime shows I like. And they keep a change history for every page; you can access it to see what changed, when, and by whom. TVTropes is the same way.

But nearly all the participants use pseudonyms.

Some people are motivated by fame but many people are not.
posted by Chocolate Pickle at 5:11 PM on June 22, 2016 [1 favorite]

am I right in supposing that the public nature of the contribution plays a valuable part in the motivation?

Not necessarily.

I'm currently contributing to a project because it lacked functionality that I needed. I push my contributions upstream because:

a) Other people may find my additions useful
b) Future updates will automatically include my changes

The public nature of the contribution plays no part in the above.
posted by HiroProtagonist at 6:44 PM on June 22, 2016 [1 favorite]

am I right in supposing that the public nature of the contribution plays a valuable part in the motivation?

In addition to what was said above, I think you are vastly overestimating the amount of attention this garners the typical participant. Stallman is an extreme statistical outlier. Most people will get zero public attention out of it.

In spite of some of my volunteer work being both online and public facing, that has done nothing to get me "publicity." Outside of the people who were active members of specific forums at the time that I volunteered on those projects, no one has any clue what I contributed or even that I participated. Trying to claim credit mostly feels like me shooting myself in the foot. This is in spite of the fact that the projects I worked on were often the cream of the crop for their niche. But, outside of their niche, no one knows anything about them.

People who work even more quietly behind the scenes doing things that are not public facing may get zero credit in terms of public attention. It can be useful on a resume. I did fill up my resume with education and volunteer experience and it did land me a job. But most people have no idea what I have done and act like I am a teller of tall tales if I try to tell them.

Additionally, many people will not see quietly doing edits online at their computer at home as "public" work. Look at how often someone gets in hot water because they failed to recognize that posting on Facebook or Twitter is public. They talk like they are shooting the breeze over a beer at a bar and are shocked when it gets attention, gets them arrested or fired or whatever.

So, a great many people doing such volunteer work are introverts and are willing to do it in part because it isn't public facing. They can do it in the privacy of their home without ever talking face to face with anyone. If it involved talking to someone, many of these people wouldn't be doing it.
posted by Michele in California at 9:37 AM on June 24, 2016 [1 favorite]

« Older Help me reboot my work life   |   it's not Vox but what is it? Newer »
This thread is closed to new comments.