Re: Bounty for Bugs in Open Source Projects?

Tom Lord <[email protected]> Mon, 18 Apr 2005 15:09:41 -0700 (PDT)
Newsgroups gmane.comp.misc.free-software-business
Message-ID <[email protected]>
   From: Nik Cubrilovic <[email protected]>

   I am interested to know if there is currently an initiative for commercial
   organisations to offer a bounty (cash incentive) for bugs or features to
   be implemented in Open Source projects. The company I work for would be
   interested in paying developers on Open Source projects to implement
   features, and to fix certain bugs that we require in some software, but
   the only way to do this at the moment seems to be to contact the project
   leader, or to post to the corresponding project mailing list with the
   details.


In my experience, those alternatives are, in fact, a cheap and often
effective way to get things done.  I take considerable pride in the
fact that *my* projects have generated revenue for others who were 
hired to work on my projects.

I suggest *not* directly posting a bounty ("Hey everybody, $N for
feature X") but instead presenting your problem to the community and
seeing who (a) gets what you're describing; (b) is already established
well enough to present a credible offer to fix it.  After that,
negotiate privately.  Post -- certainly -- but don't post a public
offer (you'd just attract hooligans).   At this stage in history,
you aren't asking bidders to compete on price, mostly -- you're asking
them to compete on "ability to actually get the job done".

(That said, the price range for spot-market hacks seems to me to be 
between $500 and $10,000 per hack --- with the average somewhere in
the low-4-digit prices.)

There are two big problems with this approach, both of which are
surmountable (but I won't declare (only suggest) how since I'm not
sure my answers are best):


  (a) You want your fix in the mainline?  Show some consideration
      to the upstream pipeline.  If you hire someone to write a 
      fix and expect to appear in mainline --- don't *presume* 
      that the maintainer is happy to process every little improvement
      that comes along.  Each improvement costs the maintainer 
      effort -- sometimes considerable effort.   The worst (and not
      uncommon, in my experience) situation is when the person you've
      hired needs in-advance help from the maintainer to do the work
      well.   It's totally ordinary that such help is needed -- it 
      does *not* reflect poorly on the guy you hired -- but it is
      also a *material imposition* on the maintainer to ask the maintainer
      to give that help on *your* schedule.   

      Suggestion: definately buy labor on the spot market but, don't
      get a reputation as a jerk: be sure to tip upstream as well.

      Flip side of that suggestion to free software maintainers: if
      you find yourself asked to participate in one of these
      commercial circuits and the goal of the circuit makes sense ---
      WORK WITH THESE FOLKS AND DON'T BE A JERK ABOUT IT.  Insisting
      on or urging some compensation is The Right Thing
      for a maintainer to do in this circumstance --- but aside from that,
      a lot of good tasks get accomplished by this route.





   > So is there some central way to do this? If there is not, I would be
   > interested in setting up a site to facilitate this and kick it off by
   > having the company I work for pay developers for bug fixes and features.


  (b) The *biggest* problem most of these little spot market contracts
      seem to cause is the delivery problem.   The actual hacking is 
      cheap, relative to the cost of *presenting* the hacking in a 
      form that it is cost effective for your customer to consume.

      The arch project is working very hard on that problem.  Although
      it isn't ready for formal release yet, I have infrastructure that
      lets me very cheaply set up an entire web site for each customer.
      The web site includes a blog-style diary of the progress of the work,
      a bug database just for this work, and any ancillary documentation
      that arises during the work.   This seems to smooth delivery quite
      a bit and it fits in well with the emerging world in which all
      free software exists, principally, within a distributed revision
      control universe.

   > What would the implications be for such a scheme?

Among other things, they would be "huge" --- bigger than big.  Bigger
than John Lennon, relatively speaking.

The place where you betray your naivete' is where you say "I would be
interested in setting up a _site_"....

Forgive me but, it would be idiotic to centralize the already extremely
efficient spot market by trying to force it through a central "site".

You have the right idea about the general characteristics of the
economic circuit that *will* (im(current)o) win --  you have a
distorted-by-greed idea of how to implement it (and you are behind
the times since the market you seek to create already exists and is
thriving).

(I also speak from the experience of having proposed to various potential
funders more or less exactly what you suggest.   I once thought as you did.
But then I saw a bunch of hackers who volunteered for *my* projects
win without any such heavyweight infrastructure for trade.....)

-t