My experience with the Ribbon started almost a year ago with Color Fitting, a very simple and funny color scheme generator. It all started as an excuse to use Codejock‘s implementation of the Ribbon, which is quite powerful and complete but it ended up changing the way I think about user interfaces. Nearly a year after Color Fitting I am working on an add-in for Excel 2007 and once again the Ribbon makes a lot of sense from a user point of view as well as from a development point of view.

Most applications’ user interface is partitioned into the direct manipulation screens and a multitude of dialogs. The great thing about the Ribbon is that it can replace a large percentage of these dialogs with tabs and groups that are always visible and can be used with minimal disruption to the workflow. For example, let’s say that we added a function in Excel that imports data from an external source and we need to ask the user whether to create a new worksheet or to insert the data at the current selection. The first reflex is to create a menu item that pops up a dialog like this one:


This is not very user friendly, the user has to find the menu item, read the dialog, make a choice and dismiss it. During the process the whole interface is frozen and the user cannot flip to another sheet, for example. A preferable solution is to present the two options upfront like this:


This also possible to do with a toolbar but the absence of menus in the Ribbon presents less choice to the developer steering him to the right choice: non modal interactions.