Recently, we've started to hear complaints that we don't put enough effort into free support in the Hibernate forums. This really kinda hurts, since everyone /used/ to comment that we gave such /great/ support, and since I still spend hours most days reading and responding to forum posts. I don't get paid for this, and I rarely get thanked for it either (even by the people I do get time to respond to). I've been doing this for almost three years now.
Now, these complaints, I suppose, are mostly from lazy people who can't be bothered solving their own problems, and come to us before actually reading the documentation and FAQ thoroughly, searching the forum for previous posts, and/or trying to isolate the problem and step through their code with a debugger. I highly doubt that any of the complainers have ever been on the other side of the fence: actually /giving/ support for free. Personally, I don't think we have much responsibility to help these people, but I guess it's sometimes hard to tell who is who...
I would like to believe that the nice people who actually /deserve/ free support do still get it. But I freely admit that support is not up to the standard it was at two years ago. Why?
Well, the problem here is that free support is fundamentally unscalable, and a lot of people don't seem to realize this. So let me give you some idea of the actual numbers. When Hibernate had a couple of hundred users, and only a few posts per day in the forum, it was possible to give extended responses to each question. However, the Hibernate forum got an average of 120 posts per day over the past year, including weekends (that means over 200 on many days). And that doesn't even include JIRA issues. I estimate (conservatively) that it takes about 15 minutes on average to understand and respond to any post. That means 210 hours per week of work responding to forum posts. There are maybe 5 or 6 members of the team who are active on the forums. Do the division yourself (35-42 hours per person per week, something like that). That means, for every one of us, answering questions is a /full time job/ that we don't get paid for. We would have to spend as much time in the forum as /you spend at work/. And then, somehow, we have to do our actual jobs. Now, that's ok for me, I'm used to working 12 - 16 hour days. But I'm certainly not going to expect that of the guys who help out /purely as volunteers/!
So, free support
was a casualty of the success of the project. Is that a reason to not use Hibernate? I guess it's a reason to not use any successful open source project. But we want our project to scale even further! So, we've been trying to think outside the box.
OK, I confess: I am an opensource zealot. I want OSS to gradually replace commercial software in most fields, starting with middleware. (I have both moral and practical reasons for wanting this.) And I'm serious about seeing how that can actually become /real/. Now, one of the selling features of OSS is the rapid, free support that supposedly exists in free software communities. I've often been sceptical of this particular item, and my own personal experience is that it's been oversold. Certainly, free support is a wonderful thing, but making it work is Hard. We certainly /want/ to make it work!
First, we realized that a book was needed. We're really putting a lot of hope into this taking some of the pressure off. It was a really draining effort that took a lot of energy away from other areas of the Hibernate project, but it's done now and available at Manning's website. Having a userbase that has read the book, knows the basics, and knows our private language will make giving free support just so much easier!
Second, we've been (successfully, so far) building a business around Hibernate. Our dev support customers can be guaranteed responses to their questions. So, if you can't be bothered to RTFM, that's fine - just buy support, and we'll be at your service, for the most basic of questions, and the most arcane.
But now comes the interesting thing: the more paying customers we have, the more people we can get working full time on Hibernate, and so the more forum posts we can handle. Conversely, the better we handle free support in the forums, the bigger our user base grows, and the more paying customers we see. This demonstrates how free support and commercial support are /complementary/ - it's not zero sum, by any means.
And I think this is going to be common to any open source project that really wants to win
against it's commercial competitors: it simply must have some commercial aspect to it, to level the playing field. We're continuing to win
only because we have JBoss behind us now. A year ago, I had to take annual leave and beg or pay my own way if I wanted to speak at conferences. Meanwhile, our users were on their own if they had a problem too complex to be addressed online. Now, we can actually get out there, in the field, in front of people!
Finally, we realized that the only way that free support can scale is if the Hibernate community really starts to pitch in and help answer questions. I guess we got off on the wrong foot here, when I used to answer all questions personally. Christian told me to stop answering as many questions, to get people used to the idea of helping each other out.
Our honeymoon as a cult
project is long over. We've moved into the space where other very successful open source projects like Struts or JBoss found themselves long ago: our user base no longer feels a personal connection to the developers of the project, and is much less likely to be forgiving of our wrinkles. We now start to get many developers who use Hibernate not by their own choice, but because someone else made the choice for them. We also start to see developers forced to use Hibernate where ORM is /not/ appropriate. All these things mean we start to get more negative feedback than before. We get lots of people who expect Hibernate to be perfect - especially less experienced developers who have no real appreciation of just how hard Java object/relational persistence was before solutions like Hibernate came along.
That's all very distressing for those of us who are putting our life into the project, but we need to take it for what it is: a measure of our success. We'll keep innovating regardless...