Pay bounties in time, not money

I can't count the number of times people have offered $100 bounties for implementing some feature or other in Inkscape.

From what I've seen - and I've seen MANY features come into Inkscape from folks who aren't developers - $100 is the wrong way to do it.

Not that people are anti-money or anything like that. Certainly we've gotten rabid success out of our Google Summer of Code projects, but these pay out $4500. So maybe $100 just isn't the right price point to stir interest (even a simple feature is going to require 10-20 hrs work, at which point you might make more flipping burgers!)

In any case, aside from GSoC, I've not really seen that many successful cash-for-code projects in Inkscape.

But I *have* seen a number of similar situations that ended up *quite* successful, but didn't involve money at all.

The Mac port of Inkscape is my favorite example. Inkscape started as a Linux-only product but quickly gained a Windows port. A lot users were also very interested in seeing a Mac port, but few of the active developers were all that interested. I think maybe someone even offered a $100 bounty for it, although I'm not certain; in any case none of the existing developers took interest in doing the port.

But there was one user that was really interested in getting it, and he sat down and hacked away on it. After a few weeks he talked to me and said it was just too frustrating to get something that worked properly and he was giving up on porting it. (IIRC, he was able to get it to build but not cleanly, and when it ran it didn't work properly.)

I sympathized but encouraged him to write up his notes into the Inkscape Wiki, to explain how far he got and the problems he ran into. "Maybe someone else will know how to sort those issues out some day."

Meanwhile, people continued to clamor for a Mac port. Eventually, another person took interest in just doing it himself, and when he asked me about it, I pointed him at the wiki page the prior person had written. This was useful in getting a leg up, and he was able to sort out the build problems the first person had run into, but he eventually also gave up frustrated with the limited results he saw. I encouraged him to update the wiki page with his findings.

This cycle went on for some time, but eventually enough knowledge had accumulated that someone (JiHo I think) was able to clean it all up into a proper procedure, and to start getting successful builds that more people could use. This enabled people to focus on the next layer up - fixing the Mac-specific bugs.

Now there were also complaints that while it ran on Mac, it looked out of place and was hard to install due to its dependence on libx11. People started clamoring for a "Native Mac Inkscape Port". And so the cycle began again...

In Inkscape I've seen this pattern repeated again and again. And not just in Inkscape. This seems to be a universal mechanism for how open source works. I'm sure there's an aphorism or law or something that describes it.

In any case, the lesson that can be taken from this is that if you want to get some feature or fix into an open source project, rather than offering money, have a go at it yourself. Even if it is well beyond your technical ability or time availability, your efforts may be enough to simulate someone else to eventually have a go at it too. This could be a detailed procedure you followed that got close to working but had a fatal problem. Or a messy patch you made that *should* work but doesn't. Or it might be a list of possible solutions you've ruled out and why.

If you think, "I want a way to just throw money at the problem and make it just work," then remind yourself, "Time is money" and throw time at the problem instead of cash. Spend $100 worth of your time banging your head on the issue, trying out ideas and hacking on code if possible, and posting the results even if they turned up negative. They may give someone enough of a clue to stand on your shoulders and reach the goal.

Posted in | Submitted by bryce on Mon, 2008-06-02 22:28.
bryce's blog

While I hate to be that guy that says "HEY GO READ THIS BOOK!" all I'm going to say is hey go read "Wikinomics" by Don Tapscott and Anthony Williams.

This book deals is about Web 2.0 in its purest form. He speaks on collaboration, and Open Source being the key to success.

It opens up your mind and makes you think in different ways. Bounties are interesting, but they should be a last resort. In that I mean if you have absolutely no other way of contributing, and just that fact that you don't know how to code doesn't count, then "bounties" might make sense. Even then I would still suggest just donating to the OSS, instead of the individual feature.

A Wiki is a great tool for collaboration, it doesn't need to be just about coding it can include features and look/feel of the project. The beauty of OSS is that you can contribute as much or as little as you want, and thats not limited to money.

Needless to say I cannot stress enough the need to read Wikinomics trust me...

Justin (not verified) | Fri, 2008-07-18 06:06

I think $100 just can't really be called a "bounty" -- that's such a heroic word. If you pledge like $500 things may be different.

robsta | Thu, 2008-06-05 09:28

I would love to pay in time and not in money. But I don't have any programming skills whatsoever. I'm an office manager by trade. I'm skilled in interactions between people and (basically) herding cats... and I'm good at it, if I can say so myself :)

