Social backlog prioritisation

13th April 2009, 1438

Most developers will probably agree that the shower is a magical place. During a morning shower you're (usually) alone, refreshed after a good nights sleep and don't have the noise of a whole day's thoughs going on in your head. Strange ideas can come along during this part of the day and here is a brain dump of one an idea I recently had, using the Reddit engine to prioritise a Scrum backlog.

Catalyst

The trigger for my thought process was the following tweet from former colleage, and good friend Mathieu.

would like to see a BTS with reputation points assigned to people by topics/tags.

For the uninitiated BTS stands for Bug Tracking System.

Social ratings

Many "social" websites already have sophisticated systems where user's can vote on the relevance of other user's input and based upon these votes each user gains some kind of reputation that makes their input more or less valuable in future.

One such social site is Reddit where users can submit links that they feel are interesting, optionally categorised into a "sub-reddit" and other users can vote on whether they found the content of the link interesting. These votes and your reputation from previously contributions are then used to rank the link against all of the others.

Application to bugs

Many bug trackers today offer some kind of voting feature where users can vote for bugs that they want fixed. Unfortunately this is usually a bolted on feature as an afterthought and still doesn't address reputation or comments.

Reputation here is important if, for example, you have a C developer perhaps commenting on a bug related to a JavaScript API where the C developer might not understand what would be idiomatic to a JavaScript developer. The discussion could end up being long and distracting for the person who actually needs to come along and fix the bug, perhaps even leading to the bug being abandoned due noone wanting to jump into the debate.

This is where having a social bug system could help. I could easily see a system based upon the reddit engine that had each software component represented as a "sub-reddit" and users gain reputation per "sub-reddit" therefore someone with a high reputation in a parser module might not have such a high rating in a javascript module and vise versa.

What about my backlog?

Alert readers might notice that I've drifted a little from the title of this blog post. Developing the ideas from a bug tracker further, you could utilise such a social system for prioritising backlog items in an agile project. This could be an especially useful technique for systems with large amounts of users.

Rather than having an expert user or the project owner prioritise items you could expose the voting system for all users of the system and get a real view of what the users actually have use for rather than what the expert users think they need. Obviously to account for business motivations that your average end user may not have knowledge of, some levels of management should have boosted reputation from the beginning but ideally it shouldn't be so high that they can vito a userstory that a significant proportion of the user base has voted for.

Final thoughts

Agile methodologies promote close interaction with users. When developing a system for a large userbase it's unlikely you will find one or two users that can accurately represent the priorities of the whole. Using social, reputation based tools could be one solution to this and I hope that this braindump of one crazy idea can be inspiration for some interesting discussions.

This Blog represents my personal views and experiences which are not necessarily the same as those of my employer.