Riak Adoption - We Have Some Work To Do

April 24, 2012

Early last week I read a blog post about the software adoption funnel from Donnie Berkholz. (Donnie is one of the stellar analysts over at RedMonk who, in my opinion, are ahead of most firms when it comes to developer-focused analysis; ignore them at your peril.) Shortly thereafter I sent a message to the more than 1000 developers on the Riak Mailing list asking the following:

In order to take Riak deployments from the thousands to the hundreds of thousands, what can we be doing better to drive adoption?

The response was exceptional. We’ve received just under 60 responses which I’ve summarized below, followed by how we plan to improve Riak in these areas. (Ordering is not determined by frequency of mentions (+1s), priority or any other metric; just a list of everything our community feels we could be doing better for new and existing users.) First, the list of suggestions:

Documentation and Related Resources

Interactive Tools

Other

Code

We Have A Lot To Do

Basho isn’t shy about the work we must do to make Riak more inviting. Our approach to usability has always been, “First, make sure the code works as expected. When this is true, make the rest pretty.” We’re playing some catch-up, but I’m much happier knowing we need to fix things like documentation as opposed to “make the storage engine not lose data and figure out concurrency.”

Documentation

As I expected, most of the feedback was about documentation. One of the responses I received was (paraphrasing) “Riak is dead simple to get up and running, but after that I’m not sure how to do what I want to do with it.” In other words, show me how to use it. The Riak Wiki is extensive but arguable falls short when it comes to descriptive resources that address things like use cases, data modeling, and schemas. Additionally, a lot of client libraries have minimal docs, and what does exist is sparse and poorly organized. Some details on what you can expect from us on documentation:

Some other things worth sharing:

In short, documentation is the first major adoption roadblock we’re planning to eliminate. Keep the feedback coming (bonus points for pull requests), but expect a lot of improvements fast.

Interactive Tools

The suggestions about “Interactive Tools” were all excellent, and there is some work happening at the moment in this area.

Other

There is some low-hanging fruit in this category that we’ll soon be knocking off:

Code

On the thread I asked that peoples’ responses be limited to non-code suggestions (as we can move things like docs a lot faster). I also didn’t want it to devolve into a discussion about how eventual consistency is hard. That said, I knew feature suggestions were inevitable, and they are still extremely valuable. Some relevant developments as they relate to peoples’ suggestions about code:

Things like delete a bucket and pagination all make sense, but they’ll only be tackled as time and architecture permits. As for releasing the Multi Data Center functionality, this won’t be happening any time soon. We still need to pay the bills, and Basho is a software company (as opposed to one that just sells support and services).

What’s Next?

Thanks to everyone from the community who gave us feedback. It was invaluable. Keep it coming, and don’t be scared to call us out when and where you think we are falling short. My email – mark@basho.com – is open 24/7. As I noted above, expect to see most of the initial movement around documentation changes and additions.

We’re also taking contributions in all of these areas. Adding to the Riak Wiki is a easy as sending a pull request. All of our code is no different. I promise that if you write documentation, I’ll happily review pull requests until my eyes bleed. And if you’re wondering where your time can best be spent, don’t hesitate to get in touch.

Thanks for reading, and thanks for being a part of Riak.

Mark