Chris Baus

Stack Overflow: software should be fun

Outside a few choice racing sims, I've never really gotten into gaming. I've always found coding itself to be enough of a game to keep entertained at the keyboard. But Jeff Atwood, he's a gamer, and it makes him a better developer.

Until recently I didn't think that gaming could improve my understanding of general application design, but it is becoming clear that Jeff's appreciation for the psychology of gaming (aka fun computing) is helping to make Stack Overflow a success.

Consider the following from the 13th episode of the StackOverflow Podcast [transcript].

[Listener question] Isaac Moses: How do you plan to get people who know stuff to keep coming back to your site, and find questions that they know the answers to? Thanks, 'bye.
Atwood: Ah! This is... this is a feature that's near and dear to my heart. 'Cause I just implemented, uh, what will be called badges, so... I am also a big fan of the Xbox 360, I believe it is one of the best products Microsoft has released in a long time...
Spolsky: Do they call them "badges"?
Atwood: ...much better...Ah, they're called "achievements" in the Xbox 360 system, and it's amazing how seductive these things are...

As business application developers, we often focus on the nebulous concept of 'user requirements,' and fail to ask why would a user WANT to use the application. The most successful business application I've worked on gained a bit of a cult following in its niche and garnered a lot praise, but one user's comment stands out in my mind. "I love the application. It's like a video game."

While I processed the comment at the time, it didn't really sink in until recently. The application, for its class, provided a high level interactivity. It also gives the impression that a better solution to the user's problem might be unearthed by spending just a little more time with the application.

The ability to define and manipulate "whatif" scenarios, has helped make the spreadsheet metaphor an enduring success since the early days of VisiCalc. When using a spreadsheet, not only do users get to define the rules of the game, they get to play the game over and over.

What if we lowered our unit prices and raised our service fees?

What if the cost of electricity was 10% higher?

What if gravity was 10.4 m/s/s?

And so on...

I'm becoming convinced that as developers fight for attention among an ever increasing number of options, those who succeed will be those who can answer: "What makes this application fun?"