Jump to content

Tools and Technology

  • entries
  • comments
  • views

Contributors to this blog

Check here if you want more options

Q Linden



In the Snowstorm Product Backlog Office Hour Wednesday, I commented that "I think options are bad for users and bad for code quality". If you read that whole transcript, you can probably see that it was interpreted badly. The most extreme variant, reported by someone who was watching in-world chat afterward, held that Linden Lab wanted to remove all options from the Viewer. Let me start by saying that is not the case and never would be, nor is it something that I or anyone at Linden Lab has ever seriously contemplated.

However, I still stand by my original comment -- options are problematic for lots of reasons.

Let's see why:

First, every option has to have a way to control it. In many cases, you have to have multiple ways to control it. From a user interface design point of view, that means creating option interfaces. For the SL Viewer, those are a) the preferences dialog, b) the debug settings, c) checkable menu items, and d) options within dialogs that control other features.

You'd normally like to put options with the things they affect, but screen space is always at a premium and many options are only changed infrequently. So instead, we group options together in a preferences dialog. But there are enough of them that it becomes necessary to create some means of organizing prefs into a hierarchical structure, such as tabs.

But as soon as you do that, you find that you have trouble because not everyone agrees on what the hierarchy should be. What tabs should you have? Where does each option go? When you get too many options for one tab, how should you split them up?

There's no one answer and there's rarely a right answer.

And then, once you have a place to put them, you have to decide what to call each option and what the default is. And if those decisions were easy there wouldn't be a need for an option!

Second, options add complexity to the interface. Every time you add an option, you add a decision for the user to make. In many cases, someone might not even know what the option controls or whether it's important. Too many options might leave someone feeling that the product is too complex to use.

Third, options add complexity to the code. Every option requires code to support all of the branches of the decision tree. If there are multiple options affecting the same feature, all of the combinations must be supported, and tested. Option code is often one of the biggest sources of bugs in a product. The number of options in the Second Life Viewer renderer, which interact not only with each other but with device drivers and different computers, make it literally impossible for us to exhaustively test the renderer. We have to do a probability-based sampling test.

You could say that it's our problem to deal with that complexity, and you'd be right, but every additional bit of complexity slows down development and testing and makes it harder for us to deliver meaningful functionality.

Fourth, options that are 50-50 probably do need to exist. Options that are 90-10 are addressing an advanced (and possibly important) use case. Having them in the preferences interface promotes them to a primacy they probably don't deserve.

Finally, adding options has a snowball effect. Having a small number of options is good, but having too many options is definitely bad for the product and for the customers trying to use it. Sure, advanced uses need advanced features, but we don't have to make everyone confront all of the complexity.

Add all of this up, and I think it becomes clearer why I said I didn't like options and would prefer to find alternatives.

So why have options at all, then? Because different people legitimately have different needs. Advanced users vs novices, or landowners vs shoppers. We get it. But it's also often an indication of a design that needs work.

There are alternatives to putting more checkboxes on the preferences screen:

a) Allow entire user interfaces to be "plugged in". This requires a major architectural change to the software. Although we've talked about it, it's going to be a while yet before we get there.
b) Allow options to be controlled close to the point of use. As I said above, this can clutter the interface but can be effective.
c) Make an interface that covers all use cases. This is the hardest of all, requiring real understanding and design, but is usually the right answer.

In short, I often consider adding a preference to the prefs panel to be the wrong answer to a real question. It's not that we don't consider different use cases, it's that we're trying to cover them in a better way.

So this has been my attempt to explain the thinking behind a statement like "options bad". I hope it's helped -- has it? Tell me in the comments.



Recommended Comments

It's funny how things can be taken so far out of context, sometimes.  In some cases it's just someone innocently skimming through a transcript and misinterpreting what they read, in others it reveals a certain bias or predisposition on the part of the person blogging/tweeting.

That said, I agree with your post.  Too many buttons/controls add a lot to the complexity not just for the folks writing the code, but for the residents who are using it.  One area where I think the Viewer could benefit greatly is by defaulting to a minimal set of controls, then let residents optionally open up the other groups of controls through something like profiles (builder, machinimist, role-player, etc).  As a power user I like having access to all the knobs and buttons and switches, but I also recognize and understand all those controls intimidates and turns away novice users. 

