Code Simplicity

Specific Solutions

So, I’m a huge Kyle XY fan, and I was entertaining myself this morning by watching the various “behind the scenes” clips that they have on the website. Of course, before each clip was an ad–the same ad every time–for The Sims. No matter how silly the ad may be, being forced to watch it over and over did eventually get me thinking–although not about buying The Sims:

Why has The Sims sold 100 million copies, while Second Life, an ostensibly much more flexible and powerful universe, only has about 2 million active users? They look pretty similar, and you might guess at first glance that they’d have somewhat similar audiences. But, although 2 million users is nothing to scoff at, 100 million absolutely trounces it. So why the big difference?

Well, of course, The Sims has EA Games behind them, who have a massive distribution channel and a lot of marketing power, but the Internet buzz and general promotion of Second Life is pretty good too, so although EA has the edge, that doesn’t explain a 50-to-1 difference in sales. There must be something actually different about the products themselves.

Well, at first glance, The Sims is very user-friendly and Second Life is (from what I’ve heard) hard to use. The Sims does a limited scope of things very well, and Second Life does an unlimited number of things through a difficult interface, with mediocre results.

But fundamentally, why is it that products like The Sims succeed so much more than things like Second Life? And why does The Sims have a better interface, why do people want to play The Sims more than they want to play Second Life? Well:

It’s easy to make a system that does something specific, and hard to make a system that does everything.

When something is easy to make, you can spend a lot more time focusing on the little details–the polish. When something is hard to make, you spend all your efforts just making it work, and there’s no time left to sand off the rough edges. Specific solutions allow you to handle a problem with a level of grace, efficiency, and quality that could never be achieved by a generic, do-it-all solution.

A great example is the Colossus computer, built in 1943 to break encrypted German radio messages in World War II. That was all the Colossus did–it was fundamentally incapable of doing any other task. However, it would have taken a 5 MHz general-purpose computer to break that code at the same rate as the Colossus–a level of speed that desktop computers didn’t reach until the 1970’s, 30 years later.

This is something that I have been trying to get across to programmers for quite some time–you don’t need to solve all the world’s problems with one piece of code, you only need to solve the problem you’re solving. Whether you’re designing a whole system or just a tiny piece, your code doesn’t need to do any more than is called for by the known requirements. Sure, keep it extendable for the future–that’s part of making a quality solution. But all solutions should be specific solutions to known problems.

The Sims satisfies a specific, known need–the desire of people to play out specific types of fantasy lives. It succeeds because it’s not infinitely flexible. Second Life is a nightmare of complexity because it tries to be “everything to everyone”–a situation in which you almost always end up being not enough to anyone.

When people have problems with complexities or confusions in their software, I encourage them to be The Sims. Be Notepad. Be the Google main page. Don’t try to anticipate every need in the world, just solve the ones you know exist. Everything tends to fall into place when you really know your requirements and just go to solve them.


4 Responses to Specific Solutions

  1. Mark Smith says:

    Completely agreed. As many times as I’ve really, really tried to get into Second Life, I have completely failed because of how the game itself feels. It is an amazing thing, and I really wish I could get into it, but I just haven’t been able to.

    EA has its share of problems, but they seem to generally understand how to make a product that appeals to people and accomplish what it sets out to do.

    I’m somewhat worried about Spore. :|

  2. Kim Sullivan says:

    I’ve never played either of them, but I’m under the general impression that you can actually -play- Sims (the characters act somewhat independently), whereas you have to do everything in SL yourself. I never really thought about SL as a game. Although it is, but more in the table-top roll-your-dice RPG genre, where you have some basic rules, but the game is made by the game master and players. But you can “play” like that with almost any software. If The Sims were like a computer game of tic-tac-toe, then Second Life is like The Gimp – it has everything for you to play a game of tic tac toe (oh, the joy of implementing image recognition in script-fu), but it’s not a game, it’s a scriptable image editing program.

    But generally, I agree with your article – the KISS principle still holds true 😀

  3. Synonymous says:

    “The Sims” is a Game
    “Second Life” is a Chatroom

Leave a Reply

Your email address will not be published. Required fields are marked *