beeware / paying-the-piper

A project for discussing ways to fund open source development.
343 stars 14 forks source link

Funding through sales of tutorials or documentation #24

Open DanielKehoe opened 8 years ago

DanielKehoe commented 8 years ago

For several years I've successfully run the RailsApps project, working full-time on the project without corporate sponsorship or gainful employment, by selling tutorials. I've found that developers are reluctant to pay for software but will pay for learning resources.

The RailsApps project is a collection of open source Rails example applications, hosted on GitHub and available for free, plus the open source and free-to-use Rails Composer tool for generating Rails starter applications. Developers contribute code and report issues. I provide detailed READMEs and basic documentation for free with the code. To support myself, working full-time on the project, I write and sell the in-depth Capstone Rails Tutorials plus a book Learn Ruby on Rails. Initially I sold the tutorials on a subscription basis for $19/month and I had over 500 subscribers paying $10,000/month. There was one significant problem with this model. I spent all my time writing the tutorials to support myself and had little time to actually work on the software. I recently changed the business model and now sell the tutorials for $95 as a one-time purchase instead of a subscription. Revenue has dropped to half what it was, so subscriptions were a better revenue model.

I believe this approach hasn't been explored by many open source developers. And it has potential as a sustainable source of funding for some open source projects. It's not for everyone, however. I've got years of experience as a journalist and technical writer. Many developers don't like to write documentation, much less in-depth tutorials. However, for an open source developer who likes to write, selling tutorials to accompany software can be a source of financial support. It also benefits the user community by providing documentation and learning resource beyond the basics.

freakboy3742 commented 8 years ago

As someone doing this in the real world - where do you see the line between the official for-free documentation, and for-money documentation? A good part of the reason for Django's success was that the documentation was really good (and free) from the outset. But the side effect was that it undermined the market for producing Django books for a long time. We now have a few really good Django books out there, but it's taken a while for those book to be written and find their niche.

So - where do you strike the balance between a project needing to have good documentation, and the desire to make money by selling documentation?

DanielKehoe commented 8 years ago

@freakboy3742 has touched on the central dilemma in this approach. As an open source developer, you have a responsibility to provide sufficient documentation (as a README, for example) for a skilled developer to effectively use your project. But some people want more than the basics. For example, you can explain the code in detail. You can provide a tutorial that explains the basics or provides background. You can show how to integrate with other code. You can provide a walk-through or step-by-step guide for beginners. An expert should be able to use your project with no more than the README. But not everyone is an expert, and even the experts sometimes want easy-to-follow well-written guides.

cvrebert commented 8 years ago
  1. Selling (better) docs sets up a perverse economic incentive to have mediocre/lousy free docs. I doubt most maintainers would intentionally write mediocre docs, but it's worth keeping in mind. Subconscious influences matter.
  2. One problem with less comprehensive free docs is a corresponding increase in the "customer support" burden. Folks will ask more questions which might've been answered by more complete docs. Even if the maintainer declares that they don't offer support (users should ask "the community" on forum X or StackOverflow for help instead), they'll have to waste time closing issues opened by users who haven't read about the "no support" policy, and deal with the associated mental anguish (and occasional hate-filled reply).
DanielKehoe commented 8 years ago

I've found, based on my own experience with RailsApps, that producing learning resources for sale leads to more and better documentation. With incentive to produce more explanatory material, there's time to think about what should be explained, and how it should be explained, and some material is suitable for sale, and other material is appropriate as free documentation. See any of the READMEs for RailsApps repositories and judge for yourself whether selling tutorials diminishes or enhances the free documentation.

wolftune commented 8 years ago

@DanielKehoe The only thing your experience just said is: Funding of documentation work leads to better documentation. There's zero indication that specifically making the documentation proprietary and selling licenses is helpful in any way other than getting funding. Nobody denies that funding work leads to better results, that's the whole topic.

DanielKehoe commented 8 years ago

My suggestion, which few open source developers consider, is to sell tutorials, to fund the software development and produce better documentation. I believe many developers fail to consider this option for at least two reasons. First, they don't like to write or find it difficult to explain in terms a beginner can understand. Second, they have the false belief that they are obligated to offer any tutorials for free.

wolftune commented 8 years ago

@DanielKehoe free/libre/open documentation has the same importance in many respects as free/libre/open software. See https://www.gnu.org/philosophy/free-doc.html and "selling" documentation / tutorials is similar to selling proprietary software plugins on top of the FLO base. Yes, it works, yes it's possible, yes funding matters, but this situation is not ideal. And just like with the software itself, proprietary terms for documentation means missing out on Open Source collaborative possibilities for the tutorials themselves.

DanielKehoe commented 8 years ago

I'm happy to champion the FLO ideal but we're talking about the intersection of our ideals with the market economy. Personally, I don't like projects that sell "premium" or extra software features and I believe selling any software undercuts OS development. Reality is more nuanced than ideals: I believe an insistence that tutorials must be free inhibits developers from exploring a viable and practical source of revenue.

In my experience, the process of writing learning materials is fundamentally different from the process of producing software. Specifically, software production is well-suited to collaborative work, especially because it is granular and iterative. Writing is not as well-suited to open source collaboration. I know there are books that have been collaboratively written and edited but far fewer than those with single authors and I believe that is because writing is more of a solo activity. Even when I've encouraged open source collaboration on documentation, I get far fewer commits or reported issues relative to collaboration on code. Given the lack of interest in contributing to documentation, I prefer to sacrifice the opportunity to have a few meager corrections of typos in favor of an incentive to produce in-depth tutorials.

I've also noticed that developers are willing to pay for tutorials and books where they are resistant to paying for software. That can serve an open source project, if the developers are willing to consider it.

nanuxbe commented 8 years ago

@wolftune Good documentation is necessary and should stay free and make it possible for any experienced developper to do what they are trying to accomplish. This might require them to acquire more knowledge on some topics in the process. Paying tutorials are more aimed at people who do not want to spend the time and effort to acquire the necessary knowledge and want a more take-me-by-the-hand approach. Concrete Django example: With the documentation available it is quite easy for someone with good python and oauth2 knowledge to implement facebook sign-in. It is not the responsibility of the Django project to teach you python or oauth2 concepts. Knowing this there are also a lot of people out there who don't care about gaining knowledge about oauth2, all they want is a way to have their users sign-in with facebook and are willing to pay for it.

This is one of the many case where selling tutorials is IMHO perfectly aceeptable and lucrative at the same time.

nanuxbe commented 8 years ago

@DanielKehoe maybe if people contribute less to documentation than code it has something to do with the persistent belief that a valuable contribution to open-source is "writing code". It has been for years and is only starting to slowly change now but there is still a long way to go

DanielKehoe commented 8 years ago

Yes @nanuxbe it seems technical writing doesn't confer the same status as contributing to code.

wolftune commented 8 years ago

I am not a programmer, and I do contribute to documentation, both core and especially tutorials. I will only contribute if the tutorials are themselves free/libre/open, and my experience is that my contributions are highly valued and people are grateful to have someone helping with things besides the code.