Thursday, February 15, 2007

A boot in the ass

It hadn't happened to me for a while, but it happened yesterday when I teleported from home to Naughty Designs. There I stood, hair still on my head, but with my red Chuck Taylors and the hood of my hoody wedged in my butt. I think pretty much everyone, or at least every female, has experienced the full monty at some point—shoes, hair, and jewellery all inhabiting the southern zone and skirt prim dangling around the thighs. Any attached object, as opposed to worn clothing, seems to be potentially subject to this defect.

A couple of days ago, I discovered that the classified ad for my counselling service had vanished. I'd set it up to renew automatically every week. My Linden dollar balance is more than adequate. But when I did a search, the ad just wasn't there. When I looked at my own profile, there was no trace of it. Fortunately I had the ad copy and photo safely stored away. The previous renewal had happened a week before, but I don't look at the ad very often, so I have no idea how long it was missing.

Most defects in Second Life are annoying but not serious. Some have a larger impact. And there is no such thing as defect-free software. It just doesn't exist, so I don't expect it. But as a software designer and developer in First Life, I have some understanding of how and why software has defects. And as a developer with an overriding concern for software quality, I have some understanding of what persistent and mysterious defects represent.

There are knowledgeable people who take the position that those who want Linden Lab to fix defects before creating new features would hold back development. They argue that Linden should keep moving forward and not worry too much about existing bugs.

With all due respect for some who likely have more expertise than I, I have to disagree. Defects represent design engineering failures. No matter how complex a system is, it is composed of smaller components. (If it isn't, then there isn't a prayer of ever getting it right, so let's hope SL really is not irreducibly complex, like Microsoft Windows.) Smaller components can be understood. You can know exactly how they behave under a range of inputs and through various system states. Things get more complicated when components are built into systems and must interface with each other, but the principle is the same. You have to know how and why things behave as they do for any given input and any given state. You can't guess. If you're guessing, or if parts of your system are a mystery, then your development effort is toast. You will never get it right.

So why not just move forward with new innovations? Think of a software system as a building. If it is well designed and engineered, then even though it is not perfect, but it is a fundamentally sound structure. If you need to modify it, add to it, extend it, then you know that the foundation is solid and that the design can be extended. An extra storey or a new wing do not cause the rest of the structure to collapse.

Can the same be said for Second Life? I am not underestimating its complexity. The fact that it works as well as it does is a tribute to at least some of the engineering involved. But when a tested update causes unexpected defects to pop up, defects in components that are supposed to be stable, then you have a fundamental problem. When the system misbehaves, sometimes very badly, under load, then you have a fundamental problem. Adding features to a shaky foundation is a recipe for disaster. If your elevator fails in perplexing ways, making it go faster isn't going to help. You have to walk before you can run, lest you fall headlong with your boots stuck up your bum.

1 comment:

▓▒░ TORLEY ░▒▓ said...

A new name for a painful older bug — I call it "hair in butt" myself,; but regardless of the name, Veronique, just wanted to let you know we're working on this. The internal issue # is SL-29362; I'd give you a public one ( http://jira.secondlife.com ) but haven't seen it reported there... yet. If ya do, email me (torley at lindenlab dot com) and I'll make sure to link them up.

Thanks for being so understanding while we keep giving these bugs a boot in the ass and improving Second Life!