Day 10 Report
This is a midway report of the Month of RTL-SDR project. I'll be covering how the project was run, where major sources of contributions have come from, and the success of the Featuritis experiment. The progress and status tracker is at http://igg.kmkeen.com/.
I do a fair bit of FOSS volunteer work as my primary hobby. Mostly Arch Linux and RTL-SDR. Arch is pretty easy to do. Largely updating packages, triaging bugs, poking upstream, keeping people from shooting their foot off. Not that much actual programming however. Rtl-sdr is a lot of tricky programming. Long story short, I could fit Arch into the gaps between contract work. Rtl-sdr I could not. I really need to get into a deeper flow to make progress, and this was not happening. I had about six months backlog of feature requests and bug reports to deal with.
Let's do a sprint!
The obvious solution was to take on rtl-sdr as I would a dedicated contract. Get people to pay for a month up front and go do the deep hacking. My inspiration were the two Mesa fund-raisers, which I'll summarize here.
Timothy Arceri's first Mesa project:
- $2500 for two weeks.
- "This is my first experience working on the Mesa codebase"
- Do a single OpenGL 4.3 extension and document the process
- Perks: private mailing list
- Raised $3205
Timothy Arceri's second Mesa project:
- $1500 for 1 week
- Do another OpenGL 4.3 extension
- Perks: none?
- Stretch: $3000 for two weeks
- Raised $3026
Overall I was pretty surprised that they worked. I drew two conclusions - if you have demonstrated ability then perks are not needed and $3000 is a nice round number to shoot for. I went with IGG because it worked with FOSS campaigns in the past and because they were more friendly to international users.
RTL-SDR is a bit more fractured than most online communities. Which is fine, it is also a lot more diverse.
And those are just the places dedicated to the project. The vast majority of rtl-sdr conversations happen in communities who merely use radio and appreciate the quality of the $10 hardware.
Most importantly, and the thing that convinced me this fund-raiser would be possible: I would get a feature request from at least one new person every month to my personal email. It was an extremely diverse group. Coast guard, astronomers, an artist, defense contractors and even a small space program. (Turns out if you make a flexible and portable bit of software, you won't be able to imagine what people will do with it.) Many of them were willing to pay for a few hours of discount contract work as well. More on these fine people later.
The plan, the perks
My goal was to work on rtl-sdr for $100 per day. Much less than the Mesa fund-raisers. If it was anything like the time I spent writing rtl_fm, these days would be at least 10 hours long too. Not exactly a great rate, but acceptable for doing work with this degree of freedom (upper and lower case F). IGG takes a cut and I plan to give a chunk back to the parent project, Osmocom, too.
But I really wanted to offer something to people. Past FOSS-related fund-raisers tend to center on two main angles: secret information and public recognition. Secret info would mean any sort of private mailing list or early-access. Personally I feels this goes a little against the FOSS spirit. Similarly, vanity might not be the most constructive feeling to appeal to either. You've got to take the values of the community into consideration.
Instead the primary perk would be the privilege of voting on features, with the promise that these votes will guide my work. For a higher amount, a single feature could be prioritized beyond the voting process. So I took one day and re-purposed an IRC-bot into a vote tracking bot. The bot was smart enough to edit and process a directed cyclic graph of features.
Featuritis was born, and a day after that prototype was working I fleshed out the feature tree and filed the project with IndieGoGo.
Pricing structure was a little weird - the $50 perk was much less popular than I would have guessed. From looking at other campaigns pricing appeared to be unit-elastic. In other words, no matter what you charged you'd bring in the same total donations. But this group seems more elastic than estimated (eg, fairly price sensitive) and a $25 Voter perk did disproportionally well. There appears to be no problem with offering the same perk at different price levels.
Promotions and Contributions
The single largest sources were from the primary networks on the first few days. I had announced the fund-raiser on one subreddit and one email list. Their immediate support was around $600. The second largest source was from cold-mailing everyone who had asked me about feature requests in the past year. It took around six hours to write everyone personal emails asking them about their progress and describing and planned features that they might find interesting. I did not ask any of them for contributions, only if they had had features to add. This round of emails collected $400 in one day. The third was a little mention on Hackaday. That netted just under $400. Publishing documentation for rtl_power was a big draw, bringing in another few hundred from Reddit.
I also got two very intriguing contracting offers the first week. That was unexpectedly cool.
Less successful promotions
Selling advert space at the top of the status page was a bust, at least at that price. It is getting between 60-200 uniques per day at the moment, but these viewers are fairly well targeted.
Emailing individual bloggers who had accomplished projects using my tools. The form of these emails were very similar to the people who had already discussed new features with me. One additional feature was added to the list but no contributions came out of this and no blog posts or tweets about the fund-raiser either. (The aggregator blogs had already picked up the story from the subreddit, and they did decently.)
IndieGoGo was also not much help. I had heard that to even get listed on their pages you needed to clear a 20%-funded hurdle. Well, there were lots of projects at 5% that were visible when mine was at 35%. No big loss, as software defined radio is pretty niche.
Within the first 24 hours I was blasted with six different companies who offered to help market the campaign. Being so niche, I didn't feel this was necessary. This is what a typical advert looked like:
Indiegogo uses an algorithm called the ¨GoGo Factor¨ to rank campaigns, it takes into account the number of contributions, shares, comments, views, campaign activity, etc. We offer services to boost those factors, starting at only $5! We will contribute money to your campaign, leave positive comment/s and share on Facebook, Twitter and Google+. If you are interested visit the link below to order my service.
It is actually not hard to do great in the rankings. A literal Fake Campaign has no social media hits, no funding, no updates and yet is in the top 150 "trending" technology campaigns.
Considering I'm still not on the tech index at all, maybe I should have palmed someone a fiver.
The voting system uses IRC as a backend for a couple of reasons. First, the community. It is hard to beat community interaction of hanging around in a chat room. Everything else feels so sterile by comparison. Second, identity and passwords is something Freenode deals with. The bot could be that much simpler.
Of the people who were given the ability to vote, half of them registered with the bot. Of those, 75% actually submitted votes. Which is good enough for me, I had a clear ordering of what tasks to approach first.
Aka, right now. Prior to this, I was cleaning up loose ends and promoting the campaign. But now there is +$1900 in contributions and 19 days left. I can begin working continuously at $100/day and start earning the money that was graciously given.
I hope that the success of this project will encourage other FOSS developers to try something similar. I've got a number of ideas about how FOSS programming could be made more sustainable, and this was the lowest-risk and least radical of the bunch. I've outlined the size of the rtl-sdr community to provide a point of reference to any devs who want to attempt this model.
The Featuritis bot was designed with other people in mind. It is a little over-built for my use case of a single dev who won't go creating loops in the feature tree. Runs on python (2 or 3) and needs only a static webhost.
Time to start writing some code.