Oh my… USER

In the original Tron movie, the programs saw users as their gods, essentially. In that movie, when a program dies, he casts his eyes to heaven and cries, “Oh, my User!”

Obviously, the concept of the user as a god doesn’t exist in reality, and the idea that our programs should treat us as gods has essentially vanished. No application is truly subservient to your needs — in fact, that sentiment might have died with Clippy, the helpful paperclip. If anything, software developers create applications with the idea that the user is subservient to it. Create the basic functionality with no regard to ease-of-use, and if the user has difficulty, that’s their problem: if it works somehow, more or less, then the developer’s job is done.

While this is usually how software is made, this isn’t how good software is made. This is how useful software products fail, in fact. You can have the most functionally complete application ever created, but if you ask your user to fill in too many gaps, to do too much work to make your tools useful, then you might as well not have any product at all. If you want to create usable software, as opposed to useful software, then you have to keep your user in your mind with every line of code.

But who are your users? You know by talking to your customers that some are more technically competent than others. As much as you’d like to give the middle finger to anyone you don’t consider your intellectual equal, they are the reason you have a job. Your job is to write tools for actual users. So your job is to first understand who these users are.

No, they aren’t one homogenous mass of people with wallets. Each approaches your product with their own skill level and background. However, if you look carefully, you can break down the user base into three distinct groups, and focus your efforts accordingly.

First, and most obviously, there are the Beginners. Beginners have no extensive experience with computers or software in general, and they need a crapload of hand-holding. A subset of these are the ones who attack the software with no experience and no desire to read the manual — the needy users. Another subset will rely entirely on phoning tech support. Despite the fact that you speak to the needy users more than anyone else, these are a tiny minority. If you’ve designed your software correctly, the majority of Beginners will be able to intuitively understand how to use the tools you provided.

Second, we have the Skilled users. These are the ones who have spent enough days using your product that they’ve moved on from simple “how to” questions to advanced questions of how to affect the best use of your product. If you have a basic user manual, chances are, they are way beyond it already. Now they need advice on specific use-case scenarios and implementations. If you don’t cover these issues in your manual, these questions will inevitably fall to tech support and end up costing you money.

Finally, we have the Advanced users. These are the users you love, because they don’t actually need help. In fact, they’ve used your software so much, they can inform you as to what changes you need to make for future releases. It’s important to listen to these users, but at the same time, avoid being guided too much by their needs, because their needs by definition don’t match the needs of the vast majority of your user base.

So those are your users: Beginners, Skilled, and Advanced. If you design your product with the user in mind, which user are you designing for when the needs of each group is vastly different? Let’s focus on the learning timeline, because it’s clear that Beginners don’t stay Beginners forever; eventually, they’ll become Skilled. In fact, it’s likely that they’ll only remain fumbling, needy Beginners for a week or so before they master the basic skills and move on to more advanced issues. Advanced users are a tiny subset that could really master any interface in spite of even vast usability problems, while at the same time informing you of the problems as they work.

The group that you need to focus on is the Skilled group. Every day, these individuals sit down and use your product to solve problems. Your task is to make their life easier. And if you’ve designed your user interface right, you’ve eliminated the pain of repetitive tasks, and streamlined daily activities based on what they need. In terms of documentation, your manual provides tips on how to improve their work flow, rather than focusing on clicks and menus.

The ideal software is easy to approach for the Beginners, provides obvious benefits to the Skilled, and is open-ended enough to allow Advanced users to expand on what you started. If any of these users needs to read the manual to perform any basic function, then you’ll know that you screwed up the interface. A user’s experience both begins and ends with the interface. User experience is the alpha and omega of interface design, and for that reason, if you haven’t once said, “Oh, my User!” then you’re doing something wrong.

Get my Cubicle Dweller books for nuthin’

As everyone knows, I’m a very famous* author of all kinds** of books. Until today, my writing was only available at my Cafe Press store or Amazon.com and only in ridiculously obsolete paper.

For those of you wanting to read my books Raised by Penguins and Cubicle Dreams without having to read them off pressed sheets of dried tree mush, I’m happy to now make them available as a PDF download:

To save to disk, right-click those links and choose Save Link As or similar.

If you have an iPad,… well first of all, I hate you,… but more importantly, you can use Calibre on your PC/Mac and Stanza on your iPad to copy it over for your reading pleasure. If you have an iPhone or iPod Touch, that method works as well, but the print is tiny.



* Not really.


** By “all kinds”, I mean two books made up of old blog entries, an unpublished novel, a published book on Mindstorms robotics, and countless instructional manuals.

Will Kitely fly?

Having noticed a bit of Twitter buzz about Kitely, the latest Second Life spin-off, I decided to investigate. Unlike the other spin-off worlds, Kitely targets Facebook users by letting anyone with a Facebook account create a single-region, SL-based virtual world. My impression is that if you want more than that, you’ll need to start buying up their virtual currency to pay for it.

Arriving at their site, I clicked the link to “log in using Facebook”, which is essentially adds Kitely as a Facebook app with full permission to access all of your Facebook account. If you’re at all concerned about privacy or identity theft, this is a point of concern already. Any app to which you hand over the keys to your personal info can essentially mine your data or post on your behalf. However, since my Facebook account is largely free of info that I need to hide, I went ahead and agreed.

The next problematic step, after creating the world and naming it (in my case, it’s named “Terra”), is that to enter the world, you need two things:

  • A Second Life client installed on your computer.
  • A “Kitely plugin”, which is an installer that you download and run.