Some RL friends were recently visiting, and asked us to show them "that Second Life thing" we spend so much time with.  Had there been a candy-coated version of the Viewer, chances are they would have signed up.

Link to comment

Hi Q,

Thank you for taking the time to explain your point of view. I agree that too many options that are not really necessary and that only a minority will use only adds clutter and makes the viewer less reliable. Nonetheless, I also think that there are much needed options to the viewer which users have been asking for. You don't have to look too far to figure out what options are ones that users want, simply look at what pushes users to use other TPVs. Instead, too many options which users do not want are constantly being added, like voice morphing and now display names. I do look forward to what kind of viewer will result in the Snowstorm program, I have no doubt that it will greatly improve the viewer and steer it in the right direction.

Link to comment

Hi, nice post!

First of all, obviusly, options are necesary and even more if people request it because its the fact that make people play SL. People want a option > people get that option > people play happily.

I uderstand how complex would be develop all these options. But about how they should or not being in the interface, there are some basics and flexible ways. For example, the graphics options. It only have an slider to choose what option you want or not, and if want more control, you can always check the custom checkbox. This can be translated to others options where novices users dont need know all about they. Options like customice beam color, chat color, font size, etc.. are options that dont need to be changed in first instance and can be easily placed in an "custom" tab/panel/checkbox because they dont change anything in the gameplay.

So I think, options can be placed into 2 types. Those that actively change the way on how you play, and those others that only make superficial/small changes.

Then people can choose what, when and how see their preferences.

Kitsune Shan.-

PS: Sorry for my english xP ♥

Link to comment

I have been a resident for a very long time..  Been through several versions of LL created viewers, and TPV.  I can agree with you completely that you’re never going to make everyone happy. What is rather telling is the acceptance rate of the viewer 2. I have heard a lot of numbers and LL is probably the one to know, but judging by what I see I would say viewer 2’s acceptance is not as high as LL had hoped for.  There are many reasons for that, and I have several of my own. But to me what I see as a problem is LL failure to listen to its customers, and to look at what’s out there and say “Hay, that’s a good idea”


For me, I’m a builder and a photographer. So options that allow me to tune that environment are very strong. As is having as much real estate on my screen into SL as I can get.  That last one, among others, is the reason I currently don’t use Viewer 2.


I have also recently had to switch viewers, and discovered the alternate had several options that I consider good ideas.  It was also missing ones that I would love to get back.


The point is that you have to not operate in a vacuumed. Your customers are very willing to offer up ideas and discuss them with you. They are also just as quick to criticize you when you go wrong.  The important thing is for LL to listen, discuss, and implement the very good ideas that we as customers have.  You’re never going to have a perfect viewer, but you can get real close to it if you engage your user base, and actually implement some of the ideas we come up with.

Link to comment

Whilst I understand and sympathise with each of your comments I have to say I think you've drawn an untenable conclusion.

To produce a UI that covers all use cases for Second Life is going to be so close to impossible that I believe you will spend more time chasing that goal than you say you will spend in cross-checking the various ways to access the preferences and making the decisions about what goes where.

Not having a system where there's a basic UI and then choices that the user can make to control the fine detail means you are making the choices for us - and even if you get every choice right for me when I'm building, they'll be wrong for the times when I'm shopping or clubbing or in a meeting. You won't win and we as a user base will complain loudly.

If you look at Adium, which does, essentially 1 of the many things that SL does, it has 9 different preference panels. By coincidence my first choice browser also has 9 panels. My email client has 11... and so on. Emerald had about 30 with various sub-tabs - and whilst I'm not here to defend the Emerald team, the stats suggests that the residents voted with their feet and learnt their way around all those preference panels quite happily.

I wouldn't object to seeing a preference choice for "minimal, intermediate or extensive" preferences where you set the core ones and gradually more and more others. I wouldn't object to seeing a something like the old graphics tab with a small number of choices (2 I think) and a "show more" option approach. But I would really like the ability to control a lot of things so I can make Second Life work the way I want to use it, rather than being forced to try and use it the way you want me to.

I don't know how many hours a week you spend in the viewer. It's a rare day I don't spend 3-5 hours actively in Second Life and when things are busy I might be spending 15+ hours a day using it. Having the ability to use it how I want for a good work flow is really important as it is to so many other people - it's just I don't believe that the way I want to have it to work is the way that everyone else does. I know I'm idiosyncratic, now give me back the preferences to let me work my way please and do the same for everyone else.

