Friday, February 23, 2007

New Component Hiding Feature

The time for me to appear mature is quickly coming. Not that I will become mature, but it's one more mask I have need to forge to succeed in my upcoming endeavors. Specifically, grad student!

More to the point, it's time to distill the ideas floating around my mind, and materialize them in to tangible arguments. To the lovely friends who have subscribed because of my crazy ramblings, you might find yourself a bit bored with my developing theories, and for that I apologize ahead of time!

Note: I use designer and user interchangeably since my intended users are software designers :)

My current thought is with regard to the project I'm currently working on: VBoard. A good friend pointed out that, as the project is evolving, it's losing the simplistic charm it originally had. The cluster of components is creeping on the user, making it seem like any other bloated tool. He makes good sense, and there is psychology behind the explanation too. The solution? Hide the components, but make them easily accessible.

Psychologically, presenting too much information at one time can limit the designer's imagination. The average human brain can hold, on average 7 or smaller thought chunks (where each chunk is a concept like a car, reasonable number, etc). [Note to self: Look in to papers that analyze the effectiveness in clustering design ideas in to chunks, possible quantitative analysis or other studies] This means, if the designer consciously occupies his mind with the design environment at any point, a chunk of memory devoted to his current task is bumped out of his mind. The environment can invade the working memory through 2 different scenarios: 1) The user must "hunt" through the program to find the trigger for their desired action, and 2) Information not immediately relevant to their current task occupies the workspace and unintentionally attracts the designer's attention.

In order to combat the first scenario, action triggers must have a logical access path, and the amount of effort required must be small. For example, if I want to make a string of text bold, I can simple highlight it and press Ctrl+B. Likewise I can high light it and click the bold button on a tool bar immediately visible in my environment. The interaction for bolding a set of text works wonderfully, I can bold a set of words without much interruption in expressing my thought. A contrasting example would be if I wanted to insert a bit of clip art: I would have to pull the menu down, search for the clip art, and finally insert it. Whatever was in my working memory at that point is obliterated. Talk about working against yourself! Of course, any action done the first time will occupy conscious memory, but as I become accustomed to pressing Ctrl+B for bolding my phrases, the component of the brain responsible for this action shifts and we can now perform the same action with more working memory. It's like a free RAM upgrade for brain since you don't need to page file a thought to complete that action! (I appologize for that crummy joke ). In the case of my project, I'm going to attempt to make all actions 1 or 2 strokes of the pen away at all times. This may not be possible once it reaches a certain amount of features, but it's a thought I'll keep in mind as the project progresses.

If the information presented to the user is not relevant for their current task, it should not capture their attention. In an extreme example, a user is attempting to think up as many words that rhyme with purple as possible (impossible I know ), but at the same time the task manager is visible on screen reporting the CPU usage. While that's a nice thing to know, the user involuntarily has one of the chunks in his working memory occupied by this information. [Note to self: email professors about references for involuntary semantic processing, where a person involuntarily interprets a written word. Specifically D'Zmura.] In my case, the designer may be working on a specific portion of an architecture, but an accidental glance at the concern list may remind him of another idea they had in their mind. This may or may not be good for design exploration, I don't have authority to say one way or another, but my intuition says this information is better hidden. On the other hand, they may be actively working with a concern, so seeing it open may be useful as well. Either way, I want this data to be immediately accessible, but not imposing. In order to accomplish this task, the concerns will be hidden, but the colored circles for those concerns will be visible. Clicking the colored circle will reveal the concern until they choose to hide it. This way the user can decide which is most comfortable.

Ooo boy, I can't wait to get to implementing features that address these concerns. Too bad I have about 7 bugs I must muck through before I can get to this :(.

No comments: