On Tue, 2013-09-10 at 16:42 -0300, Guillermo Espertino (Gez) wrote:
Paying for new features is always a problem. It could demotivate the creation of less popular features.
I've been thinking about this problem for a while now. I'm a big supporter of funding for projects; but people are right to criticise the lack of progress surrounding how to organize administratively and culturally. I still might not have gotten all the ideas out in this email.
What I've got to is: There needs to be a couple of separations implemented in order to make payments, funding, crowd sourcing work through the project rather than appended:
1) Separate investor and producer. If you're a volunteer developer; then at that instance you are both investing and producing. If you are being paid to develop then you are /just/ the producer and if you are paying then you are an investor. The investor should be a separate role in a project much like a translator, bug hunter or designer. -> Addendum: A volunteer can quite often be self-serving, charitable or dedicated to responsibility. These tones are important to the mental context for any contribution and thus the social interaction.
2) Separate gratitude from recognition. I recognize that the amazing developer 'Sarah' has committed some incredible code, but I'm grateful to Sarah's brother who funds her work on Inkscape. This allows us to think more about how we show our gratitude and how we show our respect and how those are different, maybe formulating what we currently do ad-hoc into a more coherent show of gratitude and/or respect.
3) Donations from investing. Donations are an interesting problem for Free Software because they sort of work counter to the nature of production. Software is made, then software gets small tokens of appreciation randomly... even though it's already been paid for. The best way to think of donations to the conservatory is that it's a 'appreciation fund' which acts as a single investor with it's own charter (in our case: "What's good for inkscape"). This doesn't mean that this fund is the only the money the project deals in, pipes through, organises or otherwise understands is involved in the project. What tends to happen is that this appreciation fund gets confused with appreciation payments to developers. i.e. I appreciate the work you've already done. Which it's not. See 2)
You can see how a confusion of these items produces the following social behavioral scenario:
Bob spends some time fixing bugs in Inkscape. Robert gets paid $300 from the conservatory to fix some bugs for Inkscape. Bob is jealous of Robert that his work wasn't appreciated or rewarded likewise with money. Firstly 1) Bob doesn't think he's an investor and doesn't conclude that his past investment is completed, even if he's project reputation continues to grow from it. 2) Bob confuses payment for gratitude because the project has no other way of showing gratitude and 3) Doesn't get why he shouldn't share in donations since they're for past achievement.
These are the kind of policies I would like to talk about with you all:
i Accept funding into the donation pool from multiple sources, but be hard-line that the decision about where is goes is completely distinct to it's source. ii. Authorise/back and/or organise funding to developers and other contributors through crowd funding or grants. GSoC belongs here. iii. Allow companies to solicit developers on list, but with policies surrounding how developers should operate. iv. Require developers working on behalf of an investor to use a note in the merge message crediting them. This level allows developers to both work in their free time and for someone at the same time. v. Branches and Code reviews which can separate work and allow data to feed scripts which can bring to our attention for acclaim. Trunk commits would be considered off-record unless they have a fixes/bug tag and can be tracked. We can also use the reviews to personally show how much we respect the code being written and gives a good place for it. vi. Blueprints to structure some of the work to improve planning. Make sure organised funding either via conservancy or kickstarter etc is well defined and scoped. We can always talk about the merits of funding one blueprint over another. This could even be as simple as 'fix these critical 10 bugs', but it would be the place to record that fact. vii. Weekly or monthly emails of gratitude and respect (separate sections) which can pull in information and reinforce our thanks for developers investing as well as our respect for developers contributing technical marvels. (This would include thanking Google for a couple of weeks every year, but that's ok IMO) viii. Getting users involved by sending such things to the users list as well as encouraging fan art for/about /investors/ thanking them. (if you think this is cheesy, it allows starving artists to show how much our work means to them)
What do you think?
Best Regards, Martin Owens
Time to write email: 2 hours... lots of unpaid work in this email ;-)