Link to comment

Nothing seemed wrong about the statement to begin with in my eyes, but we all know the people who tend to yell the loudest usually have the least justification/qualification for doing so. I would file everything you've written under , apparently that isn't the case for most people. This is one of the reasons I go out of my way to put project management directly between the developers and the users; developers have better uses for their (expensive) time than explaining the intricacies of development to people who can't figure out their remote control.

Link to comment


The point is that you have to not operate in a vacuumed. Your customers are very willing to offer up ideas and discuss them with you. They are also just as quick to criticize you when you go wrong.  The important thing is for LL to listen, discuss, and implement the very good ideas that we as customers have.  You’re never going to have a perfect viewer, but you can get real close to it if you engage your user base, and actually implement some of the ideas we come up with.

Well said. Indeed there are options that people want and those are the ones that are not being implemented.

Link to comment

Im with you. And actually isnt than hard to see. Just look how  Emerald become famous, why? its simple, they just add the options that  people want and they can. Nothing more is required. If LL take the time  to listen what user want and implement it (Im sure there is more easy to  implement options from users that those "ideas" that come fron LL and  that sadly dislikes to almost all users) SL 2 whould be the best viewer.

So, dont make this hard its really easy.Just follow what people want and as RichD says, you can get not a perfect viewer but for sure better than SL2, and that its actually a big step forward. Then, continue in that way to get a almost perfect one.

What options are priority isnt also hard to know, just look on what TPV made they better.


Kitsune Shan.-♥

Link to comment

Hi Q

Totally agree with your comments above about the options problem that you developers have and also agree with George's comments about TPVs.

I personally use a TPV because of the vastly different size of screen work space that I enjoy with it, as opposed to V2.

I've noticed in the blogs that the majority of adverse comments seem to be centred around screen real estate and I'm sure that if this problem was addressed, or seen to be, you would get more and more residents turning to V2 in droves! So many residents seem to see this as a MAJOR issue.

With regard to the options menus, you'll always, but always, get people complaining about the options with the viewer, either too many or too few!  You can't please all the people, all the time, etc...

Keep at it, you're getting there, I think, I hope!

Link to comment

I agree with most of the post. But I'd phrase it "Options are too expensive," instead of just saying they are bad. And they keep drawing resources over time, making it very hard to realize exactly how expensive they are. The cost of adding another option is much too high, most of the time.

Link to comment

Think that developers of TPV make these options for free. LL get money of us, that a fact, so if free developers can do things like those better TPV, LL should be capable to do even better because they have the necesary resources.

Link to comment

Here is a posting I made earlier today, in a slightly different context, but the zest of it is that you urgently need to separate core code from the UI for a number of reasons. One of them being the issue you bring up in this discussion; providing user interfaces matching the skills of the users and complexity level for the task at hand. The below will also facilitate your above stated goal.

Here is the post:

"What Linden Lab needs to do is to freeze the current 2.1.x development in a stable condition and stop there, including no more adding of new "features" like display names.

Then they need to take a very good look at the 2.x branch core code and layer over it a UI that is adoptable to and complies with operating system user interface standards. This will enable them to create user interfaces that at the core complies with the UI guidelines of various Linux distros, Apple's UI guidelines and Windows 7. But more importantly, that will also enable new mobile user interfaces that use touch, gestures, gyros and accelerometers to operate.

Emerald does not fit the above bill, but is one alternative LL may point the user base at, as a stopgap, till we see a lets call it version 3 viewer emerge.

Possibly the best bet would be to offer Snowglobe 1.5.x as the LL viewer for now, and also point users to reliable alternatives like Imprudence and, if something like that exist, a clean, malware free Emerald and others.

Even though Kirsten's viewer is somewhat better than Linden's v2.x, it is still a bastard when it comes to the UI."

Link to comment

Just because they work for free, doesn't mean that they don't put a lot of time and effort on it. With a limited amount of resources, that time would have to come from somewhere, which would mean other features would lose time.

Link to comment

Thanks for the post Q.

A great example is mini-map rotation.

Everyone has a personal preference for this - north up or avatar nose direction up. That preference is deeply rooted in our own perceptual systems, to the point where a nose up person may think nobody could possibly use north up and vice versa.

