Friday, February 9, 2007

Complexity Come In Threes (or What Happened To Relativity?)

Most everyone who has spent even a precursory evaluation of design principles has probably heard of the Form vs. Function debate. It was intended to be form follows function, but alas, a battle seems to stick better.

It appears that most people, when discussing design, only weigh these two now 'legitimate' factors. They whittle away on their thoughts attempting to gain a delicate balance between the objects form in conjunction to its function, merrily discussing the body of work as though these were the only two elements of primary consideration.

It is wonderful to have all things exist on a two dimensional axis, but what happens when we are forced to face reality and realize that these two elements are subjective? Welcome to the third component -- the subject.

In the first blog entry, I attempted to highlight the idea that the ultimate governor of every design decision should be the audience. It is only after we have clearly located and gauged our target audience's abilities are we able to reasonably discuss the implementation details of design. It is a relative world, and both form and function are implicitly bound to the relative world of the audience.

Consider this: The universe of operating systems is inhabited by millions of people -- each with their own specific needs and ability set that provide the agency to meet those needs. This is not to suggest that the diversity is a crippling factor when attempting to embody a design pattern, but simply to acknowledge that pursuing the foolish and childish belief that a single pattern will work for all -- even as a starting point or ideal goal -- is completely impossible.

The "Simple" Button

A button. You click them. For some, the thinking stops there. If we put on our evaluation caps for a moment however, we can see that even the simple button requires a direct attachment to a user centric design pattern.

Language - "You Say Tomato, I Say Помидоры"

Even at the simplest level, we see that a button must be dependent on language. Nothing shocking or groundbreaking here. The developers quickly acknowledge this and provide a means to change the translation code for the button and presto, the button is suitable for someone speaking a foreign language. Or is it? Factor in left-to-right and right-to-left language comprehension biases on layout, and we have yet another problem. This is not limited solely to written language -- as functional 'communication' can be based on cultural imagery, textures, motifs, etc.

Accessibility - "It Isn't Just For the Handicapped"

Now let's propose that we have a user with motor skills that dictate the need for larger button sizes. Once again, assuming that the underlying architecture can even accomplish this, an application with fixed user interaction area will not satisfactorily meet their needs without seriously breaking the look / layout of the application itself.

Henri Matisse once said "...the only light that really exists, that in the artist's brain." This applies to our users as well, and considering that approximately 15% of our users can't rely on the standard colour communication language, how do we address this? Is our 'simple button' visible to them?

Within another area of the sphere, we have potential 'power users' who might request smaller button sizes to allow for greater access and speed to their commonly used tools. Can the architecture support this?

User interface architecture should have, at its core, a working mechanism to deal with all agency requirements, as sculpted by the higher level interface designers.

Knowledge - "What The Heck Is A Button?"

If you think this borders on silly, just ask your aging mother-in-law or your four year old niece. Yet another design trait in this mix would be knowledge. What does our target audience think like? Can we design for them in a rational way that makes it more apparent how applications fit together and work?

The Road Forwards

Even from the seemingly simple example of a button, we can quickly see the complexities regarding design compounding on an architectural level. Factor in the requirement of aesthetics and we increase the complexity by an order of a magnitude. To accommodate all of this, we need to step back and acknowledge two important ideas:
  1. All design, no matter how trivial, is rooted with an implied target audience. This is not an exclusiory statement, however. If the architecture simply acknowledges this, we as artists and designers can provide specific elements to better meet the needs of a particular user, not waste our efforts on a hypothetical mythical 'all'. Aesthetics, useage patterns, interface layouts, and like design decisions will always be bound to our audience.
  2. The architecture must support a layering approach. It is indeed possible that a person with physical handicaps could be also a power user on some level (if you disagree, you need to meet someone like Henrik Omma.) What about colour issues and motor impairment. Certainly there are technologies that attempt to address this, but through examining the greater issues we might be able to better develop a versatile approach to design.

Thursday, February 8, 2007

Ubuntu Design, My Bikeshed (or How to Lay in a Framework to Get Free Software Exposed to Significantly More People)

It seems that in this world, there are many thoughts on art and design. You can't turn a corner without bumping into someone who, when asked, has a very long set of thoughts on a particular element. These generally start with, "I think..." or "It's ugly..." or "Users don't want...", etc.

We can all agree that on some level, our opinions matter. When it comes to FOSS development however, the one fundamental element that has yet to be grasped is 'audience'.

Jeff Waugh posted a very insightful exploration, albeit in a rather chance-like discussion on Topaz. In his post he states one critical element:
"As a user, I don't want to "Run Firefox" or "Start Evolution". What I really want to do is browse the web and write mail. My applications should be ego-less - my data is the focus."
In this little snippet, we see the implied root of all art and design considerations -- the individual. Jeff doesn't make any claims to the grandiose "everyone", "all", etc., he simply comes out and says "me". Terrific starting point.

Ubuntu is poised to push Stallman's view of Free Software right into the mainstream. In its current manifestation however, it is lacking on a number of fronts. My first few blog posts are an attempt to verbalize the design faults that could be addressed overnight with a simple commitment to seeing the "forest through the trees" or "big picture".

It is with the firmest belief that by answering these fundamental questions posed in this blog, we would create a clear path for Ubuntu design.

Question One: What is the big picture? Who the heck is Ubuntu for?

Everyone has an opinion on it. Sabdfl has his view on it. At no place, however, is this vision clearly communicated. What is the big picture? Is it to be a viable desktop alternative to the commercial platforms or is it to be the leader in developer circles for a development platform?

The default design dictates that this beast cannot be everything to everyone. It cannot be accessible, functional, elegant, beautiful, and meet every Fitt's Law citer's needs. It needs an audience. It needs to be clear in this communication. There are a thousand art and design quotes that restate this fundamental principle, and yet Ubuntu chooses to ignore this.
"Concept may be King (and Queen, and Czar, etc.), but AUDIENCE is the force that governs over all." -- Jim Krause, "Design Basics Index"
We need to define a target audience for the default interface and design pattern. Without this, it is all guesswork and random speculation. Even rather long, seeming well thought out considerations are completely moot and devoid of use unless we consider every design decision in parallel to the target audience. This isn't a Utopian world, and there is no such creature as design that can work for everyone.