Hello RDKit users,

 As some of you know, I have been exploring ways to fund commercial open source 
software projects in cheminformatics. I plan to try a crowdsourcing model to 
help develop and support the mmpdb matched molecular pair system. In short, I'm 
looking for several people or organizations interested in funding specific new 
mmpdb features.

At this point I am looking to see if there is enough interest to be worth my 
time and effort. If you are potentially interested, or have feedback, please 
respond in private email.

I am starting with a small trial.

One company contacted me asking if I could add Postgres support and a way to 
export the property rules. I can deliver that to them. However, it typically 
takes 2-3 times as much effort to develop software for general use than 
software for a single customer. (For example, the people who asked me to 
develop a feature don't need much documentation about what the feature does.) 
It doesn't seem right to ask them to pay twice as much just so I can add the 
result back to mmpdb.

In addition, others may be interested in those features, and be willing to pay 
for them. If I contribute the new features back to mmpdb immediately, then they 
have no reason to pay me since the features are there. While if I wait, I might 
get more consulting work for redoing the same work.

Even better, if several companies pay me for a feature, then the surplus can 
help fund general mmpdb maintenance beyond those specific features.

Crowdsourcing
=============

I am planning to run the trial as a Kickstarter-like system. For those who are 
unfamiliar with Kickstarter, it's a crowdfunding platform. A project creator 
comes up with a funding goal, and a deadline. If enough people commit funding, 
the project starts. If there isn't enough funding, then no one does or pays 
anything.

For example, if each of three companies commits to paying EUR 5 000, then the 
total commitment is EUR 15 000. That exceeds the basic funding goal of EUR 14 
000, which means I will develop a new version of mmpdb with the features listed 
below, and deliver the new version to those backers.

Like most Kickstarter projects, I also have a set of concrete stretch goals. I 
honestly don't think I'll get EUR 50 000 of funding for this trial, but if I 
do, then I'll be able to make many improvements to the mmpdb project, and make 
it all available through the main mmpdb repository as soon as it's ready.

Goals and Funding levels
========================

Here are the provisional goals and corresponding funding levels. At this point 
I am looking for feedback before committing to them.

  o  Basic level - EUR 14 000

This pays for my time to add support for:

 - Postgres database support
 - rule and property rule export
 - provide environment fingerprints as SMILES fragments, instead of or in 
addition to SHA256 hashes

Everyone who joins the crowdsourcing consortium would receive the new features, 
under the existing 3-clause BSD license. However, in order to incentivize 
people to join, this new code will not be sent upstream to the main mmpdb 
repository hosted by the RDKit project. (See the Q&A below.)

Feedback question: are there any other minor modifications that several people 
would like, and are willing to pay for?

  o  Delayed upstream level - EUR 20 000

Within 6 months of completion, I will contribute the new features back upstream 
to the main mmpdb repository for anyone to download and use.

The delay is meant to encourage people to fund the project now, rather than 
wait until it is available for free.

Feedback questions: is this a reasonable enticement? Is the delay too short or 
too long? Perhaps I should consider something else? The main problem with open 
source funding has always been in trying to get people to pay for things which 
are already available for free.

  o  Documentation level - EUR 25 000

At this level of support, I rewrite and update the documentation from the 
current README into a better form that can be hosted on "Read the Docs". Of 
this, USD 400 will go to sponsoring Read the Docs.

  o  mmpdb/GitHub support - EUR 29 000

At this level of support, I will be able to handle support questions on the 
mmpdb project page on GitHub for a year.

  o  Instant upstream level - EUR 37 000

At this level of support, the code is distributed upstream at once, with no 
further delay.

  o  Test suite level - EUR 50 000

At this level of support, I develop a reasonable automated test suite for the 
project. Currently there are only a few tests to assure that the basic 
functionality works. This must be fleshed out in order to support long-term 
development. Good test suites often find new bugs, which I'll also fix.


How to join
===========

To start, email me to say that you are interested, and how much you are willing 
to fund.

Kickstarter allows people to set their own donation levels, which is likely 
difficult to explain to the financial department. I can understand, because I 
know I'm weirded out by the restaurants which allow you to pay what you think 
the food was worth!

Instead, here are the funding levels:

  Academic/Individual - EUR 1 000
  Research group - EUR 3 000
  Organization - EUR 5 000

All crowdsourcing consortium members will receive the mmpdb source code under 
the existing 3-clause BSD license.

Those wishing to pay an additional EUR 3 000 will receive 1 year of support. 
That EUR 3 000 will added to the sum used to determine if a funding goal is met.

The funding status will be made public. Funders can be left anonymous or agree 
to have their names used.

I generally use purchase orders, paid to my company's Swedish bank account. I 
can accept credit card payments through PayPal, though will charge 10% more 
because of the overhead.

If enough people commit to the project, I will send out a formal quote to the 
backers, and start the purchase order process.


Timeline
========

As a rough timeline:

 Today - Pre-announcement on the RDKit list for planning purposes
 1 September - Announcement on the RDKit list
 28 September - Lightning talk at the RDKit UGM
 1 October - Second announcement on the RDKit list
 1 November - Call off the trial if there has not been enough interest
 1 December - End of fundraising / see which funding goals are met

Note: I define "interest" as people sending me an email saying they/their 
company wants to join, at a given funding level. It does not mean that I have a 
purchase order from everyone. It should be seen as a verbal agreement, not a 
written or financial commitment.

Project work will likely start shortly after the interest level meets the basic 
level goal.

If this trial proves very successful (over EUR 30 000 or so), then one likely 
future crowdsourcing project will be to develop a web interface for mmpdb.


Questions & Answers
===================

1) Is it really "open source development" if it isn't available to everyone for 
free?

Most well-known open source software is also available at no cost. However, 
open source, and free software, describe the rights and freedoms available to 
the person who receive the software. They do not require that the software be 
made available for no cost.

Think if you modify a GPL project like Open Babel, and distribute the changes 
to a friend. There's nothing about the GPL, or the principles of open source, 
which require you to also distribute that code to anyone else.

I am influenced by Stallman's essay at 
https://www.gnu.org/philosophy/selling.html . He states "if you are 
redistributing copies of free software, you might as well charge a substantial 
fee and make some money. Redistributing free software is a good and legitimate 
activity; if you do it, you might as well make a profit from it. ... 
Distributing free software is an opportunity to raise funds for development. 
Don't waste it!"


2) What happens to the code if the 'Delayed upstream level' goal of EUR 20 000 
isn't reached?

That's a tough one. At the very least, any of the backers who receive a copy of 
the code could contribute the code to the main mmpdb repository in the RDKit 
project.

If there is little interest, I will likely release it after 9 months or a year, 
and also reduce my involvement in developing open source cheminformatics 
software, as I cannot continue to do things for free or low wages.


3) What about Oracle support, or feature X?

Then let me know. Part of my goal now is to figure out which to include as the 
features to implement at the basic level.

If there's more interest, I might have two feature levels.

In any case, I am also available for consulting work.


3) Where should I send questions and suggestions?

Right now, private email to me is the best. I'll set up a mailing list and 
project web page if I get preliminary feedback that it's worth my time to go 
further with this trial.

Thanks for reading to the end!

                                Andrew Dalke
                                da...@dalkescientific.com

_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to