Monday, February 16, 2009

Software is like Tic-Tac-Toe

We just taught our three-year-old son how to play tic-tac-toe. I was in the beginning stages of the very lengthy porcess of putting him to bed the other night, and we were taking turns drawing on a little refreshable drawing pad when I drew a tic-tac-toe board. We played a few games. Then it was his turn to draw and he decided to draw a "better" tic-tac-toe board with more lines on the playing board so you would have to get five in-a-row to win instead of three. I chuckled because I remembered doing the same thing as a kid. But it occurred to me that traditional tic-tac-toe where three in-a-row wins was, in fact, the best (and maybe only really usable) version of the game. There is an optimal point where you hit "enough" and putting more complexity into the game makes it worse and sometimes not even worth trying to play.

The company 37signals has been an advocate of this same idea in software for some time: a given application should be about getting certain things done. The developers should find the easiest, fastest, most intuitive way to do just that and stop. Adding more lines (in this case, lines of code) to the game does not make it better. It buries the core functionality so that the software becomes too complicated, too hard to find the function you need in all the drop down menus, too much of a hassle. And we wonder why user adoption is so hard. I think the winners are those, like 37signals, who find that point of "enough" on the curve and deliberately stop while they can.

No comments: