Sunday, January 31, 2010

Brainstorm New Ideas: Contextual Undo

Last year I started a small series of brainstorming ideas for improving So maybe you remember the idea Document Check which was targeted to make finalizing documents more easy. Now let's continue with...

Contextual Undo

Idea Summary

The central idea of "Contextual Undo" is to let the user revert changes in a certain part of the document only. Thus, it overcomes the basic limitation of the conventional undo functionality which basicly is a linear list for "editing steps" for the whole document.


Productivity software like provides different functionality to revert changes in a document. A very common one is "undo" which enables the user to revert changes of the current document editing session step-by-step. When looking on the following - rather simple - document workflow, then we'll now focus on the step "Modify".

Let's first have a look how the today's "undo" functionality is presented to the user. The following screenshot, which shows the expanded "undo" drop-down in the standard toolbar, will be used to explain the behavior.

 The current "undo" functionality ...
  • ... provides a list of editing actions in reversed order (e.g. "Insert graphics" was the last one)
  • ... is rather independent of the kind of actions (e.g. typing, inserting, deleting)
  • ... already merges 'atomic' steps into more logical larger ones (e.g. typed words instead of single letters)
  • ... helps the user by showing the number of actions to be undone (e.g. "Actions to undo: 5")
  • ... has only a limited number of actions to be undoable (see Tools -- Options -- -- Memory -- Undo)
  • ... is a document-centric functionality and therefore e.g. available in the standard toolbar
There are many little things to be improved with regard to the "undo" functionality, but at the moment the very last last statement - being document-centric - is the one to be adressed. Thus, you may have noticed that the user (you?!) can only undo his actions step-by-step. Even if the user choses to go back five steps, then executes "undo" five times one after another. It is impossible to only revert one step (or a series of actions) which has been applied in the past.

Goal: The user is able to simply revert changes to a certain element in the document without affecting the other changes made during the document editing session.

Use Cases

Use Case 1: Reverting Unwanted Changes in a Calc Sheet

Sara uses an Calc spreadsheet document to do her private accounting. The information is spread among different sheets, so she works on some parts of the document. Unfortunately, she made some little mistake in the one sheet she worked on several minutes ago. Since she doesn't want to loose all her work, so she decides to use the "contextual undo" functionality which makes it really easy to revert the changes in the selected sheet. She can continue to work on seamlessly and focus on the topic.

Use Case 2: Reverting Changes of Pasted Content

John works in a large company. His boss requests to create a new presentation which presents the project he currently works on. He collects the related documents - texts, diagrams and graphics - and starts to compose the presentation. To keep the presentation document in a reasonable state, he first adapts the information and formatting in the source documents before pasting the content in the Impress document. For example, he adds some text which better explains the information in the given context and adds it to slide 3. Later he notices that some of the information is somehow doubled on slide 12 - it seems that the current source document already contained it. Thus, he wants to revert the changes on slide 3 with "contextual undo". Luckily, keeps the full editing history of the text which has been pasted and so he simply reverts some of the text changes without affecting the rest of the document. He is happy that this saved some time, since his boss needs the presentation in less than one hour.

Use Case 3: Working on the Bachelor Thesis

Michael works on his bacholor thesis in Writer. Since he lacks a bit concentration today, he jumps back and forth in the document and works on different sections. After a break, he briefly scans the changes made to the document and wants to revert some text he worked on some hours ago. He selects the modified paragraphs and executes the "contextual undo" - he browses the history of the changes and reverts all the unwanted changes with one click.

Detailed Description

Read on in UX Idea Contextual Undo (Wiki) ... here is a first "sneak preview".

Closing Words

My girlfriend loves fortune cookies on the New Year's Day and so I picked one, too. The message was: "Your head is full of new ideas. Apply them!" Okay, I do. But you, please don't forget to rate them ... or even better ... add your own!

If you are interested in more ideas, then please check out the Wiki category UX Idea.


Friday, January 15, 2010

