Jane McGoningal gave an interesting TED talk about how Online Gaming can Make a Better World [1]. One of her points is that there is no unemployment in games such as World of Warcraft, there is always a “world saving” mission available to you which is just within reach of your skill level – and no-one is assigned a mission that they can’t possibly do. It seems to me that the free software development community has a similar issue, there are always “missions” available at all skill levels. Our challenge is to find ways to encourage people to accept the missions and to provide them appropriate levels of support to encourage them on their path to an “epic win“. Choosing a suitable mission is a particularly difficult problem as you often don’t know how difficult a task will be until you are more than half complete.
Jane makes points about humans being happier when working hard and a desire for “epic meaning“. She says that it’s a problem that gamers believe that they can change a virtual world but not the “real world“. If you change the “virtual world” of software development then that changes the “real-world“.
Jane cites Herodotus as reporting a kingdom that was gripped in a famine for 18 years where the king instituted a policy of playing games and eating on alternate days with the aim being that the games would distract people from their hunger. I’m sure that I’m not the only person who’s gone without food or water for a day because of being too busy coding…
She has a lot of other interesting points and I recommend that you read the Institute For The Future [2] web site for more background information.
Now my question is, how can we encourage programmers to start doing Free Software and Open Source development and achieving some Epic Wins? I don’t claim to have good answers and I would appreciate any suggestions. If you blog about this please leave a comment on this post to direct readers to your blog.
Location based social networking applications such as Foursquare and Gowalla are good examples of turning tedious tasks into a game by letting users earn points and badges for their accomplishments. Closer to software we have StackOverflow, in which badges reward users who contribute and let them brag with status recognition. In all those systems, the rewards system is designed so that there are reachable rewards for all skill levels – just like balancing playability in a game.
Bragging rights have always been one of the drivers for contribution – let’s not forget about our egos. So one could imagine porting those intangible rewards systems to free software development. For example, features or bug voting is a common feature which could be used to let developers earn points for closing tickets – and various badges could be imagined. But there is a fine line to be walked : just like financial rewards, honors must not interfere too much with intrinsic motivation. It has been shown over and over again that when extrinsic motivation starts replacing intrinsic motivation, quality of the contributions start to suffer.
Good points. There is research to show that paying people can decrease their motivation to perform certain tasks.
With MMPRPGs I believe that a significant part of the reward is being able to complete “better” missions. So if you complete a mission well and increase a level while getting a significant new weapon then it would allow you to take on a more difficult mission against stronger opponents.
If you complete a difficult coding mission that involves using Valgrind to debug thread race conditions then you increase a level in your debugging skill and that allows you to debug more complex programs.
I’m not sure that formal badges are required. To a certain extent people just know what others are doing. But for people who aren’t well known I guess things like Advogato help – although they are somewhat inaccurate.
Gaming the system is always a threat – even in “serious” systems, for example where remuneration linked to number of tickets closed will lead to gamey behaviour that goes against the goals of the system. Management by dashboard is equally bad if the negotiated key performance indicators are badly chosen. Making the motivation intrinsic is of course the best solution but bar that, aligning the game goals to the actual goals is the key. In all existing systems, it seems it relies on centralized goal-setting. Maybe community moderation and meta-moderation could be involved in goal setting – actually that is what is provided by feature voting in bug tracking systems and question voting in StackOverflow.
StackOverflow would be great for identifying who actually knows what in the corporate environment – looking at scores for each tag would play a role similar to leveling.
I sound like a StackOverflow fanboy today… So let’s mention that there is a Quench, a Free software clone of StackOverflow written in PHP : http://www.qwench.net/
Good points again, I think that they could do with a detailed write-up on your blog though. I’m sure that I’m not the only person who’s unfamiliar with StackOverflow who could learn something about these things if you were to write an article about it.
My thoughts about this matter when writing this post concerned the issue of assigning missions, and even then I didn’t have any good answers.
Good idea – I’ll write something about that. I’ll try to sum up how inspiration from gaming can help in promoting contribution and detecting specific talents within a collaborative system. Expect something in a few days – I’ll post a link here when I publish it.