My name is Ismael Chang Ghalimi. I build the STOIC platform. I am a stoic, and this blog is my agora.

Crowdsourcing software development

On the heels of a successful crowdsourcing of our logo design, we’re asking ourselves how we can leverage this way of working for other aspects of our business. Being a software company, the idea of crowdsourcing the development of some pieces of code immediately comes to mind. Unfortunately, we can’t find anything close to 99designs for software.

Of course, we’re aware of sites like TopCoder, but they seem to have been designed a decade ago (actually, they were), and they have none of the user friendliness that we love about 99designs. So, if you know a good place to do for code what 99designs does for graphics design, let us know! And if you don’t, here is an idea for an aspiring entrepreneur who might want to build one.

If I were to build something like “99codes” (the 99designs of code), I’d implement a workflow very similar to the one implemented by 99designs. The only major difference is that all contests would be blind (coders would not see each other’s code until the end). Also, I would use a trick similar to the one pulled by GitHub, which is that open source contests would be free, in the sense that 99codes would not take any transaction fee for contests which resulting code would be released under an open source license.

The open source component, albeit optional, would be the site’s killer feature. For open source contests, the code of all participants would be released under an open source license at the end of the contest, thereby bringing massive amounts of code to the open source community. And for contests that would not be open source, coders who would not win the contest (aka losers) would still have the option of getting their code released under an open source license in the end. If they were to do so, they would gain more points on some open source scale, which would be one of a handful of gamification tools that would be used to encourage participation. This in turn would encourage contest holders to make their contests open source from the get go.

Of course, all the code would be hosted on GitHub (what else?), both during and after the contest. During the contest, each participant would have their own repository, which would be shared with the contest holder. Following the contest’s completion, all repositories would be open to the general public (at the exception of the winning one for a closed source contest) . 

What kind of projects would such a site be good for? Typically, small projects that can be handled by one or two developers over the course of a few days. For example, a small server-side library or a little UI widget seem like good candidates. And here is one of the first projects we would fund on such a site: a flowchart generator.

The flowchart generator we need would take an oriented graph definition as input (JSON format) and turn it into a nice flowchart. It should be implemented in JavaScript and should be able to run within most web browsers. It should use a library such as Arbor for the automatic placement of nodes and connectors, and use either Canvas or D3 for the graphics, while supporting CSS for the styling of shapes and labels.

Why would we use such a site for building this library? Well, we could build it internally, and we estimate that it would take a couple of weeks for one of our developers. Unfortunately, this means that our developer would not be able to work on anything else during these two weeks, and his plate is already full. So, when we look at the list of things that are on his task list, we’d like to outsource the ones that could be developed by third-parties. This particular project is a great candidate for that.

Of course, we could outsource this work to some contracting firm, but for doing so, we’d have to plan for it in advance, pay for their overhead, and deal with the fact that they might not have the required talent in house (things like D3 have a pretty steep learning curve). Therefore, tapping into a large community of developers would be a more effective way to get what we need, quickly and cost effectively.

So, if you want to build such a site, please let me know, for I’ll be your first customer. And if that sounds like too much but you feel that you could build our flowchart generator instead, we’re willing to pay $2,500 for it, and we’re happy to have it released under an open source license after you’re done (MIT please).

Get on your keyboards!

UPDATE: My friend Jared Goralnick suggested that we give Elance a try. Let’s do it!