UX meeting in Hamburg, Day Two


This is my second – and last – posting which covers my two days stay “UX meeting in Hamburg”. In the last posting, I've talked about non-disruptive messages and the common goal for Now, we will have a look at Impress and the printing improvements.

Christian and “What is going on for Impress?”

I had the chance to attend the meeting of the Renaissance team which currently works on the thinning out process for Impress. As discussed earlier, this process is intended to “clean up” the current user interface of Impress with the goal to ease the work on major improvements planned in the future. So let's state that we currently talk about how to improve the already well-known user interface.

The design principles are currently a bit implicitly stated, therefore I would like to turn it into something more explicit (as it has been explained to me)....
  • Only important things (I repeat, important things) should be made available in the toolbars
  • Some (currently unnecessary modal) dialog content might be considered for being used in the task pane
  • The task pane will be improved to be more usable on small screens
At the moment, I want to talk about the last item – how to improve the task pane. So why is this required? There are several reasons, but let's pick out two of them which mainly deal with the task selector elements:
  • They eat a lot of space: Each element is presented and therefore reduces the available space. Especially for the vertical arrangement of user interface elements, this is problematic. I've added a screenshot below how Impress looks on my 1280x800 notebook screen. You may notice (highlighted area) that the space being available for animation effects is … limited.
  • They require large mouse traveling: Especially if people search for a certain option this is even worse – they may explore the interface by clicking through each available task selector pane. Although we try to take care of how things are named, people might not be aware of the meaning of “Layout” and “Master Pages”.

But there are also advantages with regard to the current solution – the reasons for which they had been selected initially. For example, each task pane name is directly visible (e.g. “Layout”). If we would use icons alone, we might end up with the problems of the navigator and stylist. Many similar looking icons for context change and – at the same time – many clueless looking eyes ;-)

Okay, how to improve that? Some days ago, Christian Lippka already published an early visual example on Youtube which saves much space and which has been discussed in the Renaissance team. Finally, Christian Lippka, Frank Loehmann and myself ended up in discussing advantages and disadvantages of this and alternative designs. And, luckily, we were able to use the solution proposal by the IBM Lotus Symphony team which has been added to our wiki some time ago.

Within the discussion Frank sketched a proposal which presents versatile task pane content which might be docked on different places. It may be even present at “context” locations, e.g. selecting the slide layout directly on the slide. That leaded to the question whether toolbar content and task pane content etc. have to be technically different (with regard to future developments). If not, then this might ease the realization of an even more optimized UI in Renaissance.

We started to summarize the ideas in some wireframe mockups which also contain some explanations how it might finally behave. This time, I was in charge to produce something – and Frank took to opportunity to take a picture.

Please click on the graphic to explore the details.

I think, one of the most elegant ideas is the (decent) fading of the task pane content during mouse over on tabs. That would make it possible for the user to simply move the mouse pointer down (on the tabs) until she or he finds the appropriate element (in the contents area). A simple click makes the tab persistent. For most users, this might be far more efficient than looking on the headers only – since people usually search for visual clues (like the slide designs).

Like usual some of the ideas aren't technically feasible, but we agreed on some basic behavior which may even be realized for the upcoming 3.3. Stay tuned and keep your fingers crossed ;-)

Philipp and “Printer Pull Pages”

One thing I'm particularly happy about was the meeting with Philipp Lohmann, the guy who is the I-Team lead for the printing improvements for (printerpullpages). We are working on this topic since several months but we've met never before … a great opportunity to change that.
But, I am sure that we talked about many – to you – less interesting details, I'll skip much of the discussion. The main message is, that we will further work on improvements for the printing. For example, we discussed the necessity of the small “Print in progress” dialog which is shown after clicking “Print”. This modal dialog be even replaced with a non-disruptive message (see above). You may notice how well things fit together, don't they? ;-)

The End

That's it for now. I hope you enjoyed some – if not all – of the topics...


Wednesday, January 13, 2010

