eQuality Time paid its first code bounty recently.
Code bounties are a great tool, particularly for organisations our size, but most readers of the blog might be unfamiliar with the term.
When building AzuleJoe I made a lot of use of a python library called python-pptx. It’s an open source library – someone people wrote a lot of functions that were useful to people reading (and writing) PowerPoint files and made it available so that everyone could use it for free.
I’d been using it a lot and unfortunately reached a point where I needed some functionality that it didn’t offer. This was a problem.
There was an obvious solution – the library was open-source so I could just download the source code, make the changes I need, and then share it with the world. I’d get what I needed, and other people might be able to make use of it as well if they hit that problem.
However – I’m a blunt-force-trama coder at the best of times, and any changes I made to the repository would be a hack that people were unlikely to use. Plus – I would have to learn a lot about how the code worked before I could make the change. It was looking like at least two weeks work.
However, there was a better solution.
I posted this message on the project’s github site. It offered $400 to anyone who was willing to extend the library to do what we needed. The original author got in touch relatively quickly, we had a correspondence and he took the time out to make the changes we wanted.
This is the wonderful thing about open source, because everybody wins.
- We get the code we need, at much less of a cost than it would have been to write it ourselves.
- Anybody after us gets the same code for free – so any of the hundreds of other users of the repository just got a few more options.
- The people running the repo get to have their API strengthened, used more, and generally promoted
- The people writing the code gets paid to do something that otherwise would have stayed at the bottom of their ‘someday-maybe’ list.
I really liked the process, it was a great way to get something done meaningfully and economically. I think that it’s a wonderful illustration of how open and transparent making is a great way of moving things forward.