In some cases, I can imagine that users paying for open source software would be a nightmare situation for the developers.
For instance, whenever I'm the sole developer of a "type 0" OSS project, supporting users is typically the most difficult part. This is because, many times, the software is something that I wanted for my own needs, and those needs have been met.
The one saving grace I often have in those situations is that, as demanding as some users might be, at least it's not the potential shitstorm of a user who has paid for something and isn't completely satisfied.
I even think carefully about offering a vector for donations these days. Because inevitably, it will eventually lead to a difficult to parse email from a user who wants help right now, because they just donated $2.
This is an important point, but can you not simply offer a huge disclaimer in flashing red letters that says "NO SUPPORT OFFERED" and maybe "HERE ARE THE FORUMS:"
In such situations I usually reply with "Sure, sounds like a great feature, make a pull request if you want that." (https://github.com/manmal/hn-android/issues/4), or I go and add the feature, of course. I also do quality assurance - if I don't like the way the pull request solves the problem, then it won't even hit the upstream.
I'd prefer supporting its developers via Gittip or similar rather than having to deal with buying something to use it. That just puts a barrier on use. (If only they'd accept my money.)
Similarly, I'd rather share my open source project for free rather than spend my effort on selling it, and hope to get some support via other means.
I read this over, as well as the original blog post about the grails plugins and am not sure I can really agree. Personally I've always looked at open source contributions as a hobby, and in the end I'm doing it in order to keep the source open and available for those who wish to learn off of it / utilize it somehow.
In fact I would presume that the reason people are not going to pay up front is that they assume the developer is doing it as a favor to the community, and that giving them money for it would break the philosophy of giving out of free will. The real issue though seems to be an overall lack of resources. A one man shop, even with the ability to work on their projects full time, still has a maximum output capacity. Without others to assist there is the chance they would get swarmed with bugs and feature requests leading to burn out.
I think that open source developers need to step back and consider the costs and benefits of their projects. Doing a large amount of projects by oneself without a good job to support on the side will lead to burnout, as we've seen here. It may feel like bestowing a great gift on the community, but if you burn out and halt all development where has that feeling of contribution gone?
Which begs the question of which is more valuable: financial contributions or code contributions?
Virtually no open source project makes it big without some kind of full time commitment and/or corporate patronage.
However, there also isn't really any incubation mechanism in place for OSS. It sort of grows organically or it fades into obscurity, and that's not necessarily an optimal model.
The solution being that financial contributions early on might inject energy into a project which might otherwise lose steam. It makes sense to me. We've probably lost at least a few cool projects to atrophy-and-entropy land, which is a shame.
Well, I would say that something of a corporate patronage or making it big is a side effect of having a big idea that sells. If you want a business to give you lots of money you need to create something that will meet business needs. Not only that but you can't assume that businesses will find you're great idea and throw money at it, there's personal marketing involved as well.
Yes it's quite a shame that we may have lost a few projects that might have gone somewhere with investment, but I believe that to be the nature of the beast. Also my thought was that the open source movement was about contributing out of good will, and if you made some money off of it great.
> Also my thought was that the open source movement was about contributing out of good will, and if you made some money off of it great.
I think OSS contributors are driven by a fairly wide variety of motivations. Linus, for instance, has spoken out on this issue :
I do not see open source as some big goody-goody "let's
all sing kumbaya around the campfire and make the world
a better place". No, open source only really works if
everybody is contributing for their own selfish reasons.
Now, those selfish reasons by no means need to be about
"financial reward", though.[1]
I made sure to include the last part, because it's both relevant to this discussion and it "completes" the statement. OSS contribution isn't necessarily about monetary reward, nor did the article claim it was.
However, money does happen to be necessary to devote time to a given endeavor. Without it, the best a project can hope for is a collection of part-timers, which is ultimately limiting.
projects that became successful had zero financial backing more often that not. They get financial backing AFTER they're successful as a side effect (because the corporations use them).
You know. Linux. GCC. emacs. gdb. you name it. In fact, some of those still don't have financial backing. Heck Linux certainly wasn't started with Linus thinking he'd gain anything _financial_ with it.
Yes, he was definitely putting the cart before the horse. Forcing people to pay for every tiny little project would lead to far less open-source activity on the low-end. The lack of support may be a problem, but it's necessary–not everything is worth supporting. And frankly, a couple dozen people paying $5 is not enough to seriously encourage anyone to commit themselves to long-term maintenance. You have to turn the complaint on the head and ask yourself are we better with the code out in the wild even if it's unsupported than not existing at all? It's hard to deny that the answer is yes. Even if you have to learn it and self-support, there's still an opportunity to save time and for new ideas to blossom.
> Forcing people to pay for every tiny little project would lead to far less open-source activity on the low-end.
Forced? Don't think that was ever suggested nor even a remote possibility.
>You have to turn the complaint on the head and ask yourself are we better with the code out in the wild even if it's unsupported than not existing at all?
Well, yeah. I don't think anyone's really claimed this is some stark choice betwee financial support or nothing at all. The article, to me, was about improving the existing model.
> They get financial backing AFTER they're successful as a side effect (because the corporations use them).
The relationship is a little more symbiotic than you're implying. Financial backing is as much a "side effect" as it is a necessary pre-cursor to any kind of genuine wider adoption.
> Linux. GCC. emacs. gdb. you name it.
Hadoop, Mongo, Android, My/Postgre/SQL
> Heck Linux certainly wasn't started with Linus thinking he'd gain anything _financial_ with it.
Don't think I ever implied otherwise. This isn't really about motives.
Financial backing quite often simply means that a developer(s) can work on a given project full time. There are real limits to what can be achieved part time and with crowd-sourced code. Take video editing in Linux as an obvious example of this phenomenon.
He misses out on another type of open source project: those supported by professionals as part of their day job, but that aren't directly related the core business of the company.
For example, at my current job we need plupload, or something like it. If it didn't exist, we would be forced to create and maintain something like it. There's no reason why we wouldn't release the code as open source and then continue maintaining it as necessary for our software. The company wins, and so does everyone else.
I'm really surprised that nobody is doing a kickstarter thing for open source.
tiers 0 to n-1: creating product/features
tier n: release as open source (community votes for license) on day 1
I mean in all honesty if I saw a link to some awesome fucking shit and I saw that it was $500 away from being open source, I'd probably do it. It would probably happen yearly or less, but honestly there are a lot of developers making big bucks and we all know how much certain tools could make our lives so much easier.
It works differently from Kickstarter; for one thing, it emphasizes maintenance over new development. You really have to have an existing successful project to make use of it... which is probably why no one is using it yet :-(
I ran a successful Kickstarter 2 years ago[1] for an open source[2] project which we've gone on to get funding for[3]. I've been full time on it the entire time and a co-founder joined me a year ago.
I could see this also work for feature requests. Just let people fund bounties for particular features, therefore attracting more developers to more urgent problems.
This is a bit different - kickstarter style funding for existing open source projects. Developers remain 100% in control and put features up for funding.
The general idea was to tithe a certain portion of profits/revenue towards open source projects. Only a few accepted it though (myself included). Only two really seem to have made any contributions though (I would love to but not making any money yet).
I am more than happy to pay but unless otherwise specified, I expect support for the product. I expect emails to be replied to and my problems addressed. Most of the open source projects I donate to, I have had a conversation with the developers beforehand and I know that if I ever had a problem, they would be more than happy to help. This ensures that I am paying for a piece of software that is going to be developed into the future and won't die one week out.
At my current startup[1], this is exactly what we're trying to address. We built a marketplace for open-source projects, trying to add a business layer around open-source development, so that developers could work on it full time, and provide the level of support that people require.
Proprietary software companies like to point out that while FOSS might be free in distribution, the lack of support means that you pay for it in other ways - and to some extent that's very true. Very few open-source projects get to the point where they can sustain themselves while still giving out their main product for free.
I think developers should be able to sustain themselves working on open-source projects, even with relatively small adoption and scope, by treating it like a business. If you don't want to support it - give it for free, if you want to take it to the next level, start charging for distribution. The important thing in my opinion is getting as much quality and useful code out in the open.
Is there some deep lack of new and exciting open source projects? I don't see it. Things are vibrant and exciting. New free stuff is appearing every week that is worth looking at. All the "big" projects, of course, are very well funded already, and projects continue to get funding (via diverse mechanisms) as they become "big".
We didn't need this for jquery or rails or pick-your-favorite-web-technology. We don't need it for the lower level stacks either.
I'm sure everyone would be happy to be paid for open source work. And some people want to work on open source but can't for financial reasons. But the only question here that matters is if enough people are willing to release their code without compensation. And clearly the answer is yes.
I disagree with this. It's not that someone has to pay the developers of what you refer to as Type 0 open source projects for the incentive to exist for them to maintain it; it's just that the developers have to have a reasonable expectation that some value will come to them as a result of of maintaining the project. Everyone values different things, but if money is the goal, I think developing popular software in the open is as good a way as any to attract a healthy financial offer from potential employers.
This article uses the wrong framework to think about successful open source projects. It's not like the mobile app store ecosystem.
Successful projects, in terms of numbers of users and contributors, seem to happen in places where many people need something complex and pool their resources to all share in a better solution than any individual one could have been.
Putting the whole thing under economic norms, and encouraging communities to think in those terms is probably extraordinarily counter productive. There isn't enough money available to pay open source developers what they are worth in dollars. If open source operated under economic norms it wouldn't work, since it operates under social norms it does [1]. There is a reason that everyone here doesn't get paid to work on whatever cool fun they feel like working on.
A "type 0" project is a hobby project and your github account isn't there to get you paid. Open sourcing it is socially acceptable public charitable giving crossed with academic publishing.
The next step isn't consulting monetization models or aquisition/IPO. The next step is more contributors so that a team of motivated people can solve a complex problem, for everyone, once and for all (that's the ideal version anyway, about as likely as an IPO or aquisition). That might bring some money, maybe for some core peole but more important is that now everyone else, and especially those that contributed and have expertise, can go on and build/do that thing that this complex problem was stopping them from doing.
Looking at this as an progression from github project to aquisition and defining the stage of a project by revenue misses nearly every lesson learned from watching this strange new market succeed so spectacularly entirely because it is based on different norms and therefore attacks different problems.
This plus moxie's comment (currently top) really sum it up nicely. Unless I get on the order of $500 or more for it a month, I won't stop seeing something as a side project or hobby. I certainly don't want the support responsibilities that come along with paid products.
Knowing that you've solved an unsolved problem in some niche, putting it out there, and seeing others voluntarily use it is far more gratifying than whatever small sum of income such a scheme might net you. This applies even more when those others start helping contributing back.
open source yeah.. but the real reason open source works out is because of the free licenses. Free as in beer and freedom.
If its not free, not everyone will use, test, expand it.
That shouldn't stop anybody from donating of course. But donating is not a _required_ payment. I personally donate to projects I like from time to time, expecting it covers the infrastructure costs, but never expecting it pays somebody to code for it.
I think the author simply wants to express his frustration, because some projects he likes died, or because he expected to get money/investors in his open source projects.
Guess what. All the big open source projects which started the movement were given away with NO expectation. THAT is what made open source successful. The free sharing of knowledge.
I much rather get one or two corporations sponsoring my project than have each of my users pay $5, for the various reasons outlined in sibling threads. Or better yet, I wish there were government-level grants for this kind of work.
I've been thinking of seeking out sponsors for urllib3 (Python http library, core of Python Requests which recently broke 2 million downloads). After maintaining and enhancing the library since 2009 (with on/off contributors of varying quality), keeping the code quality high while not using the library myself[0] has been hard. Motivation to work on it has been hard to come by, but at the same time it's not as easy to give away to another maintainer as some of my other projects (workerpool and s3funnel have had very smooth transitions).
Getting some hours per month paid by a sponsor would definitely make some of these weekends easier to swallow, but I'm not sure which pricing model is best to pitch. Maybe offer to charge something like 1/2 of my normal hourly rate and let them dictate some feature/bug prioritization? Or maybe a tiered Kickstarter-like approach would be better?
Does anyone have experience with this?
--
[0] I love the library myself, but I haven't had any excuses to do http-related stuff lately.
"by paying some small amounts as a required step, not voluntarily."
Open source but not free.
I agree that developers need to taken care and that not enough people chip in voluntarily but Open Source is associated with free. If I pay $5 and then give the 'open source code' to John and Jane, who will go after me?
Nobody. Think about it: the honor's system is predominantly what keeps most software companies afloat, even though many choose not to trust their users and (pointlessly) administer DRM.
Thankfully, most people who need software both a) are comfortably employed and b) aren't perfect models of economic self-interest.
I'm not sure the author is well aware of the open source community. There is a large body of very large software projects that really only go in this "Type 0" but are nonetheless much bigger than little plugins. I seem to recall a project started by ... oh was it ... I believe it was someone from Finland ...
Anyway, I think this misses the spirit of the community. There's also this idea that I've heard Joel Spolsky talk about, such as once you introduce money, you change the situation drastically. Imagine an kernel module programmer building the module for the usual reasons, now say someone provided the programmer a method to pay some trivial amounts, like $5 or $10 ... Now, you introduce a very small amount of money and it can give the programmer a feeling of "this is a waste of time" because, say, someone working at MS doing a similar job is making much more money doing basically the same thing. This is not to say the programmer doesn't deserve or that making $20 is not better than $0 but it changes the dynamic in an odd way.
This conversation has been up for over 2 hours, and nobody has noted that this fails the Open Source Definition at item 1? You can verify that at http://opensource.org/osd.
More generally, when you sign a contract, or release something under a license, you should understand what you are doing, why you're doing it. If the legal agreement doesn't accomplish what you want, then don't do it. That goes whether you're a hobbyist, a business, are releasing open source for free, or are selling incredibly expensive per CPU licenses. In general, releasing software for free is not the best way to get paid for the act of writing it. That's common sense, and if that is a problem for you, then you really shouldn't be releasing your software as open source. But you have no grounds to complain that other people choose to.
So why do people release software as open source?
- Fun. It can be nice to say, "Here, look what I did!" Why not give it away for free?
- Learning. Participating in open source software is a good way to get feedback from experienced developers you could never learn from otherwise.
- Marketing. At the worst, you wind up with software to show people that has your name on it. At its best, an individual will wind up with a network of connections who can get you jobs that you like. Then for companies you get into dual licensing business models, ease of attracting developers, etc.
- Gratitude. A lot of developers gained a tremendous amount from using and reading other people's open source software, and feel like they are paying that gift forward.
- License requirement. Some open source software is only available under licenses that say you cannot restrict redistribution of your changes. (The GPL is an example.) Thus you can find that you can get a lot of what you're looking for already done, and the cost is reciprocity. (Hey, if you don't like the license, don't use the software...)
- Maintenance costs. Many companies find that they need something "almost the same as" something out there. But maintaining a fork over time gets expensive as you have to track future improvements, security advisories, and so on. But if you contribute your changes back into the project, then you avoid this cost. (Supporters of the BSD license prefer motivating people this way.)
- Reducing the price of complements. Customers often want to buy a solution, and have a price they are willing to pay. That solution will include multiple pieces of software. If you make other pieces of software cost less, then your piece can cost more. As a concrete example, for many years Oracle pushed customers towards Linux, and then charged a higher price to run on Linux than to run on Solaris.
...and so on and so forth. There are many valid reasons to give away open source software for everyone from individual hobbyists to big companies. But the fact that there are lots of reasons that lots of other people want to do it doesn't mean that it makes sense for you. If it doesn't make sense for you, then don't do it. But don't try to tell everyone else that they shouldn't do what they want to do for their own reasons..
Don't forget altruism, wanting as many as possible to benefit from a valuable project, making the world a better place in the process. Should it not be the considered the best reason?
No, that's one of the great things about the FOSS community. There's very little value judgement - or rather, the sum of the movement is altruistic, even if the individual actions taken within it are egoistical.
My software isn't "better" because I wrote it altruistically than if I wrote it for a million bucks and open sourced it so I could legally take advantage of other peoples code in it.
Actually, the quintessential open source project is a developer scratching his own back. That's not particularly altruistic.
> Actually, the quintessential open source project is a developer scratching his own back. That's not particularly altruistic.
He wrote the software to scratch his own back, and now he needs a reason to release it as open source for others to use. My point was that altruism would be just a good (if not better) a reason to release it as any of the other reasons listed by btilly.
Altruism can be part of the reasons for writing new open source code too. For example in a specific case the set of reasons can be that it's fun, it's a learning experience, it markets the coder's skills, _and_ it provides free value to others. It doesn't have to be the only reason, and I'm not necessarily talking about "pure" altruism here (if there is such a thing), but rather about a general concern for the welfare of others.
I dislike this line of reasoning. It imposes a fairly unrealistic value system where none need exist. I quoted Linus elsewhere in this thread, but it's worth repeating at least once.
I do not see open source as some big goody-goody "let's
all sing kumbaya around the campfire and make the world
a better place". No, open source only really works if
everybody is contributing for their own selfish reasons. [1]
That's an outdated view of behaviour. Helping other people is itself a powerful motivator for most people, and gains valuable social capital and status as well. It has worked because everybody is contributing for their own reasons, both selfish and not.
Personally I like this whole "civilization" concept, so far ranking altruistic motivations higher than selfish ones has turned out wonderfully. Things get ranked on arbitrary scales regardless, that's what people do.
I don't think it does. Copyright law allows you to license five separate rights, and attach conditions to all of them. For software redistribution is one of those rights, "use" (the right to perform/display) another.
IANAL, but I would say it's possible to craft a OSD compatible license that requires users (but not distributors) to pay incredibly expensive per CPU licenses, or as the OP suggests a more reasonable fee.
From what I can tell it's also possible to place that restriction on derivative works (modified versions), because the OSD only requires that the license allows for them "to be distributed under the same terms as the license of the original software".
The performance right you refer to is not a right to limit performance, it is the right to limit public performance. But what constitutes a public performance of software? I don't know, but I would be shocked if a private, personal viewing qualifies. But perhaps a website does. It is a murky area. And one that had not been thought of when the OSD was written.
However if you tried to use the public performance right to make people pay money, I would argue that you're implicitly failing OSD #6, no discrimination against fields of endeavor. Because if my field of endeavor requires public performance then I'm treated very differently than if it doesn't.
Here's another one: wanting to enjoy comradely social bonds with other programmers.
This is one of the two motivations that Stallman listed when I asked him what motivated his work on free software. "Community" is the word he used for it.
Parenthetically, the second motivation Stallman listed is "freedom", and when he spoke that word I got the sense that he was referring to a pleasant feeling or at least an absence of an aversive feeling (namely, the feeling of being restricted) more than he was referring to an abstract moral principle.
Interestingly, he specifically disavowed an altruistic motivation. More precisely, when I asked whether he contributed because it was an efficient way to benefit many people, he said, no, that was not a significant motivation for him personally.
Having a culture who encourages financial support of open source projects is good for everyone. But forcing everyone to pay in order to use a project is not. I have about 20 of these projects in my requirements.txt and if I were living in a third-world country, I would have to pay an equivalent of one month of my salary if they all demanded payment.
Software engineering is one of the more well-paid professions available. And yet occasionally on Hacker News there seems to be somebody who doesn't feel they have quite enough money yet. Usually they manifest this by trying to top up their bank account with some underhanded Amazon referral link couched within a blog post. Today it's another "open source software should cost money" plea.
Last time I saw it manifested in this particular form, it was Zed Shaw's "Premium Branch Manifesto" (http://premium-branch.org/) in which he breathlessly warned of impending doom:
> If this balance of power is not corrected I
> fear FLOSS will actually die.
I think it's kind of sad that so many people apparently don't see one of the main things I find so amazing about free software. We're a community of people who give stuff away to others for free often for no other reason than the fact that building it is fun enough in itself. This is simply not a thing on this kind of scale in most other professions, and I feel a little defensive when somebody says we should put a stop to it.
See, I think it's a bigger problem that it's such a taboo topic within the open source community.
Not all developers have (or want) regular-paying jobs. Many of us want to work on open source projects full-time, but cannot afford to because there's a general assumption that their software will be beer-free.
Now I agree that giving stuff away for free is awesome and is a huge reason why so many open source projects have a large, sustaining community to keep them alive, but I don't think we should poo-poo developers who believe they could do a better job if they expect (EDIT: some of) their users to pay for their software.
If you expect users to pay for your software, then (literally by definition) you're not a part of the open source community.
Full stop.
You may be a wonderful person who creates amazing software that you deserve to be paid top dollar for. But it is proprietary software, not open source software. And trying to call something open source when it is not just confuses people. Don't do that.
I am also wary of people suggesting that software whose users are "required" to pay a per-user fee could be open source. Open source software could not come with a universally enforceable requirement of this kind. "The license may not restrict any party from selling or giving away the software..."
But the prospect of open source developers being paid other than per-copy, per-user is plausible. Alex Tabarrok demonstrated in 1996 that it should be possible to do it even without altruism given enforcement of contracts and someone with sufficient information about demand. (I don't know if that kind of information is often achieved in practice.)
Karl Fogel just ran a successful Kickstarter campaign to fund creation of the second edition of Producing Open Source Software, which will be distributed on terms closely parallel to open source software (all recipients of the book can redistribute and modify it, and nobody is required to pay a per-copy license fee). The payment to Karl happened up front and ahead of time. The same structure might have worked if Karl were to apply this funding to software development instead of to writing about software development -- and indeed Joey Hess did that a while ago with his git-annex-assistant Kickstarter, which as far as I know has worked out quite well.
In the Kickstarter case there is a significant potential free-rider problem; for example, I didn't personally fund Joey's project but I might still benefit from his work on git-annex. Kickstarter seems to use various aspects of social norms and psychology to address free riding, often with good results.
I think we need more work on this even as we continue to insist on not diluting the meaning of open source.
There are lots of models for how open source developers can be paid.
The first person that I am aware of to be hired exclusively to develop open source software (though he of course called it free software) was Brian Fox in 1985.
The first company that I am aware of to establish a successful commercial business exclusively around open source software (though of course again it was called free software) was Cygnus in 1989. The business model is that people developing new chips needed a compiler for their chip, and would hire Cygnus on a contract to port GCC for them. (The resulting port then got folded back into GCC.)
There are thousands of people today whose paid job is developing open source software. Are there more people who want this type of work who don't get it? Absolutely. Are there a lot of useful projects that don't get funded? Of course. But there are a lot of these projects out there.
Item 1 of http://opensource.org/osd disagrees with you. You may charge anything you like for open source software. But once someone gets it, they are free to redistribute it for any price that they want - including nothing. If your software does not have that property, then it is not open source.
(That web page has been up for nearly 15 years, with only minor modification, and the principles of that definition go back farther than the creation of the term "Open Source" as a marketing campaign for free software almost exactly 15 years ago. I've been personally using that term for over 14.5 years.)
No, it doesn't. The fact that someone can redistribute it doesn't mean you don't have the right to charge for it in the first place. This works particularly well for some software when it comes to distributing binaries against cost.
People get paid for solving problems, not writing software. Solve a problem with your software, then it's not terribly difficult to make money.
The reason that people push back on the idea that you should get money because your git origin is a public GitHub repo is that that in itself does not solve any problems.
But wouldn't it be nice if it were easier to make a living as an independent developer, working only on open source? Don't you think a lot more good stuff would get written?
I get that it's more fun to just hack for fun and just throw stuff out there than it would be to be doing it for a living. But we all have to make a living somehow. Are you better off with a day job that leaves you a little time for open source, or spending all your work time on open source but having that be more like a job?
I'm sure different people will answer that question differently, but I think there have to be more people out there that would like to get paid for OSS work than have currently managed to find a way to do that.
That's a nice fantasy, but how do you know that random people paying 5 dollars each is going to be enough to significantly help someone be an independent developer?
Yeah, look at all the 99 cent crap splayed across google play that we are missing?! Giving incentives is a sure way to increase output but we are not short on low quality alternatives for every task.
I'm sure there are a lot of people who would like to get paid (and feel they deserve to get paid) for making OSS in whatever area interests them. But the vast majority of them should mostly be solving specific tasks for specific people for money and practice. Their occasional bug fixes in OSS that affects them is more valuable then whatever project they may create if they were given money.
It is the nature of learning, expertise (and human self deception that is needed for growth?) that if you think you are the best person for the job then you are probably a beginner.
No. The number one quality of open source software is the extremely low friction. If I'm doing a project, I don't have to worry if I'm using three or 200 plugins/libraries/components, and I don't have to justify that I'm only using 1% of one of them, or that plugin Z is actually better than plugin Y, but uses library T that I've already paid for.
The main cost of commercial software licensing generally isn't the monetary cost, it's the friction leading to all these annoying tradeoff evaluations.
That said, I think "we", the collective group of people who makes money off the back of open source software projects, probably could be a lot better at throwing some money at developers of the software we use.
I released several "Type 0" free and open source software in the past. And making people pay for using them, would be the worst I could have done. The software I release as FOSS, is basically stuff I would have coded anyway. But by releasing it for free and as open source, i got following in return:
* Feedback with ideas I wouldn't have come up with myself, that helped me to improve my software.
* Free testers, that reported bugs, I wouldn't have found myself.
* Free contributors, that sent me patches for features and bug fixes I would had to spend my own time on otherwise.
* A nice portfolio, future employers can look at, making it more likely that they hire me.
However making people pay for using my software, will reduce the number of people using my software, and so the number of people who will give feedback, report bugs, and contribute patches. Also people paying for something are less likely to contribute. They are more likely to expect that it is my job to make sure that the software behaves like they expect, since they are paying me for it. But 10-15$ per user, is much less money as I would save by releasing it for free, increasing the number of users/testers and their motivation to contribute.
76 comments
[ 2.0 ms ] story [ 186 ms ] threadFor instance, whenever I'm the sole developer of a "type 0" OSS project, supporting users is typically the most difficult part. This is because, many times, the software is something that I wanted for my own needs, and those needs have been met.
The one saving grace I often have in those situations is that, as demanding as some users might be, at least it's not the potential shitstorm of a user who has paid for something and isn't completely satisfied.
I even think carefully about offering a vector for donations these days. Because inevitably, it will eventually lead to a difficult to parse email from a user who wants help right now, because they just donated $2.
As in many other situations, simply setting boundaries is often enough. In this case, user expectations.
Similarly, I'd rather share my open source project for free rather than spend my effort on selling it, and hope to get some support via other means.
I don't like barriers.
In fact I would presume that the reason people are not going to pay up front is that they assume the developer is doing it as a favor to the community, and that giving them money for it would break the philosophy of giving out of free will. The real issue though seems to be an overall lack of resources. A one man shop, even with the ability to work on their projects full time, still has a maximum output capacity. Without others to assist there is the chance they would get swarmed with bugs and feature requests leading to burn out.
I think that open source developers need to step back and consider the costs and benefits of their projects. Doing a large amount of projects by oneself without a good job to support on the side will lead to burnout, as we've seen here. It may feel like bestowing a great gift on the community, but if you burn out and halt all development where has that feeling of contribution gone?
Which begs the question of which is more valuable: financial contributions or code contributions?
Virtually no open source project makes it big without some kind of full time commitment and/or corporate patronage.
However, there also isn't really any incubation mechanism in place for OSS. It sort of grows organically or it fades into obscurity, and that's not necessarily an optimal model.
The solution being that financial contributions early on might inject energy into a project which might otherwise lose steam. It makes sense to me. We've probably lost at least a few cool projects to atrophy-and-entropy land, which is a shame.
Yes it's quite a shame that we may have lost a few projects that might have gone somewhere with investment, but I believe that to be the nature of the beast. Also my thought was that the open source movement was about contributing out of good will, and if you made some money off of it great.
I think OSS contributors are driven by a fairly wide variety of motivations. Linus, for instance, has spoken out on this issue :
I made sure to include the last part, because it's both relevant to this discussion and it "completes" the statement. OSS contribution isn't necessarily about monetary reward, nor did the article claim it was.However, money does happen to be necessary to devote time to a given endeavor. Without it, the best a project can hope for is a collection of part-timers, which is ultimately limiting.
[1] http://www.bbc.co.uk/news/technology-18419231
You know. Linux. GCC. emacs. gdb. you name it. In fact, some of those still don't have financial backing. Heck Linux certainly wasn't started with Linus thinking he'd gain anything _financial_ with it.
Forced? Don't think that was ever suggested nor even a remote possibility.
>You have to turn the complaint on the head and ask yourself are we better with the code out in the wild even if it's unsupported than not existing at all?
Well, yeah. I don't think anyone's really claimed this is some stark choice betwee financial support or nothing at all. The article, to me, was about improving the existing model.
The relationship is a little more symbiotic than you're implying. Financial backing is as much a "side effect" as it is a necessary pre-cursor to any kind of genuine wider adoption.
> Linux. GCC. emacs. gdb. you name it.
Hadoop, Mongo, Android, My/Postgre/SQL
> Heck Linux certainly wasn't started with Linus thinking he'd gain anything _financial_ with it.
Don't think I ever implied otherwise. This isn't really about motives.
Financial backing quite often simply means that a developer(s) can work on a given project full time. There are real limits to what can be achieved part time and with crowd-sourced code. Take video editing in Linux as an obvious example of this phenomenon.
For example, at my current job we need plupload, or something like it. If it didn't exist, we would be forced to create and maintain something like it. There's no reason why we wouldn't release the code as open source and then continue maintaining it as necessary for our software. The company wins, and so does everyone else.
tiers 0 to n-1: creating product/features
tier n: release as open source (community votes for license) on day 1
I mean in all honesty if I saw a link to some awesome fucking shit and I saw that it was $500 away from being open source, I'd probably do it. It would probably happen yearly or less, but honestly there are a lot of developers making big bucks and we all know how much certain tools could make our lives so much easier.
We'd love to help, and if it's for open source - use this promo code, and we'll waive the Crowdtilt fee: ctdevs123
It works differently from Kickstarter; for one thing, it emphasizes maintenance over new development. You really have to have an existing successful project to make use of it... which is probably why no one is using it yet :-(
[1] http://www.kickstarter.com/projects/jmathai/openphoto-a-phot...
[2] https://github.com/photo
[3] https://trovebox.com
https://www.catincan.com
The general idea was to tithe a certain portion of profits/revenue towards open source projects. Only a few accepted it though (myself included). Only two really seem to have made any contributions though (I would love to but not making any money yet).
Proprietary software companies like to point out that while FOSS might be free in distribution, the lack of support means that you pay for it in other ways - and to some extent that's very true. Very few open-source projects get to the point where they can sustain themselves while still giving out their main product for free.
I think developers should be able to sustain themselves working on open-source projects, even with relatively small adoption and scope, by treating it like a business. If you don't want to support it - give it for free, if you want to take it to the next level, start charging for distribution. The important thing in my opinion is getting as much quality and useful code out in the open.
[1] http://www.binpress.com
Is there some deep lack of new and exciting open source projects? I don't see it. Things are vibrant and exciting. New free stuff is appearing every week that is worth looking at. All the "big" projects, of course, are very well funded already, and projects continue to get funding (via diverse mechanisms) as they become "big".
We didn't need this for jquery or rails or pick-your-favorite-web-technology. We don't need it for the lower level stacks either.
I'm sure everyone would be happy to be paid for open source work. And some people want to work on open source but can't for financial reasons. But the only question here that matters is if enough people are willing to release their code without compensation. And clearly the answer is yes.
Successful projects, in terms of numbers of users and contributors, seem to happen in places where many people need something complex and pool their resources to all share in a better solution than any individual one could have been.
Putting the whole thing under economic norms, and encouraging communities to think in those terms is probably extraordinarily counter productive. There isn't enough money available to pay open source developers what they are worth in dollars. If open source operated under economic norms it wouldn't work, since it operates under social norms it does [1]. There is a reason that everyone here doesn't get paid to work on whatever cool fun they feel like working on.
A "type 0" project is a hobby project and your github account isn't there to get you paid. Open sourcing it is socially acceptable public charitable giving crossed with academic publishing.
The next step isn't consulting monetization models or aquisition/IPO. The next step is more contributors so that a team of motivated people can solve a complex problem, for everyone, once and for all (that's the ideal version anyway, about as likely as an IPO or aquisition). That might bring some money, maybe for some core peole but more important is that now everyone else, and especially those that contributed and have expertise, can go on and build/do that thing that this complex problem was stopping them from doing.
Looking at this as an progression from github project to aquisition and defining the stage of a project by revenue misses nearly every lesson learned from watching this strange new market succeed so spectacularly entirely because it is based on different norms and therefore attacks different problems.
[1] http://youtu.be/OdjlOgGVRVA
Knowing that you've solved an unsolved problem in some niche, putting it out there, and seeing others voluntarily use it is far more gratifying than whatever small sum of income such a scheme might net you. This applies even more when those others start helping contributing back.
If its not free, not everyone will use, test, expand it.
That shouldn't stop anybody from donating of course. But donating is not a _required_ payment. I personally donate to projects I like from time to time, expecting it covers the infrastructure costs, but never expecting it pays somebody to code for it.
I think the author simply wants to express his frustration, because some projects he likes died, or because he expected to get money/investors in his open source projects.
Guess what. All the big open source projects which started the movement were given away with NO expectation. THAT is what made open source successful. The free sharing of knowledge.
I've been thinking of seeking out sponsors for urllib3 (Python http library, core of Python Requests which recently broke 2 million downloads). After maintaining and enhancing the library since 2009 (with on/off contributors of varying quality), keeping the code quality high while not using the library myself[0] has been hard. Motivation to work on it has been hard to come by, but at the same time it's not as easy to give away to another maintainer as some of my other projects (workerpool and s3funnel have had very smooth transitions).
Getting some hours per month paid by a sponsor would definitely make some of these weekends easier to swallow, but I'm not sure which pricing model is best to pitch. Maybe offer to charge something like 1/2 of my normal hourly rate and let them dictate some feature/bug prioritization? Or maybe a tiered Kickstarter-like approach would be better?
Does anyone have experience with this?
--
[0] I love the library myself, but I haven't had any excuses to do http-related stuff lately.
Open source but not free.
I agree that developers need to taken care and that not enough people chip in voluntarily but Open Source is associated with free. If I pay $5 and then give the 'open source code' to John and Jane, who will go after me?
Thankfully, most people who need software both a) are comfortably employed and b) aren't perfect models of economic self-interest.
Anyway, I think this misses the spirit of the community. There's also this idea that I've heard Joel Spolsky talk about, such as once you introduce money, you change the situation drastically. Imagine an kernel module programmer building the module for the usual reasons, now say someone provided the programmer a method to pay some trivial amounts, like $5 or $10 ... Now, you introduce a very small amount of money and it can give the programmer a feeling of "this is a waste of time" because, say, someone working at MS doing a similar job is making much more money doing basically the same thing. This is not to say the programmer doesn't deserve or that making $20 is not better than $0 but it changes the dynamic in an odd way.
More generally, when you sign a contract, or release something under a license, you should understand what you are doing, why you're doing it. If the legal agreement doesn't accomplish what you want, then don't do it. That goes whether you're a hobbyist, a business, are releasing open source for free, or are selling incredibly expensive per CPU licenses. In general, releasing software for free is not the best way to get paid for the act of writing it. That's common sense, and if that is a problem for you, then you really shouldn't be releasing your software as open source. But you have no grounds to complain that other people choose to.
So why do people release software as open source?
- Fun. It can be nice to say, "Here, look what I did!" Why not give it away for free?
- Learning. Participating in open source software is a good way to get feedback from experienced developers you could never learn from otherwise.
- Marketing. At the worst, you wind up with software to show people that has your name on it. At its best, an individual will wind up with a network of connections who can get you jobs that you like. Then for companies you get into dual licensing business models, ease of attracting developers, etc.
- Gratitude. A lot of developers gained a tremendous amount from using and reading other people's open source software, and feel like they are paying that gift forward.
- License requirement. Some open source software is only available under licenses that say you cannot restrict redistribution of your changes. (The GPL is an example.) Thus you can find that you can get a lot of what you're looking for already done, and the cost is reciprocity. (Hey, if you don't like the license, don't use the software...)
- Maintenance costs. Many companies find that they need something "almost the same as" something out there. But maintaining a fork over time gets expensive as you have to track future improvements, security advisories, and so on. But if you contribute your changes back into the project, then you avoid this cost. (Supporters of the BSD license prefer motivating people this way.)
- Reducing the price of complements. Customers often want to buy a solution, and have a price they are willing to pay. That solution will include multiple pieces of software. If you make other pieces of software cost less, then your piece can cost more. As a concrete example, for many years Oracle pushed customers towards Linux, and then charged a higher price to run on Linux than to run on Solaris.
...and so on and so forth. There are many valid reasons to give away open source software for everyone from individual hobbyists to big companies. But the fact that there are lots of reasons that lots of other people want to do it doesn't mean that it makes sense for you. If it doesn't make sense for you, then don't do it. But don't try to tell everyone else that they shouldn't do what they want to do for their own reasons..
My software isn't "better" because I wrote it altruistically than if I wrote it for a million bucks and open sourced it so I could legally take advantage of other peoples code in it.
Actually, the quintessential open source project is a developer scratching his own back. That's not particularly altruistic.
He wrote the software to scratch his own back, and now he needs a reason to release it as open source for others to use. My point was that altruism would be just a good (if not better) a reason to release it as any of the other reasons listed by btilly.
In this case, my comment was in direct response to your assertion about "altruism" being the "best" reason for OSS contribution.
Personally I like this whole "civilization" concept, so far ranking altruistic motivations higher than selfish ones has turned out wonderfully. Things get ranked on arbitrary scales regardless, that's what people do.
I don't think it does. Copyright law allows you to license five separate rights, and attach conditions to all of them. For software redistribution is one of those rights, "use" (the right to perform/display) another.
IANAL, but I would say it's possible to craft a OSD compatible license that requires users (but not distributors) to pay incredibly expensive per CPU licenses, or as the OP suggests a more reasonable fee.
From what I can tell it's also possible to place that restriction on derivative works (modified versions), because the OSD only requires that the license allows for them "to be distributed under the same terms as the license of the original software".
The performance right you refer to is not a right to limit performance, it is the right to limit public performance. But what constitutes a public performance of software? I don't know, but I would be shocked if a private, personal viewing qualifies. But perhaps a website does. It is a murky area. And one that had not been thought of when the OSD was written.
However if you tried to use the public performance right to make people pay money, I would argue that you're implicitly failing OSD #6, no discrimination against fields of endeavor. Because if my field of endeavor requires public performance then I'm treated very differently than if it doesn't.
This is one of the two motivations that Stallman listed when I asked him what motivated his work on free software. "Community" is the word he used for it.
Parenthetically, the second motivation Stallman listed is "freedom", and when he spoke that word I got the sense that he was referring to a pleasant feeling or at least an absence of an aversive feeling (namely, the feeling of being restricted) more than he was referring to an abstract moral principle.
Interestingly, he specifically disavowed an altruistic motivation. More precisely, when I asked whether he contributed because it was an efficient way to benefit many people, he said, no, that was not a significant motivation for him personally.
Are we so much more evolved beyond greet then the rest of the planet ?
Last time I saw it manifested in this particular form, it was Zed Shaw's "Premium Branch Manifesto" (http://premium-branch.org/) in which he breathlessly warned of impending doom:
I think it's kind of sad that so many people apparently don't see one of the main things I find so amazing about free software. We're a community of people who give stuff away to others for free often for no other reason than the fact that building it is fun enough in itself. This is simply not a thing on this kind of scale in most other professions, and I feel a little defensive when somebody says we should put a stop to it.Not all developers have (or want) regular-paying jobs. Many of us want to work on open source projects full-time, but cannot afford to because there's a general assumption that their software will be beer-free.
Now I agree that giving stuff away for free is awesome and is a huge reason why so many open source projects have a large, sustaining community to keep them alive, but I don't think we should poo-poo developers who believe they could do a better job if they expect (EDIT: some of) their users to pay for their software.
Full stop.
You may be a wonderful person who creates amazing software that you deserve to be paid top dollar for. But it is proprietary software, not open source software. And trying to call something open source when it is not just confuses people. Don't do that.
But the prospect of open source developers being paid other than per-copy, per-user is plausible. Alex Tabarrok demonstrated in 1996 that it should be possible to do it even without altruism given enforcement of contracts and someone with sufficient information about demand. (I don't know if that kind of information is often achieved in practice.)
Karl Fogel just ran a successful Kickstarter campaign to fund creation of the second edition of Producing Open Source Software, which will be distributed on terms closely parallel to open source software (all recipients of the book can redistribute and modify it, and nobody is required to pay a per-copy license fee). The payment to Karl happened up front and ahead of time. The same structure might have worked if Karl were to apply this funding to software development instead of to writing about software development -- and indeed Joey Hess did that a while ago with his git-annex-assistant Kickstarter, which as far as I know has worked out quite well.
In the Kickstarter case there is a significant potential free-rider problem; for example, I didn't personally fund Joey's project but I might still benefit from his work on git-annex. Kickstarter seems to use various aspects of social norms and psychology to address free riding, often with good results.
I think we need more work on this even as we continue to insist on not diluting the meaning of open source.
The first person that I am aware of to be hired exclusively to develop open source software (though he of course called it free software) was Brian Fox in 1985.
The first company that I am aware of to establish a successful commercial business exclusively around open source software (though of course again it was called free software) was Cygnus in 1989. The business model is that people developing new chips needed a compiler for their chip, and would hire Cygnus on a contract to port GCC for them. (The resulting port then got folded back into GCC.)
There are thousands of people today whose paid job is developing open source software. Are there more people who want this type of work who don't get it? Absolutely. Are there a lot of useful projects that don't get funded? Of course. But there are a lot of these projects out there.
Item 1 of http://opensource.org/osd disagrees with you. You may charge anything you like for open source software. But once someone gets it, they are free to redistribute it for any price that they want - including nothing. If your software does not have that property, then it is not open source.
(That web page has been up for nearly 15 years, with only minor modification, and the principles of that definition go back farther than the creation of the term "Open Source" as a marketing campaign for free software almost exactly 15 years ago. I've been personally using that term for over 14.5 years.)
Please re-read what I wrote, without skipping the sentence, You may charge anything you like for open source software.
The reason that people push back on the idea that you should get money because your git origin is a public GitHub repo is that that in itself does not solve any problems.
I get that it's more fun to just hack for fun and just throw stuff out there than it would be to be doing it for a living. But we all have to make a living somehow. Are you better off with a day job that leaves you a little time for open source, or spending all your work time on open source but having that be more like a job?
I'm sure different people will answer that question differently, but I think there have to be more people out there that would like to get paid for OSS work than have currently managed to find a way to do that.
I'm sure there are a lot of people who would like to get paid (and feel they deserve to get paid) for making OSS in whatever area interests them. But the vast majority of them should mostly be solving specific tasks for specific people for money and practice. Their occasional bug fixes in OSS that affects them is more valuable then whatever project they may create if they were given money.
It is the nature of learning, expertise (and human self deception that is needed for growth?) that if you think you are the best person for the job then you are probably a beginner.
The main cost of commercial software licensing generally isn't the monetary cost, it's the friction leading to all these annoying tradeoff evaluations.
That said, I think "we", the collective group of people who makes money off the back of open source software projects, probably could be a lot better at throwing some money at developers of the software we use.
* Feedback with ideas I wouldn't have come up with myself, that helped me to improve my software.
* Free testers, that reported bugs, I wouldn't have found myself.
* Free contributors, that sent me patches for features and bug fixes I would had to spend my own time on otherwise.
* A nice portfolio, future employers can look at, making it more likely that they hire me.
However making people pay for using my software, will reduce the number of people using my software, and so the number of people who will give feedback, report bugs, and contribute patches. Also people paying for something are less likely to contribute. They are more likely to expect that it is my job to make sure that the software behaves like they expect, since they are paying me for it. But 10-15$ per user, is much less money as I would save by releasing it for free, increasing the number of users/testers and their motivation to contribute.