UX meeting in Hamburg, Day One


Last week I was on holiday from my day job so I went to Hamburg to spend time on my hobby: I experienced the kind and warm hospitality of Sun, especially the Sun User Experience team and had the chance to get in contact with some more “new” people and discuss some topics which have been around for a while. I will report on my visit in two parts. Today is Part One.

Malte and “How to Use Non-Disruptive Messages?”

One of the first meetings was a surprise: Malte Timmermann asked me to discuss some details of a non-modal information bar which I wrote about two years ago; you may recall the Direct Manipulation Snippets for Documents. In general, this kind of non-modal interaction/information elements are used in many different applications like Mozilla Firefox, Gnome Desktop, Adobe Acrobat, Microsoft Outlook, Microsoft File Explorer (Vista), Ubuntu Desktop, … For you may simply think of an information bar above the document view port which communicates simple information or warnings. During our meeting, Malte referred to one of my use cases which I would like to quote again (to be found in the wiki):

Example 2 “Macros”: If a user opens a document containing Macros, she/he is asked to confirm the execution of the macros. Until the confirmation, the user has no chance to see the document content. So why not loading the document without executing the Macros and asking the user afterwards for the permission?

If you read the wiki page thoroughly, you may have noticed that these “additional” Direct Manipulation Snippets for documents don't yet consider all kinds of situations. This was the reason for Malte to ask:
  • What if several messages shall be shown at the same time? For example, four messages would cover large parts of the document or may be bigger than the whole window. How to present them?
  • What if a user wants to recall a message which has been shown to him some time ago? For example, do we require some kind of message stack to be accessible afterwards?
  • What if a message is rather large, e.g. a user shares a document in a Document Management System and adds a rather large comment? How to show this message to the user – instantly – without requiring a large part of the window area?
  • What if a message is related to in general, e.g. the invitation to join our Improvement Program or to inform about software updates?
… and much more. You see, the discussion isn't finished yet. The funny thing is that – during the discussion – we collected more and more ideas for using this kind of non-modal interaction to make working with more pleasing and more efficient. Some examples:
  • If users add comments/notes without having entered a user name, we may ask him to add this information when required.
  • If users open signed documents we could explain to them what signed documents are. Today, many people don't know much about that.
  • If users add extensions we might inform them about the newly added functionality.
I think you got the point why I think it is worth to work on it. Let's see if Malte and his colleagues share that opinion.

Kay and “What is our common goal?”

Kay Koll is the friendly marketing guy who, for example, publishes the monthly newsletters to the community. During lunch, we started a nice discussion about what goals exist for working on If the goals are inconsistent or unclear, for example when working on the core functionality, documentation, web presence, etc, we face inconsistency and diverging development. Thus, we talked about how to make working on more target-oriented.

For example, we talked about the current improvements like “release mottos” for upcoming versions and the current – rather technical – mission statement. You may know that large organizations, both non-commercial and commercial, invest a lot of effort in developing a common mission and goals to be used in all their projects, teams,etc. Personally, I think that this kind of “tool” might help to ease development decisions. However, our discussion ended up generating some ideas for an upcoming visual design and branding meeting , so, we decided to wait for the outcome of that meeting.…

The Small Print

I would like to say a bit thank you to Liz who took care of me, like she did for other community members some months ago :-) She provided (as she called it) a warm and dry place to sleep and (as I would refer to) some delightful discussions apart from and all the development stuff. The same is true for the hospitality of Frank who arranged many tiny things to make my stay as comfortable as possible.

Besides that, many thanks to all the people (Christoph Lukasiak, Christian Jansen, Matthias Huetsch, Eric Savary, …) who discussed all the ideas and thoughts – or just dropped by to say hello! I hope to see you again, soon...

Have a nice day!

Friday, January 1, 2010

Happy New Year!

Also from my side a happy New Year and the best wishes for you and the whole community in 2010: health, happiness, success, luck ... and an increased market share for OOo :-)