I manage a crew of about 5 programmers at work. During our performance reviews this year, I asked each of them how I could do my job as a manager better. One of them, in a bit of much-appreciated candor, said that motivation was one of his biggest challenges, and that he would be grateful for anything I could do to help.
This guy — let’s call him Ivan — is a capable programmer, and does good work, but (like all of us) sometimes has a tough time overcoming inertia and focusing on the task at hand. Interestingly, Ivan is also a World of Warcraft player. (World of Warcraft is an online Role Playing Game where hundreds of thousands of people play together in a shared, computer-based fantasy world.) One of the interesting characteristics of online RPG’s like World of Warcraft is that they often require one to do a lot of repetetive, mundane tasks to gain in-game experience and thereby increase your character’s prowess. This is referred to as “level grinding”.
When one is “grinding,” one isn’t doing it for the satisfaction of the task being performed, but for an extrinsic reward of some kind that keeps players at it. In the case of online RPG’s, the reward is an improved character (with a higher level or improved skills), better equipment, the chance to participate in more challenging gameplay, or bragging rights among one’s game-playing peers. Ultima Online, the RPG on which I used to work, would allow the player to link to a web page that showed off her character with her honorifics and arrayed in all her finery.
This sense of accomplishment is one of the things that makes computer games so compelling for many people. In the early days of arcades, the chance to put one’s initials on the High Score list on Tempest was often as big a draw as the gameplay itself. We liked the sense of competition and achievement that list of scores brought with it. More recently, Microsoft did something very clever when they introduced the XBox 360: every game for the system has “Accomplishments” that earn “Gamer Points”. People who play for fun will inevitably rack up a certain number of these, but in order to maximize one’s Gamer Score, one has to again do things that aren’t inherently enjoyable: search out every pigeon in a vast virtual city (and shoot them all), get through a level without firing a gun once, or breed 200 worm-shaped piñatas. One can then put a “Gamer Badge” on one’s website or on Facebook to show the world what you have accomplished as an XBox player. This system has been so successful that Sony has recently copied it for the Playstation 3, introducing a “Trophy” system to the platform with their most recent software update.
So as I looked at all these different mechanisms that games use to take gameplay that might otherwise be uninteresting and make it appealing, I wondered if something similar could be applied to work. After all, try as we might to make the office interesting and enjoyable place to be, the fact remains: if we have to pay somebody to do something, it’s probably not inherently much fun. (There are a lot more musicians who will perform gratis than there are accountants who will do your taxes for no charge.) As I mulled this over, several possible systems came to mind:
- Keeping Score: the simplest approach is that of the arcade games of yore: you get points when you do something good, and try to get the highest score within a given period, say a week or a month. (“Something good” for work purposes might be completing one’s timesheet, successfully fixing a bug, dealing with a support call, or presenting at a conference. Each would have a different point value based on its value to the business and degree of difficulty.) This system has the advantage that it provides pretty quick feedback, and that new folks and people who have worked at a job for a while are on a fairly level playing field. The biggest failing of this approach is that a single score doesn’t tell anything about what things one is doing to rack up the points, so one has less motivation to expand one’s skills than to simply concentrate on areas where one already has facility.
- Classes & Levels: As with the Keeping Score approach, one is awarded “Experience Points” for doing something good. These points are tallied and, when one has accumulated enough, redeemed for “levels” in various classes. For example, after completing a performance review and a month of development work, I might be a “Programmer Level 3; Bureaucrat Level 2”. Levels generally become geometrically more difficult to attain as they get higher, so a new employee would “Level Up” more often than someone who had been working at a given job for a long while. This provides a more nuanced view of what sort of work someone is doing and maps more directly to a traditional RPG mechanic.
- Achievements: With this approach, one has a list of specific tasks to accomplish. For programmers, this might include things like “fix your first bug”, “check in 10 changes to our source control system”, or “get a patch accepted by one of the open-source projects we use.” One accumulates achievements over time, and can see a list of which ones have been accomplished, and which ones are still out there waiting for further efforts. (The requirements for a given achievement can also be kept secret until it’s unlocked.) The advantage with this approach is that one is encouraged to stretch one’s wings and try new sorts of tasks. Unfortunately, it lacks any kind of aggregate view of one’s progress.
At this point, I’m thinking that a hybrid of #1 and #3 might be the best for an office. Each person would have an overall score — perhaps cumulative, or perhaps reset monthly — which would be increased accordingly whenever one did something constructive. In addition, one could unlock achievements by doing specific things. Those achivements would then go on one’s record, and would also provide an extra boost to one’s score.
Whatever system we used would need to have a few specific features:
- As much of it as possible would have to be automatic. Nobody wants to spend all day tallying scores, so it would be important to tie much of this to our existing systems and have them add points without human involvement. Some things, like points for helping a coworker, will inevitably require human tallying, but these should ideally be the exception.
- Part of the fun of accomplishment is being able to show off what you’ve done. We would need to be able to publish the information on scores and accomplishments various ways: website badges, added to our [Twitter Status Board->], screen savers, etc.
I’d really like to hear from people on what they think of this idea. Is it something you would enjoy having around your office? Do you think it would help with motivation? Do you think any particular mechanic would be a more effective motivator than another? I’m still brainstorming on all of this at the moment, so would welcome any diverse input folks might have on the subject. Thanks for anything you can contribute!
UPDATE: As I’ve been giving this more thought, another mechanic came to mind that I think would be worthwhile. In the game Team Fortress 2, each player is given a score for the match. The points, however, are earned in various categories, and those categories tracked individually. This results in a lot more affirmation, as even if one had a relatively poor game, it might still be your best performance as a sniper, or the most points you’ve earned by healing other players. Being able to lump work points into various categories could easily result in similar kinds of encouragement when they are tallied: “You earned 625 points this month, which is lower than your personal monthly best of 1027. However, you earned 400 points for helping coworkers, eclipsing your previous best of 150 points!”