Sunday 3 February 2013

Improved Force.com Discussion Boards

This week saw a welcome revamp of the Force.com discussion boards.  There's been quite a bit of debate recently about the relative merits of the discussion boards versus the Salesforce Stack Exchange beta site.  Personally, I think there's room for both as they serve different purposes.  I also think that the more channels for the community to work together the better - for one to succeed there's no reason that others have to fail.  I realise that this is an area of religious wars for some people, so bear in mind that this post represents my opinions on this - if you disagree, there's nothing stopping you writing up your own post!

My thoughts of some of the strengths and weaknesses of these sites are as follows:

  • Gamification.  
    This is an area where Stack Exchange is very strong.  There's a plethora of badges that can be earned, each user has a reputation score based on up or down votes for questions and answers, answers marked as accepted etc.  Another interesting ranking is a user's acceptance rate.  This indicates how often a user is accepting answers, and a low score indicates they are asking for a lot of help but not marking answers solved for the benefits of others.  The Force.com boards, by contrast, have previously ranked users by the number of posts that they have made - e.g. 150 for Trusted Contributor and topping out at 500 for Super Contributor.  Where this is lacking is rating the quality of posts - I've seen at least one instance in the past where a user has earned Trusted Contributor by making 150 'please write my test case' style posts.  This is an area where the revamp has improved matters through the introduction of kudos - you can read about how this works in detail at the developer relations blog post.  What matters though, is the leader board is now focused on kudos rather than tags, which should lead to a lot less meaningless tags on messages.
     
  • Participation.
    This is an area where the Force.com boards win hands down - the number of users and volume of posts far exceeds the Stack Exchange site.  Of course boards have the advantage that they've been around longer, but I feel there is more to it than this, as I'll cover in my next point.  The quality of the posts on the boards is hugely variable though, whereas the up/down voting system on Stack Exchange tends to ensure that the quality of posts is high - users can also vote for questions to be closed if they feel they are asking for help with homework, could be answered by a simple search etc.
     
  • Support for Newbies.
    This is likely to be my most contentious point.  I don't think that Stack Exchange is a good place to go for help if you are starting out with Force.com.  Its good for advanced users who have hit a roadblock, researched the problem and been unable to find a solution. Its also reasonably good for intermediates who know there is a specific problem with their code but can't figure out exactly where its going wrong.  Where it really falls down is for those who don't know where to start.  Post up a question asking for basic, generic help and you'll be down voted and closed very quickly. There's also a touch of mob mentality or swarming about this - questions can be quickly hammered down, but the voting up doesn't seem to happen with the same pace.  The boards are much more tolerant of beginner questions - sometimes there are pages of responses attempting to get to the bottom of what the problem actually is before even attempting to solve it.  In case you think I'm being too hard on Stack Exchange, the format doesn't really support this kind of question discovery, so I can understand why some questions are treated in this way.  I often describe the boards as the place to ask bad questions, or a home for those who don't know what they don't know.
     
  • Existing answers.
    This is another area where Stack Exchange cannot hope to compete, due to the amount of time that the boards have been around.  You'll probably have to work a little harder to find answers to esoteric questions on the boards, due to the variable quality of the posts, but there are tens of thousands of solutions in there.  In fact, I'd lay money that before posting on Stack Exchange most, if not all, users will have searched the discussion boards. And to be fair and equitable, if they've done that research before posting on Stack Exchange their question will be upvoted and answered.

Reading the above, you might think that I'm not a fan of Stack Exchange - in fact, nothing could be further from the truth, I'm on it most days and I'm in the top 5 for reputation.  There's a place for both sites and, while there is some overlap, they generally serve different purposes.  That said, I do prefer the discussion boards - partly as I have four years history with them, but mainly because I'm interested in getting people started on the platform and improving beginners. 

But enough about how the boards fit into the wider landscape, the important point is that they are getting some love, having been left to fend for themselves for a while  Its great that the board owners are doing this, but there are plenty of things that we participants can do to improve things.  To that end, here's some of my thoughts on board etiquette:

  • If you post a question and you get a solution, mark it.  
    It can be disheartening to put hours of effort into drilling down to find the actual problem and coming up with a solution, only to find the original poster then moves on to their next question without a backward glance.  It also means that another user researching a similar problem doesn't know that there's a solution somewhere in the thread.

  • Don't beg for marks in your signature.
    Having said that you should always mark solutions, I can see why some people don't.  If I posted a question and every response, even a 'tell me more', demanded that it be marked as the solution, I'd start to tune out the whole solution side of it.

  • Don't just post up requirements.
    Its fair enough to post up a question asking how to get started with a particular piece of functionality (e.g. how can I submit a form via javascript), but if you are copying and pasting your requirements/homework, (e.g. 'I have to build a system that manages projects') , your post is likely to remain alone with zero responses. My response to these is often 'good luck' or 'thanks for keeping us in the loop'!

  • Have a go first.
    If you have any idea where to start, have a stab.  Nobody gets flamed for posting bad or incomplete code.  It shows that you are trying to help yourself and, certainly in my case, is likely to make people want to help you.

  • Don't post pages of code.
    If you do this, really what you are saying is 'figure out my code and tell me what is wrong with it', which is a big ask.  Try to narrow down where you think the problem is and post discrete section.

  • Post some code!
    You have to give us a chance!  If you post up that you are getting a null pointer exception with no context and no code, its highly unlikely you'll get a solution.  If an error points to a particular line of code, there's no excuse for not posting it.

  • Don't contact helpful people directly
    If someone is knowledgeable and solves a few problems for you, don't ask for direct contact details.  Essentially what you are saying there is you'd like free, private support from them when it suits you.  Most of us on the boards have day jobs where we charge people for our skills and experience, so you have the option to pay for an engagement if you need a personal service.  Receiving message after message asking for "a way to get hold of you so we don't have to wait" can quickly become irritating,

  • Don't send questions in private messages.
    Think about what you are doing here - you've taken advantage of the community to find someone knowledgeable, but then you don't want the discussion to be public to help others.  I don't even respond to these messages any more I'm afraid, as I get so many of them.
     
  • Don't use it as your blog.
    Every now and then we'll get some blog posts under the guise of discussion posts.  I can see why people do this, as it gives a blog a huge, unearned audience.  The home for these is Developerforce, which accepts blog posts and code recipes from the community. 

  • Be polite.
    If you think a question or response is bad, there's no reason to be rude.  This is, thankfully, very rare on the boards.  Its always worth restating though, as the negative effects can be significant - I've been involved with some communities  where its felt like there was active effort to discourage anyone apart from experts from posting, and to do this in a particularly unpleasant manner.  If you think the question is bad, try to find out what the user is trying to ask.  If you think an answer contains bad advice, frame your criticism with the correct solution - remember, you might be wrong and they might be right!

  • Get (more) involved.
    Most of the above are about what not to do.  If none of those apply, keep doing what you are doing, but do more of it.  If you are relatively new to the platform but starting to get the hang of it, start posting answers - nobody will jump on you if you make a mistake.

We have a great community, so lets do all we can to grow and improve it for everyone.