Making an Open-source Project Work
"How does an open-source project function? Who has time to contribute if they're not being paid?"
I'd imagine, considering my own previous lack of understanding (and the questions clients ask), that this is a common question. I mean, who contributes to an open-source project to keep it going and going strong if there's no direct financial incentive for doing so? And how do people decide what will go into the project, and what specific functionality to focus on?
The answer, of course, is complex. Sometimes, there is financial gain, insofar as clients sponsor development of custom functionality-- such as new Drupal modules-- or in cases where a developer or company becomes well-known enough that their contributions turn into large contracts down the road. However, there are at least 2 other motivators:
- Intrinsic motivation deriving from the sheer sense of accomplishment that one gets from figuring out the solution to a tough problem. Recently, a new book, Drive by Dan Pink, which argues forcefully that this intrinsic motivator is far stronger than we ever imagined. He says, in fact, that providing monetary compensation can often diminish intrinsic drive because it makes a task into a job rather than an accomplishment. To use one of his examples, children will lose motivation to draw pictures, and adults to solve puzzles, after once being paid to do so. Multiply this effect by thousands of developers around the world, and you have Drupal or Linux.
- A recent experience of mine proves instructive. Frustrated by the lack of particular administrative links in the new version of Drupal-- specifically, links that allow an administrator to create new pages, blog posts, or articles easily in few clicks-- I built a small new module that solved the problem for me. It currently runs on visuaLATTÉ.com and several other client sites that use Drupal 7 (the latest version). I had seen a number of forum posts complaining about this lack of functionality, but no one had yet built a module that alleviated the pain.
After testing the module, I wrote about it on Drupal.org's forum, ultimately gaining significant interest in the project (including the developer of the Admin Menu module, which was the module with the "problem"). After several days of back-and-forth discussion, it was decided that Drupal core itself was the problem, and this developer used his influence to directly appeal to the core software developers, hoping they'd fix the problem in the next bug-fix release.
So this is how it sometimes works: one guy finds a problem and solves it for himself, and then once he publicizes it, it is either accepted as an add-on module in the open-source project, or, as in this case, the system itself is fixed. Had I simply complained about the problem, it may or may not have reached a solution.
‹ blog navigation ›