Why virtual worlds suck…

And why they don’t have to…

So, I’ve been spending too much time in Second Life and broadly agree with Nad’s “The problem with Second Life“.

But why does it suck and what would I want instead? Well first I think Second Life is too much like real-life – the physical characteristics of the world are too similiar too restrictive. Sure, you can teleport; great. And you can fly, albeit very, very slowly. But broadly the things that slow you down IRL are the same things that slow you down ISL.

There are things that aren’t right yet, like how you show search results as objects, for example, but there are others too. ISL today my search results look like a whole load of blobs; arbitrary objects created by the search interface for me to rifle through. This isn’t the fault of those producing search interfaces, but the fault of the engine’s themselves.

The good news is we don’t have to look far for a more imaginative solution. In The Matrix1 Neo needs guns, so guns arrive. He doesn’t move within the world, the world moves for him. That’s the kind of virtual world I want to play in.

In real-life when you want to, say, arrange books on the shelves of a library you have to choose a filing scheme – there are plenty around and they each serve a different blend of different needs. In a virtual library we could ditch the shelves altogether, but if we kept the shelves we could let people re-sort the shelves to meet their own needs – instantly and on-demand.

For that to work for many people at the same time that would mean the world that others are seeing would be slightly different from what I am seeing. That is to say that the while you and I may be stood next to the ‘same’ shelves, the books may be arranged differently for me than for you. That might bring usability problems with it too at times, but at least it would be lifting the restrictions of this world.

Imagine, this is like being able to all sit around one TV, but watch your own programmes! I’ve wanted to do that since I was six; imagine the childhood fights that would stop!

If you think about it this is what websites do all the time, if we used a search perspective rather than a browse of the shelves, we could see a shelf as analogous to the search results page of a search engine – that’s seen by millions of people at the same time, but contains results for each of us. What if we could do the same for the shelves? A hundred of us could be stood looking at virtual shelves, seeing different results upon them.

Any aspect of the world could vary, the same corridor of shelving could be 50 feet long for me and only 20 feet long for you – there would be some work to do in mapping where people are stood within each others’ spaces, but that’s not too hard. Imagine what that could mean though. When I search for books now, I could get my own shelf of results – everyone stood in the search “room” would only see their own shelf. I could easily judge how many results I have by the length of the shelf. Perhaps there would be a way for me to collaboratively search and manipulate results with other people I invite to help me.

AFAIK the current virtual worlds don’t support this kind of personalised, run-time, programmatic remodelling of the physical space. And that’s why they suck – they’re too much like this world.

1 This clip, The Matrix, Copyright 1999, Warner Bros

Tidy or Organised

Rachel Davies (she’s a top-notch agile coach if you’re looking for one) discusses the term refactoring and suggests it may be unhelpful.

She suggests calling it Tidying Up instead as then it’s clear what we’re doing.

I agree with Rachel whole-heartedly that the term is somewhat grandiose when talking about the work with non-technical project members, but I don’t think it’s just tidying up – it’s organising.

Continue reading


One of the first things that frustrated me about Second Life was the restrictions on real-estate that are necessary for Linden Labs business model. Having to buy land in a virtual world seems bizarre, unless you’re the one selling it, of course.

What I want is an open-source world server where I can set up my own world and use hyperlinks to join the boundaries of my world others – like a kind of web of virtual worlds.

As none of my ideas are original, it was of no surprise to me to find this… Open Source Metaverse Project


Over at Virtual Chaos, Nad’s been rambling about offshoring and outsourcing.

The problem though, is that writing code isn’t something you can translate into an assembly line. What I think the people pushing this type of outsourcing failed to comprehend, and seemingly still dont understand is that farming out development overseas doesn’t lead to innovation. … Someone famously once said every line of code is a design decision, I’m struggling to remember who it was [insert clever guys name here]. But that single statement embodies for me what the real problem is with outsourcing projects abroad.

I don’t really see this as about innovation directly. I think it’s all about design. There are plenty of software projects that aren’t about innovation; they’re about cost-reduction or about refreshing technologies (which is generally about cost-reduction) or about well, cost-reduction. Most of what IT departments in enterprise are asked to do is cost reduction – hence most of what enterprise will outsource is also about cost-reduction. Innovation isn’t really a factor.

The indirect quote that Nad references about code being design could well have been from Code as Design: Three Essays by Jack W. Reeves. Jack’s discussions parallel what Nad is saying; that writing code is the act of designing something, not the act of manufacturing something. “Tooling up” is done by the compiler and manufacture is when you press lots of CDs, or on-demand when folks download your RPM or MSI.

The answer you arrive at about outsourcing (and offshoring is just outsourcing with extra big communication barriers and some cultural differences thrown in) will depend on what part of the software universe you feel you’re in. For us, we write commercial software that we sell and maintain for a number of years, the quality of code is important.

But that’s not always the case for everyone. Say you have a legacy application that was not well-written to start with, it’s built on top of old, unsupported languages (say, Java 1.2?) and you need to keep running it with minor changes for a few more years. There is no innovation to be done. The design decisions in-the-small aren’t that important to you as they’ll be better than the ones made last time! Your team in the office are de-moralised by the very mention of the application’s name and you’re over-stretched on new projects that are innovative… Surely that’s a contender for off-shoring?


The OLPC (One Laptop Per Child) Project has releases Human Interface Guidelines for the machine.

This is a great piece of thinking and is, aongst other things, the first really good application of Fitts Law that I’ve seen.

I was going to write some stuff up about it, but Mikes Journal has done a great job already.

If you’re into Interaction Design, you might want to follow Nadeem’s occasional ramblings too.

As he says, we are currently looking for talent in this area.

Big, Retro Headphones

I just read over this report:

Sound Output Levels of the iPod and Other MP3 Players: Is There Potential Risk to Hearing?

and it’s great. I bought a pair of Sennheiser headphones a couple of years back mainly because I enjoy my music and wanted to hear it without it being massacred by earbuds.

I wrote some visualisations for Windows Media Player to see what different codecs were doing to the frequency range too…

So, now when I sit in the office looking über cool in my big white retro looking headphones I know that in just a few short years I’ll be laughing at you poor deaf b*st*rds.

Updated: It’s just been pointed out to me that I may be laughing but you won’t be able to hear me so it won’t matter.

ah, now I can read

I’ve been using FeedReader for a while (I prefer email style new to river of news) and it works really well. The interface is calm and it fits the way I work. But a few months back I upgraded my laptop to a higher res one, 1920×1200 in just 15.4″. This looks great, but I do end up making text larger in a few of my apps. I wanted to change that text size in FeedReader and I couldn’t find it anywhere. Then I remembered that the preview pane in FeedReader is just an embedded browser – I wonder… Sure enough, C:\Program Files\FeedReader30\stylesheet contains atom.xsl, emailstyle.xsl and custom(delicious.xml); a quick tweak from

body {
font-family: verdana, tahoma;
font-size: 0.7em;
line-height: 1.3em;
padding: 0;
margin: 0;


body {
font-family: verdana, tahoma;
font-size: 1.0em;
line-height: 1.3em;
padding: 0;
margin: 0;

in both atom and emailstyle and all looks lovely :->