Hello.

Basically I want to suggest a global feature request. I don't know any
official google email to send these ideas, and this mailing list is the
best place I've found so far, so excuse me if I sent them to the wrong
place, and please, tell the correct address to send them.

In general these ideas are about building a stronger bridge between users
and software developers. But they have a power to become a base for
a new type and motivation of open source software development.


Really short summary
====================
This is a long email. I tried to explain reasons behind each of the
suggestions I made. But on practice it boils down to a few things.

It would be great, if google allowed some 1-click way for users
* to request some features from software developers
* and allow them to pay for these features if they wish
and for developers:
* to set the price for the implementation of suggested features
* to fork any other open source project and sell some features for it

Why you may be interested in these ideas? Well, on one hand, these ideas
are good for developers and they allow users to become an important part
of open source community. On the other hand some of these ideas are about
money, so you can i.e. get some percent from money transfers. ;)


Introduction
============
Open source community is growing every day. New solutions appear. Projects
like "github" bring collaboration among open source developers to a new
level. Now to become a developer of any project you just need to push a
"Fork" button... Well... I'm sure you know that. But one important thing
that's still weak is a public connection between developers and their users.
(In "public connections" both "public" and "connections" are important, but
let's talk about connections first.)

A lot of users have something to say about the program they use. They may
tell what they like or don't like, or what they miss... Many of them can
even pay to get what they want. But how can they do that? In the best
case official site of the program has a forum or mailing list with some
developers visiting it. But in many cases the only thing user can get is a
bugtracker, or even just email of the author. Not too friendly.


Idea 1
======
So the first idea I suggest: in addition to easy collaboration for
developers (which is important for this idea anyway) create an easy
interface to connect developers and their users.

There're always more people using the software than people developing it. (!)
Imagine that a user opens official site of some program and sees there a
list of good features, bad features and missing ones. And all these lists
were created by other users! User can hit a +1 for any feature, or he can
create one more. And these are not just some "i like it" comments, but a
useful information, that may be crucial in selecting a software.

This is good for developers as well, since they see what features are
actually most important, and what new features should be worked on.


Idea 2
======
Of course, developer may not be interested in those new features. So what
should make him implement them? And here we're getting to the second idea:
users can pay him for the implementation.

The key part of this idea is that users pay not for receiving the feature,
but for implementing it. This is what makes the idea work for open source
projects.

Just a user alone may not have enough money to pay for his "feature". And
here comes the "public" part of "public connection" — he is not alone.
There're a lot of users out there. A lot of them may wish to pay for the
"feature". And Internet makes getting all the users together possible.

So developer can look over the users' feature requests and put his "feature
suggestion", saying how much money he wants for it. When enough money is
collected he releases the software update (or source for open source
software) with that feature included — developer gets the money, users get
the feature, everybody is happy. :)

What if he don't get money? I.e. what if requested feature is so complex
and rare, that there's not enough users to pay for it? In that case it's up
to developer. If he likes the feature he may do it for free. If he doesn't
then... nothing happens. He won't release the feature and won't get the
money. Users also won't loose anything — they don't have the feature, but
they lost no money as well.
(It's an everything-or-nothing scheme — if feature was not released withing
specified time interval then no money is taken from users)


Idea 3
======
If developer can't/don't want to do that even for the money then the open
source hits in. The sources are open, so any other developer can come,
write the code and get the money. The third idea is: make it easy for
anyone to fork the project and work on it.

This simple idea together with other two may have interesting results. For
example it may bring up a lot of freelancers, looking through the most
wanted features and selling them.

As a side-effect this makes any open source project immortal. It won't
matter even if original author abandon the project. Since as long as
there're people willing to pay for the work there would be people willing
to work. There're other good side-effects as well.


Summary
=======
So there're 3 things to implement:

1. Public collaboration between user and developer. Make it easy for users
to speak. That may also attract more users, because users usually like to
read opinions of others.

I imagined it as a part of the googlecode main page of the project:
a user opens the main page and next to the usual things ("about", "news",
"screenshots"...) he sees list of "Most liked features", "Most missed
features" and a button "Me too" (+1) near each of the items.

Technically it's similar to a simplified and easily accessible bugtracker.

2. Ability for developers to easily collect money from users. That should
motivate developers. And it should attract more users to those projects,
that are more actively supported.

