(picture)

April 11, 2003

How it feels

The art of great software design is to make things which are good to use. Particularly with social software, where properties emerge from multiple users. Some of the greatest effects are the hardest to predict.

The magic art of software product managers is to plan that in advance. How do they do it? I really don't know. I can only follow the tip of my nose.

Here a few examples I collected recently.

SharpReader, fast becoming my newsreader-of-choice, has a neat feature which groups linked posts together in a tree. I suspect Luke just had one great idea, tried it, and found that it worked. The result is emergent: the implicit weblog community becomes more visible.

Groove has a great facility which Ray calls "attention rendezvous": you can configure to be notified immediately people update content in a shared space, and this has the effect of creating a "flash crowd" when several people jump in to the same context at once, see each other present, and get to work. Was that an intended effect? If so, someone very smart designed it.

Pinboard has a nicely social feel. NewsClient gets the social juices flowing (so Jon felt, at least). On the other hand, my Start Menu groovegator isn't really social at all. It's a cute toy, but using it, there's no "there" there. (Plus, I really have way too many contacts to put on the start menu). None of these things were right or wrong by design, they just turned out that way.

Paul Graham, talking about language design ("Having strings in a language seems to be a case of premature optimization") brings up some of this, too.

An essay, in the original sense, is something you write to try to figure something out. This happens in software too. I think some of the best programs were essays, in the sense that the authors didn't know when they started exactly what they were trying to write.

In the social dimension (as in so many other areas), games are where the rubber hits the road. If a game works, it gets played and talked about. So they've been at the forefront of social software for some time, and we can learn from their experience. At the GDC, Will Wright (of The Sims fame) gave a great talk on "how we use emergence to engineer larger possibility spaces, with simpler components". His recipe: use prototypes. Start iterating that prototype "uphill" into more interesting regions of the dynamic space.

As Paul Weller says, "all the study in the world / doesn't make it science"...