I started out in SL as a north up person, and was continually infuriated at having to turn off mini map rotation every time I installed a new viewer or had to discard preferences.

Then I discovered that during boat racing, you have to see the boats that are behind you in order to avoid turning across their path. This is easily done with the minimap rotating, and not so easily done with north up:

  • Same user, new use case = new preference.

Meanwhile the rotation control migrated around the user interface. However, the further it is from the point of use, the less likely it is to be found and used.

It's now (V2 at least) accessible from a right mouse click in the mini map. Now I can set it dynamically according to what I'm doing - It's no longer a preference, it's a useful tool.

  • Put control at point of use = less interaction burden + more discoverable = more likely to be used.

Re complaints about screen real estate - we're going to have dockable tabs soon, let's hope this solves that issue.

But that leaves the people who declare that the UI is unusable or worse, and the only reason they can give is that it's dark. Could we please just have an original colors skin option, so we can separate the structural issues from the cosmetics.

Link to comment

Yes, I know from the SLCC talk that the Devs feel there are too many controls in the viewer.

Which is what I suspect led to some options being dropped, such as http://jira.secondlife.com/browse/VWR-19964 (LL Internal: http://jira.secondlife.com/browse/VWR-21193 )

However, Things like this are simply too important to do away with completely. Is the above a 50/50? Probably not.  But it's important enough to many people, that it should exist, somewhere. Especially seeing as the code for it is already in the viewer. Would I object to it being on the Dev menu rather than the inventory pane? No. But It should be available.

Link to comment


The question of options came up during that OH meeting when the issue of chat focus in Viewer 2 was put forward. The chat focus is one of the most often mentioned source of irritation. While your reasoning sounds sound in theory, in practice it is often impossible to go with your solution c) where one interface satisfies all needs. You cannot possibly both satisfy the needs of people who prefer the WASD navigation, and the people who want to be able to just start typing and chat always, without some sort of toggle between those two behaviors.

I know that you dismiss the validity of JIRA votes, polls, and other forms of feedback, since those are allegedly self selecting groups of people that do not represent the significant percentage of SL user base. What is a bit more difficult to dismiss out of hand are the actual usage numbers. The majority of time spent online is done using one of the third party viewers. Why do you think this is so?

All of them have a vast array of options, and allow people to customize their experience in a far more advanced way than Viewer 2 does. So people are willing to put up with the uncertainty that comes with using a TPV just so they can adjust their experience the way they like it.

TPV developers do not have fancy usability labs in San Francisco equipped with large monitors where you can see how  couple of people try to use the product and where they stumble. What they do is listen to the actual feedback, and incorporate the features and options most users request.

Taking away options, and "we know better" attitude is what made Viewer 2 UI so unpopular. It is most unfortunate that despite all proclamations about how "we made mistakes" and "we will listen from now on", nothing has really changed and that attitude continues unabashed.  Unwillingness to really do a significant overhaul of the UI, unwillingness to consider taking some UI elements from 1.23 that worked well, totally ignoring all feedback (see WEB-1819 for the perfect example) does make me feel optimistic about the future of the platform.

There is still a chance to turn the ship around, and to break the evil spell of falling concurrency. But for that to happen LL needs people on the viewer team who are able to hear the feedback, who are not defensive every step of the way when their product gets criticized, and who are willing to make changes that go beyond few cosmetic fixes here and there that we have seen from 2.0.0 -> 2.1.2.

Link to comment

Something to consider:

~ There have been X million users, who have spent Y million hours using the older viewer format.

Now I'll be the first person to say that the older viewer format isn't all that good. 

Come to think of it, standard typewriter keyboard layouts are proven to be terrible (dvorak is better), cars aren't done very well either (legacy of horse and buggy days), and I won't even begin to touch upon legacy computer operating systems.  They are all terrible, with studies providing the proof.

But the point remains, *changing* the way that software works for students, for educators who invested time in training students, for businesses who invested in training, for casual users who have grown accustomed over several years... well, this is going to come at a cost. 

Changing the UI out from underneath core customers is neither fast, nor easy, nor fun for them.

And customers will gravitate toward fast, easy and fun.  At bottom, the typical SL customer is going to wonder what to do for their evening ~ SL competes for time, against such varied things as World of Warcraft, games like Starcraft 2 and even television. 