That you need a Second Life client isn’t a problem for anyone already in Second Life, but that’s a big step for a lot of casual Facebook users. Also, there isn’t an obvious link for users to download the SL client, but maybe I just missed that.

The Kitely plugin is an installer for a small program that launches the SL client to connect to a particular Kitely world. Now, if you’ve ever connected to a grid other than the default Second Life grid (“Aditi”), you know that you can do this manually at the SL login screen, so the “plugin” is simply a convenience to users who are less technically inclined.

I did have strong reservations about installing this plugin, but mainly that’s a trust issue. As in, do I trust Kitely enough that I’m certain there’s no malware in the plugin, for example. I installed it despite my concern, because there are no instructions on how to connect to a Kitely world without the plugin.

Once in my new world, Terra, it was perfectly familiar. I had an avatar, a male one, though I hadn’t been presented with any choices there, and a tiny round island in a vast ocean. It looked like my world was ready to be terraformed and filled with goodies.

The first thing I tried, of course, wasn’t the inventory, but the physics. I rezzed a cube, turned on physics, and dropped the cube from a height. The result: not good. It rubberbanded a few times while falling and bouncing, and oddly ended up in the exact spot where I rezzed it. At a guess, that kind of physics time dilation is a sign that they’re hosting way too many sims per server, and the physics engine is simply overloaded.

Next test: I put a simple airplane flight script into the cube. I encountered a couple of odd bugs in the script editor, where it wouldn’t let me paste overtop of existing text, but I worked around that and compiled successfully. Great… time to fly. I sat on the cube, which gave a status message, as my script should, so that meant the script was running. So far so good.

Touching the throttle, though, led to my avatar being mashed into the sim corner underwater with the camera flailing all over. Standing didn’t work, and teleport home resulted in an error message. So that was my first encounter with Kitely. Technically speaking, the performance falls well short of where it should be to be a usable SL-based VW.

But beyond the technical issues, I have to question the purpose of Kitely. What advantage does Kitely offer a user over Second Life? Certainly, Facebook users can log into Kitely with an existing user ID, but is that really much of a convenience? The Second Life sign-up process is easy and free. Where Kitely seems to suggest that you will eventually have to buy Kitely currency to use their service, you never need to drop a cent in Second Life unless you want to buy land or content.

And this brings up another question. Where does the content come from? Second Life’s user-created content is rich, vast, and arguably matured. While it is possible to upload an entire region based on an OAR file (an entire region ripped from an SL-based VW and saved to a file), the vast majority of Facebook users will arrive to their new virtual world with nothing but the virtual clothes on their back. In this area, Second Life seems to have the clear advantage.

Privacy might be an area in which Kitely offers an advantage, in that you can control who comes in, but Second Life offers that ability as well, albeit only to estate owners.

In the end, I’m unconvinced that Kitely is a viable product. It technically falls well short of Second Life itself, but in fairness, maybe the performance issue will be rectified with more money for hardware, and if it’s used for purely social reasons, like standing around chatting, I’m sure it would be perfectly adequate. And bugs can be worked out, given time. The key issue is that it fails to address any specific user need that Second Life doesn’t already provide or exceed. And for that reason,  I think that Kitely just won’t fly.

Not a Gamer

As I’ve mentioned before, I have wasted — I mean “spent” — a lot of time in Second Life, so it’s probably natural for the average person to assume that I’m a hard-core computer gamer. I’m not. Really, I’m not, and here’s why: I have no patience for computer games. Games mean heavily structured game mechanics, hours of learning the controls, grinding, leveling up, and of course frustration. That’s not entertainment to me; it’s a chore and a colossal waste of time. I don’t want to get into the debate over whether Second Life is a “game” or a “platform”, but I can say this about it: when it comes to Second Life, time spent there means free-form creativity and the possibility of real-world income. There’s a real-world reward and the winning scenario is defined by me, not the big boss at the end of the level.

This isn’t to say that I haven’t tried games. I have. They all got uninstalled and the discs/cartridges gathered dust. Back in the nineties, I’d play all kinds of things: Quake, Duke Nukem, Descent, A-10 Tank Killer (or was that the eighties?)… and more. Since then, I bought a Nintendo 64, which, like my Wii, I largely ignored until I gave it away. I also tried MS Flight Simulator, Rise of Flight, and assorted others that just failed to catch my interest.

So no, I won’t try Angry Birds or Farmville any time soon, and I guess I missed out on the Portal craze, though even without playing it, I do know that the cake is, in fact, a lie. As for Warcraft, I gave it a try, got slaughtered in the newbie area a few times, and figured out that it wasn’t worth it.

Honestly, I have better things to do than grinding, shooting, and leveling up. In SL, I say that my winning scenario is to keep an airport running and in the black until Linden Lab shuts down the servers. I think I’m winning.

The Bacon Brownie Experiment

IN A WORLD… where meat meets dessert in a choctacular pigsplosion of flavour, two Second Life oldbies set out to do what few have ever accomplished before. Bacon fused with chocolate to produce the ultimate sweet and savoury creation.

The experiment: BACON BROWNIES.

Let me offer a warning here. The potential for this recipe to go very wrong is great, and it could very well cause serious injury, heart attack, liver damage, diabetes, swine flu, and tongue depression. We are trained professional bacon experts. Do not attempt this recipe at home.

Our experiment began in a highly secure, top-secret location in my kitchen. Joining me in the laboratory was Dr. Catherine Omega, Bacon Foodstuffs Assembly Engineer (Ph.D. in baconology and certificate in bacononomy). We began by assembling our materials.

Continue reading “The Bacon Brownie Experiment”