The past few weeks, as you surely have noticed, I have written a few articles on various usability terms [part I | part II | part III | part IV | part V]. I explain what they mean, their origins, as well as their implications for graphical user interface design. Even though the series is far from over, I would like to offer a bit more insight into why I am diving into these subjects.I have been using computers for a while now. My first ever experience with a computer was, well, I do not really know, as it happened before I was consciously aware of the fact. My parents had a Binatone TV Master Mk. IV, a games console with four Pong-style games on it. The device was distinctively simple: the controller was a pad with a wheel on it, and turning the wheel would move your paddle up and down the screen. Combine the fact that my parents have not even the slightest idea when they bought the device with the fact that the Mk. IV came to market 7 years before I was born (I was born December 1st, 1984), and you can see why I have no idea how old I was when I first touched a computer.
My first experience with a ‘real’ computer is clearer. Somewhere in 1991, my parents bought a 286 computer with an SVGA (!) screen, MS-DOS, and Windows 3.0. It was our family’s first foray into the world of the personal computer (apart from my parents’ experiences at work, of course), and it soon settled into our daily lives as if it had always been there. My brothers and I quickly got around the computer, and so, at the age of 6 and 7, my brain was programmed with DOS commands (we barely, if ever, used Windows 3.0). I still have all the manuals and diskettes from that computer (I sort-of collect manuals), and every now and then, I flip through them just for the fun of it.
From that point onwards, computers were a part of my life, and ever since, I have used a computer basically daily. When I was younger, mostly for games (Keen! Wolfenstein!), but as I got older, the computer was mostly used for high school, and of course for university.
Anyway, the reason I am writing all this sentimental fluff down is because from day one of my computing career, I have been amazed by some of the inexplicable stupidities found in (graphical) user interfaces – on all operating systems, of all times. Whether you are using KDE or GNOME, Windows or Mac OS X, Amiga or BeOS, Windows Mobile or Symbian, they all tend to have some major problems, GUI-wise. All of these systems regularly drive their users mad.
Consequently, for some time now, I have been thinking about how to improve the experience people have when they use a computer. My initial ideas were rather bold, and would require major adjustments from its potential users. I had visions (not the scary end-of-the-world type, but more the fluffy-bunny-and-ponies type) about an interface where each element would have its own physique, its own effect on the interface as a whole. I wanted to make a completely (what I call) “physical interface”. I wanted users manipulating elements in an interface to feel as if those elements were real, physical objects. They would interact with one another, giving the user the illusion that the objects he was manipulating were somehow real. I called this concept: Grow.
Let me explain with an example. Consider you have a desktop background picture of a large autumn tree; the leaves have turned red, and are about to fall off. Various leaves are scattered across the ground surrounding the tree. Moving a window or another object across your desktop in a physical interface would cause that window or object to affect the leaves on the tree and on the ground; they would ruffle, some might even fall off the tree and slowly fall on the ground.
This example would be a perfect example of pointless eye candy of course (and annoying at that), but I hope you get the idea of what I mean by a physical interface. In today’s interfaces, elements all exist in their own little world, they do not interact with one another, and they are completely static and dead: they literally are lumps of pixels, and nothing more. I think that this lack of “life” is one of the prime reasons why so many users make seemingly stupid mistakes. Humans love interaction and sensory input, but interfaces today give little of either.
However, this plan got larger and more encompassing by the day, and in the end, it would have required mice that would give tactile feedback when ‘mouse overing’ elements, and, in addition, I must say that I lost track myself of how elements ought to affect one another: what should happen when you move a window over another window? Without making it ridiculously annoying? This would require some massive usability testing and experiments, and obviously, I do not have the means to do that (I wish I never stopped my university study of Psychology in favour of a linguistics study…).
Additionally, the releases of Windows Vista and later on, Mac OS X Leopard really helped me open my eyes: people really do not like change. I obviously already knew that, but I had never realised what would happen if the two biggest operating system companies were to make major changes to their interfaces. We all know the results: people went mental over Vista’s Aero, and it took people less than a few days to turn Leopard’s interface into Tiger. This made me realise that my Grow concept, which had gotten way too complicated anyway, was doomed to not be accepted by anyone. It would be too drastic, too different, and people would hate it instantly.
And so I dropped Grow 1.0, in favour of a more manageable concept: Grow 2.0 (I am good with names). And this is where all the recent articles come into play: I wanted to learn the history of the graphical user interface and its associated terms. And as I was delving through the depths of the internet, learning about usability studies, scientific research, and the stories behind various graphical user interface ideas, I realised that I should share this stuff with the OSNews readers. Additionally, this provided valuable feedback about various ideas and concepts (comments, people, comments!).
So, what is Grow 2.0? Grow 2.0 will be a set of Human Interface Guidelines that can be superimposed over existing HIGs, without interfering with them. The guidelines will consist of various elements, little changes, that can be made to whatever GUI you are using. I am not a programmer, nor do I aspire to be one, so I will leave that to the people who can. What I want to do is make computer usage just that little bit easier, saner, and less infuriating, by applying small changes, by taking various studies into account, by listening to the people that actually study this stuff. Grow 2.0 will be my vision on how to improve interfaces today, instead of creating some massive shift away from what people are used to, to something that is supposedly superior, “if you only took the time to learn it”.
I am not saying a thing yet about what kind of changes I am talking about, as the Grow 2.0 Design Document is nothing more than a set of random bullet points at this point; much of the stuff I want to see in Grow 2.0 currently consist of a bunch of neurons firing like crazy inside my brain. For the explanation of the name “Grow”, you will have to wait for the design document too.
The Grow Design Document (we can drop the 2.0 seeing 1.0 never made it out to anyone anyway) will be just that: a document, licensed under a Creative Commons license, that programmers will be free to use, to take ideas from, and implement them in their products. And if they do not want to, or they do not care, or will never ever even hear of the document? Not a problem – I am not doing this for fame, or to proclaim that my way is The One Way (a condition so many other usability people seem to suffer from). I am doing this because I want to, because I like to do it. I cannot program, so this will be my contribution to the software world.
Thus, the document will end with a sentence I have used before on OSNews: do with it as you please.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.