Shameless plug here...

Many times I have found myself needing to know about a technology with which I’ve had little experience. If I have time to spend learning something new, and if I think I’ll use the technology in the future, then I will enjoy learning about it in depth, but often times, working against a deadline, I have no time to learn, or perhaps I do not expect to ever use that technology again.

An example of the latter would be my limited experience with the Perl programming language. I recall when I was working for Danforth Diamond in 2005. I had to modify some of the old Perl scripts they had on their server. I spent a week working with Perl, and it was the only week that I have ever worked with Perl. I would have loved to have been able to quickly hire my own private consultant for all of maybe 20 minutes, to ask some basic questions about the language. As it was, I wasted days tracking down information via Google, and reading tutorials that did not quite answer the exact question that I had in my head.

My brain fought against me – it knew that I was not planning to work with Perl again, so it was resistant to learning it in the first place. I was stuck in a situation where I had to read through multiple articles about strings and escaping and how to handle variables inside of strings – many wasted hours. My life would have been much easier if I could have turned to someone who had a lot of experience with Perl, and handed them $20 for maybe 15 or 20 minutes of their time, to be allowed to fire away with questions like, “How do I put a variable in a heredoc string?” and gotten instant answers, answers that were tailored to me, answers that gave me exactly the information that I wanted, and nothing superfluous.

Hoping to get fast answers to my questions, I started posting on various forums. I have sometimes gotten fantastic assistance from various programmers on these forums. One of the greatest things about the Internet is how much people are generally willing to help one another for free. If you are trying to learn a programming language such as Java, it is surprising how helpful people will be on sites such as Java Ranch. And if you are trying to get answers to your questions about WordPress, it is wonderful how much good information you can get over at the WordPress forums.

And yet, over the years, I’ve had a lot of bad experiences with free forums. I find it frustrating when I post a question that is altogether unique, but someone mistakes it for a common question, and so the only reply I get is “RTFM!!!!!” When people offer you free help, sometimes they are wonderful, but sometimes they attack you for aspects of your project that are beyond your control. For instance, I was once asked to fix a Javascript slideshow that depended on jQuery for funtionality, and when I posted some of the code to a forum, the only response I got was “Do not use jQuery!” But it was the lead programmer on that project who had decided to use jQuery, and I didn’t have the power to change that. I only had the power to fix the problem that I had been assigned.

We all seem a little stupid when we are learning a new skill. It doesn’t matter how smart we are. We ask what the experts think of as painfully dumb questions. Asking those dumb questions is essential to our learning process, but it is understandable that answering such questions may seem tiring to those who know a great deal about a given subject.

Hoping to get some high quality answers about Perl, I signed up for Experts Exchange. At the time it cost $9.99 a month (as I said, this was back in 2005). Nowadays it costs $12 a month. The fact that it costs money seems to introduce a level of seriousness to the conversations that is often absent on the free forums. And yet, Experts Exchange suffers a fatal flaw – none of the money goes to the people who answer the questions! The corporation, Experts Exchange, keeps all the money to itself! This limits the usefulness of the site. What I needed was an easy way to hire an expert for all of maybe 20 minutes, and give them some money, so they would take my dumb questions seriously.

For that reason, we decided to make a site where programmers could pay money to get fast, high quality help with their questions.

I have found that even small amounts of money radically changes the social dynamic. Even $1 changes the social dynamic. As long as the advice is free, those giving the advice feel free to show scorn for what they feel are stupid questions. And yet, as soon as even a tiny amount of money is offered, the dynamic changes around: the answers are respectful.

But then, after we launched our first site, we were confronted with another problem: as soon as the askers are allowed to offer money, they are the ones who become scornful. The askers can be rude or ignore community norms.

We asked ourselves, how could we balance the power of the askers and the answerers, to achieve a perfect balance?

Our first thought was, "What if we allow the askers and the answerers to vote on the money, and we average out everyone's vote?" We could impose the rule that answerers were not allowed to vote money to themselves. But wait, we realized, that doesn't work either: the answerers could just simply create a dozen dummy accounts, and use 11 fake accounts to vote money to their 1 real account.

So how could this be achieved?

After some careful thought, we decided the way to do this was to restrict voting to those experts who had earned some money answering lots of questions. If it took effort to gain the right to vote, then people could not easily establish fake accounts and vote money to themselves.

We launched our first site, which is narrowly focused on just WordPress:

http://www.wpquestions.com/

The site gets moderate action, maybe $500 or $600 in questions a week. Over the last 2 years it has seen over $50,000 go through it.

Next month we will start offering this software as a hosted service, so anyone can open up their own site.