That could be a part of the "Most missed features" component, where
developer can say how much he wants for the feature, and user can not only
hit "+1" but also spend some money for it.

Additionally there can be an extension to the usual Support/Donate button,
where one can select in the donation dialog what feature he wishes to spend
the money for.

3. Easy collaboration between developers. Ability for other developers to
fork the project in 1-click and implement/sell features that official
developers can't/don't do. That should attract more developers to work on
the project, get more features implemented, more users happy, etc.

A good implementation of this thing may be tough. Other developers would
have to either fork entire project, or create branches inside any project.
And either their features should somehow get displayed near features of
original project, or there would have to be one more list of "Most active
branches" on the main page. There should also be some kind of global
history between projects, since branch author may wish to generate a diff
and propose it to the original author.


Those 3 ideas can be implemented separately, but together they form a base
of development scheme that should work for open-source projects with any
license (GPL, MIT, Apache...). It would be great if these ideas find their
way into google services.


Will it work?
=============
Will these ideas get any users? Well they already have them. I've seen
cases when developers of some open source project just asked for money to
do something on the official site. Just to name a few:
* 2005-08-05 developers of world-known project mplayer faced hardware
 problems, they asked for money for new servers, and they got them in a
 few weeks
* In september 2008 devs of not that much known LiVES video editor asked
 $6000 for v1.0 release. It took half a year, but they raised almost $8000
* Entire "Humble Bundle" is based on the second idea. But on May 2010 game
 developers said that they will release sources if they collect $1,000,000.
 And they got it in about a week.

Separately some of my ideas already have implementations. For example
github is a very good example of third idea. Second idea on its own was
done by projects like Kickstarter, LinuxFund, pledgie.com, etc. But I've
not seen all the ideas together.


Possible implementation
=======================
There can be a lot of different ways to bring these ideas to life, and of
course it's up to you which way to choose.

For example on google code you can add "Most liked features" (or extend
existing issue tracker to support them). Then add a field "I'd paid $xxx
for it" to "Most missed features" comments. Then allow anybody to have a
private branch in any projects. And bring short summary of all these to
the Main_page.

All these things should probably be turned on by default to allow support
of open source projects, that were abandoned by its author. (I'm not sure
there's a reason to turn them off)

If google code gets a closer integration with android market (or even if it
does not) you can get some of these ideas there. First, there must appear a
new type of application, that is free by default, but if you wish you can
pay for it as much as you want. And if you pay you get a list of "features"
and can select, which one you wish to spend your money for. The default one
should probably be "I just want to pay for the program", and there should
also be an option "Write my own feature request".

I intentionally avoid the word "donation" because this is not a donation.
You're not donating money, you're paying for some work, for a feature that
someone does for you.


"Pay as much as you want"
=========================
Using arbitrary price instead of fixed one is an important part of second
idea. Different people live in different countries and $5 in Africa is
different from $5 in USA. So to allow anybody to participate there should
be no upper/lower limits in payments.

But also Humble Indie Bundle experiment in 2010 had shown that a good
implementation is also important. For example showing "Average payment"
motivates people to pay more ("Hey, I'm more than average man!"). And
putting a simple "Top10 said" summary turns it into a chatbox where the
more you pay the longer you stay. :) (It was fun to watch such a "chat" on
humblebundle, where usual people paid $2000 just for fun to say "Hah,
bite that!")


Is that all?
============
Well there're still a lot of details to discuss. For example:
* how to protect from spam and cheating in features list?
* if I suggested a "paid" feature and then saw a better one, can I move
 money to another feature?
* can I move money to a feature from another developer?
* can I change my mind and get my money back?
* etc.
So there're still a lot of things to think about. But in general — Yes,
that's all. For software.

But the ideas themselves are not limited to software only. Books, pictures,
audios, movies... Almost everything can be released this way. Book writers
can, for example, upload their books to google-books with a mark "You can
read first 5 chapters, but the rest will be released when $xxx is collected".
Photos can be visible as a thumbnail only until they get paid for release.
Preview-only for movies... etc.

Almost none of that is implemented yet. And I believe that google could be
the first and the best to connect all the pieces together.

That's all. Thanks for reading.

-- 
You received this message because you are subscribed to the Google Groups 
"Project Hosting on Google Code" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-code-hosting?hl=en.

Reply via email to