Interface design is a complex business. There are a great many schools of thought about how to build an effective interface, and ultimately no-one is 100% correct. Lots of theory, lots of academia, lots of opinion, but little hard evidence about what design constructs actually work best for general human-computer interaction.
Recently I kicked off a segment on everyone’s-favorite-un-PC-ramblefest, LUGRadio, in which I expressed concerns that the GNOME project is not deciding on a direction for a next-gen incarnation of the environment, and KDE4 is primed to swoop in and eat its lunch. I am pleased to see the segment kicked off some discussion, and the issue has been raised in the minds of some core GNOME contributors.
While at GUADEC 2006 I sat on the patio of our wooden shack with Mirco Muller at about 3am and we spent quite some time discussing concepts about what a next-gen GNOME could look like. For a while I had been mulling over different concepts and ideas about how GNOME should work, and trying to distill them into core interactions for a desktop. In my mind, before you even think about mocking up a a user interface design, you need to define the modes of interaction; they are like deciding which tools and ingredients you are going to need to bake a cake. If you don’t decide on the tools and ingredients, you cannot effectively move onto the design stage and then the implementation.
The problem with current desktops is that they are largely artificial. We have created modes of interaction that the user has to learn to understand the computer, instead of the computer trying to understand the user. We have to learn where things live, how to move things around, which things can be clicked on and which can’t, how sensitivity and insensitivity works and other false economies. Fundamentally we the users have to fit in with what the computer wants us to do.
The next-gen GNOME needs to change this. It really, really does. What I want to see is an organic environment; one that is designed around human interactions, tasks and concepts that we find natural, intuitive and repeatable. Do you ever have those experiences where you think “it would make sense if it worked this way, I wonder if it does” and to your surprise it does? We need to fill our desktop with these experiences. To do this, we need to understand what interactions and concepts are natural to us as humans, and work on these concepts in GNOME.
So, with time not my friend right now, here is a rough list of some organic concepts that I think we need to bear in mind in our thinking:
- Pile Theory – nope, nothing to do with a nasty dose of the bum grapes, but the idea that we all naturally collect and stack things together into piles. I think this is a fundamental concept in a desktop – collections of things. Think of archives, directories, photo sets, collections of songs, related videos – they are groups of things that we need to access both as a group and as the individual items in that group. You can see this theory in action, look at many people’s desktops and the groups of icons of related bits and pieces – we need to make it easy to great this piles. Imagine a 3D interface to this piles where a bunch of items pile on top of each other and you can explode the pile or fit it together and re-organise it in different ways.
- A Physical Environment – I want to pick up documents that I am editing, spin them round and scribble notes on them, I want them to look like they are shredded when I delete them, I want to stick related things together like lego – I want a physicality to the things that happen on my desktop. A great first step with this was when Compiz put virtual desktops on a cube – it made the concept of multiple desktops more tangible. We need to apply this kind of physicality to all aspects of the desktop.
- Contextual Tools – something I have banged on about with Jokosher. You should only ever see tool options appear when it makes sense and when you can actually use those tools – insensitive greyed out tool options are nothing more than a distraction and a waste of space. In Jokosher, when you make a selection, the tools that can be used on that selection appear, we need to apply this concept to the entire desktop. This makes the desktop feel more organic in itself as the tools will only ever appear applicable to your context. It also makes the desktop far less cluttered and gets away from the nightmare of modal tools. We particularly want to get away from the hundreds of toolbar options available that clutter our applications. For all people have heralded the Ribbon as a great idea in Microsoft Office, I am pretty convinced that it may over-egg the pudding and confuse people with so many functional options available. We fundamentally need our desktop to be contextual – more on this later.
- Two Handed Interaction – some of the work with multiple mouse pointers makes this possible. For some applications this makes perfect sense. Think of a 3D modeller such as Blender – the most natural modelling process is sculpting using your hands, and this requires two hands. Think about putting things in other things – it makes sense to hold the container open to put the things in it (like when you put items in a carrier bag). Naturally there is a hardware implication for this which will delay its adoption.
- Real Contextual Working – a while back I wrote up my thoughts for a project desktop. We need our applications to be aware of what the user wants to do and ensure they are organic enough to evolve into a form that is condusive to that task.
With the growth in 3D technology, we have the opportunity to make all of this happen. This is just a collection of rough notes, but at GUADEC I hope to flesh some of these ideas out with other people. We need to break down the barriers to interaction, but also be brave enough to stand up and set a direction, which was the point of the segment. If I had my own way, I would love to blow off a week and spend all week designing a bunch of mock-ups. I have a fairly clear idea in my head how this kind of stuff would work, inspired from various interfaces and concepts, but I just don’t have the time to mock it up.