How can I use this experience to help Inkscape or Ubuntu? I don't really know if I can.

daniel | Wed, 2008-06-04 19:57

> If 45 people donate $100, you'll get the 4.5k.

I love the *idea* of bounties and I totally agree that it seems like -in theory- accumulation of small bounties for a given task should work to attain a more attractive sum.

In fact there's a number of sites to help coordinate it. In Inkscape we even tried it out once ourselves for PDF support (which was very popular and which we thought we'd be able to easily get enough pledges). Yet it didn't work out for us. Maybe it did for another FOSS project, but I suspect they're going to be more the exception than the rule.

I think there's a few reasons bounty systems with multiple pledgers have trouble. First is the overhead - someone has to handle collecting and distributing the money. Second, will enough people be interested in that one particular feature to attain the funding amount? Third, by accumulating your money with others, you're losing the power to make the decision on if the person fulfilled your particular needs correctly (maybe what you need is different from the other 44 people)?

Not to say they _can't_ work - IIRC cosource and sourcexchange had some limited successes with a few projects - just that the organization/social challenges are pretty extreme, and beyond what most open source projects have the energy to do.

> What if I don't have time to spare? Or I'm computer, or programming inept?

One of my favorite questions. :-)

If you have time but not technical skill, there are all myriad ways to influence an open source project. In Inkscape, we make good use of these folks for writing up "blueprints" for new ideas (see http://blueprints.launchpad.net/inkscape) with mockups and such. Even if the developers end up doing the implementation differently, having the ideas fully fleshed out with pictures and examples really helps in envisioning how things could be, and helps spot potential problems, usability issues, and commonalities.

Other ways non-technical people make contributions in inkscape include writing docs/tutorials, translations, marketing, etc. etc. These contributions are just as important as code contributions - without them Inkscape wouldn't be nearly as successful as it's been.

These things all presuppose you have time. If you're "time poor" then regardless of your technical ability you're going to find it hard to contribute to/influence the project. But it can be done, and there are proven methods.

The best known way is to donate or lend hardware to the developer most likely to be able to solve it.

If you've got a surplus of money (in the $1000's), then you can convert your money into time by hiring someone more technical to work at your direction.

If you want to support a project in general, but don't have a specific goal, then a great way to stimulate the project is to help fund sending their developers to a key conference. For Inkscape this has been the Libre Graphics Meeting; other projects have similar conferences. $100 contributed can cover a couple night's lodging, or can cover a significant chunk of their flight costs.

bryce | Wed, 2008-06-04 19:21

If 45 people donate $100, you'll get the 4.5k.

What if I don't have time to spare? Or I'm computer, or programming inept?

Vadi | Mon, 2008-06-02 23:36

Knowledge, be it represented in software, or notes in a Wiki is incredibly valuable, but only because hundreds, thousands or billions of people can benefit from it. Your story reminds me of what I heard a Wesnoth Dev say at FOSDEM. "If you do the artwork, I'll write the code to support the feature." Payment-in-kind is central to GPL, and he'd struck upon a good deal.

Bounties seem neat -- if a feature is widely desired, one could pool resources among the many people that would benefit. If it's worth $100 dollars to a hundred people, that's potentially ten thousand. Of course there's economic theory standing in the way -- free rider problems etc. But none of the bounty sites I've seen seem to really hit the critical spots of bounties.

Writing notes in a wiki seems like a similarly good deal to GPL and "art for code"-- it's not just one guy getting the money, it's all readers getting that knowledge and insight. Plus, from a tax standpoint, it's much simpler if money isn't involved ;)

Perhaps Launchpad should offer a Wiki for projects, to reduce the barriers to this kind of use. Google Code offers a pretty clean interface. It doesn't even need be wiki syntax, since it focuses on a lot of encyclopedic markup that a project won't often need, but it should offer revision control, diffs and markup.

jldugger | Mon, 2008-06-02 23:20

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
More information about formatting options