This isn't to say I think we should run on the old interface forever.  But if it's not an option for a veeeery long time going forward, someone's flunked business 101.

We need at least two interfaces.  One that will be friendly to new residents, and one that will be friendly to the paying customers.

This may seem hard or difficult to do.  I'm sure it is. 

Link to comment

/me enthusiastically checks the box.  I like options. 


Yeah, putting an option on the Preferences panels is often not the best place to put it.  If there's a better place, it should be put in that better place.


But "we can't think of any place besides Preferences to put it, that wouldn't clutter up the screen", is NOT a sufficient justification not to implement an option.  Neither is "it makes our jobs as developers / maintainers harder".

Link to comment

Personally, I don't care if there's ten thousand checkboxes in Preferences, as long as the UI allows me to do what I need to do, and do it efficently.

Viewer 2.0 was a classic example of how NOT to design a User Interface. The UI design team made invalid assumptions about how Residents used SL, that simply did not fit a majority of your customers. Common tasks took more mouseclicks, or became flat out impossible. Multitasking is almost completely impossible in 2.0, for example. And throwing even more things into that modal sidebar makes no more sense than a Swiss Army Knife with 5,000 blades that is three feet wide, welded to a post. It becomes unusable.

Second Life's Residents, your customers, have an incredibly varried set of needs.

  • Some people never do more than one simple task at a time, while others multitask daily.
  • Some people use Voice and never type, while others can't stand Voice, and exclusively communicate by typing.
  • Some people build, and need good building tools, while others barely know what a prim is.
  • Some people want all the real-world info on everyone that they can get, at their fingertips. Others don't want to EVER see real life info on anyone else unless they explicitly hunt for it.
  • Some people want to use SL for gaming, while others use it for text-heavy roleplaying.

Choice... It's incredibly important to user satisfaction. We have diverse needs. Many of those needs are opposites, depending on who you ask. We need the ability to choose what is important to us.

Vtewer 2 took away a lot of choices. It took away a lot of existing functionality. We need options to restore what was lost in that UI change.

Give is that chat focus fix. And while you're at it, give us back a text entry field that moves with the text chat floater. It is impossible to participate in a busy text conversation when the text entry field is welded to the bottom edge of the screen, if you try to place the text chat floater anywhere other than right on top of the lower edge. Try moving your eyes back and forth between what you're typing at the bottom edge, and the 15 posts that came up in the text chat floater at the top edge of the screen, while you were typing. It's a lost cause. Now try that in the 1.2x floater, where the new text chat posts appear right above the floater's text entry field. So much easier, no matter where you want to position that floater!

Definitely, give us the ability to tear off every one of the sidebar's 'tabs' into floaters, with multiple instances allowed for each tab, so we can see multiple people's profiles again. And give us an option to NOT have the sidebar try to grab every function first!

A single UI, with no options, is called "one size fits no one", and is very bad UI design.

Link to comment

Well, after reading the transcript, and then your clarification / spin, I don't think it was misinterpreted.  Its standard SOP for the Lab when dealing with players 'We know what's best for you, you don't need choices'.  Here's how I read your points from the clarification.

  1. This seems to be merely a refusal to sit down and plan.   You work out where you think they should most logically BE and go with it.  The main problem I have with v2.x.x is the sheer lack of planning...what little controls there are have been what feels like RANDOMLY moved around and grouped with things that make no relative sense.   Planning is difficult, I know, but it has to be done.
  2. This is necessary only if your users are morons and you treat them as such.  The people that don't need the options don't touch them (the blingtardians just there for chat and clubbing) while the builders and coders USE them.   Simple...    And you already tried releasing a option-limited 'Viewer for those that cannot be bothered to think' in v2.x.x and we have seen how WELL that was adopted.   If that reasoning worked, you'd not BE DOING project snowstorm, we'd have flocked to 2.x.x.
  3. More Linden Tao nonsense.   I translate this as 'this is unfun coding, it isn't glamorous or fast, so we don't want to do it'.   Other companies do it, its time to buckle down and code rather than picking the low-hanging fruit as you at the lab have done in the past.  

You seem to have NO trouble giving us unwanted features or features that are PRIMED for abuse (the new character names come springing to mind), but god forbid we want to have a modicum of control over our experience, you flip out and start coming up with reasons why choice and player control is 'bad' and centrallized, unchangeable 'linden endorsed' features and experiences are optimal.

I am rapidly getting the feeling that 'Snowstorm' should be called 'Snowjob' and that the changes to 2.x.x are going to be of the 'lipstick on a pig' cosmetic variety due to lab inflexibility.

Link to comment

I think the real point here is not whether there are 10 checkboxes in options, or 100 checkboxes. The point is that you, Snowstorm leads, should recognize issues that divide the userbase and address them. Not automatically dismiss them because solving them would add maintenance costs or because you personally don't think they are an issue. The chatbar focus is a model example, but there are many, many such problems in current Viewer2 UI.
Your primary goal should be customer satisfaction, not making code maintenance/testing easier.

Link to comment

To get some idea on how to minimize UI clutter, study how the inspector in Apple's Keynote application works. It has many parallels to the current Build floater only with a somewhat different implementation. It is flexible, gives the user the power needed for the context and tries to stay out of the way as much as possible.

If you don't have a Mac or Keynote, find a friend or colleague who has and get the idea.

Link to comment

Last time I tried Viewer 2, I couldn't have a user profile up next to a group profile, couldn't open several group profiles at the same time, couldn't easily open an inventory to drag an item into a group notice creation dialog (but I later learned that shift-ctrl-I might do it), and some things like that. I haven't tried it in a bit now, and I've seen from the change log that at least some of these things are fixed. But the "only one thing open at a time, and it's stuck in the sidebar" thing made it really hard to work with Viewer 2 for me.

There were also lots of weirdness with the search window, searches resetting when reopening the window after a teleport. Lots of the other dialogs lost their state when going back and forth between them too, like digging down into a user's groups, going to another user's profile from that group, and then not figuring out how to manage to find the first user's profile again. Ironically, the sidebar seemingly being modeled after a web browser, it did manage to make things a lot harder to browse, that way. Modern web browsers also have tabs and new windows to help with doing more than one thing at once, but the SL sidebar was very single-minded/one-tracked when I tried it.

Another thing I really hated was getting people's RL info right in the face (with RL pics!) when checking their profiles. As a role player, that really messes with immersion. RL info contrasted with RP info = really bad.

I liked the tiny notification icons, one for each IM window, though. That helped me be able to ignore group IMs when I was focused on other things, while still seeing one-to-one IMs.

So yeah, I had many reasons to feel that Viewer 2 wasn't for me (the dark GUI not being one of them). But I have good hope that they will eventually manage to fix most of those reasons. Eventually I might want to switch.

Link to comment

Your primary goal should be customer satisfaction, not making code maintenance/testing easier.

The former gets a lot easier with the latter.

Right now, we're hearing that folks want a lot of code changes to v2, ranging from the behaviour of the sidebar to chat focus to attachment behaviour, etc. etc. etc.  Every code change we make needs to go through QA. The easier and more reliably we can QA our code, faster we can iterate, and the lower the probability that those changes will introduce new bugs. This means more responsiveness to customer requests and higher satisfaction.

Link to comment

Say what?

Interface design is a course one can follow in many schools and universities. I had to attend two in the past for my job. It covers many aspects of UI, including design and psychology and even though I am no expert, I am at a loss for words at what you are saying here, all I can ask is: are they teaching this now since the last time I was there?

One thing I do remember in respect to this topic is when they told us:

"Options can be overwhelming, BUT if presented in the right way they actually give the user the feeling that they have freedom and are in control. People are easilly frustrated by searching for an option that doesn't exist when they WANT it and feel more confident and satisfied when they found out how to set an option that was "hidden" to them before."

Now for the argument that more options also means more complexity in the code, this I can understand, but it seems a bit unfair to me to turn this on the users. Besides, what is the use of pumping money and time into a viewer that never becomes popular? I know times are hard, but better to do a good job or no job at all.

I never understood why not employ the use of TPV developers directly to snowstorm? Simply fork it now and wait for the one to come out shining and adopt that one. Spread the knowledge, time and funds. It would cost LL less money and less time. gives the users actual say in the matter (TPVs listen better than LL does, sorry) and the process would greatly accelerate. Everyone is a winner.

Link to comment

  • Create New...