More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Andrew Wiles Olap Wareho...ProfileFriendsBlogMore Tools Explore the Spaces community
Information about my company

Andrew Wiles Olap Warehousing Blog

Musings about Olap warehousing, UI design and other stuff
July 07

A bit more on UI design

I have just watched a presentation by Jensen Harris of the Microsoft Office team on the development of the "ribbon" menu system. Every web designer should be forced to watch this presentation at least once a day until they have got it

"The Story of the Ribbon"
July 06

Has the web destroyed UI design?

Earlier this week I downloaded and installed the latest Silverlight and Expression tools to start some research for a new project. My intention is to determine whether it is possible to create a rich web client version of the Intelligencia MDX query builder that can be distributed via the web. I suspect that this will be a reasonably long process given that this is entirely new technology to me.
 
My observation in this blog entry however is not about my project but on the user interface for Expression and how this ties in with the influence the web has had on user interface design.
 
I understand Microsoft's decision to separate design from implementation. In larger development shops this is a logical and useful step toward building applications with a better user experience. For smaller organisations the designer and developer are likely to be the same person - i.e. me. Now maybe I am a bit old fashioned (and maybe my eyesight ain't what it used to be) but based on my very brief first introduction to Expression I really don't like the user interface. Gray on Black may look "modern" but it provides poor contrast for actually seeing what you are doing. It also seems that Microsoft have abandoned many long standing "fat client" UI givens, for example the right mouse click to obtain context menu's. In fact, even though I have a good idea of what I want to achieve I have had to refer to the documentation in order to carry out some very simple and basic "getting started" design tasks such as applying a background color to an object. Clearly the designer for the Expression tool comes from a very different background to me.
 
A long time ago - remember when Windows 98 came out - Microsoft published a guide to user interface design for Windows applications. The guide was highly proscriptive about how a UI should look and work right down to the greyness of the window and the exact fonts which should be used for labels and captions. The thrust of this guide was to encourage developers to build applications with a consistent look and feel. The reason for this was to make life easy for users. Application menus were proscibed to contain a File, Edit, View, Tools and Options menu (unless the application simply did not fit these terms). This meant that irrespective of which application you were using you stood a reasonable chance of finding the functionality you wanted by looking for it in the same place as the last app you used. By-and Large this worked where software companies bothered to read and apply the guide.
 
As the web has blossomed the influence of "design" has become a bigger and bigger factor in product development. The design of your web page says a lot about the character of your organisation and the role of graphic designers has taken on a great deal of importance in the projection of corporate identity. Recently however I have noticed an unwelcome (at least to me) shift in the software industry. We seem to have moved to a point where design has become more important than functionality. As part of my Sliverlight research I visited as many sites as I could find which use the technology and I have to say that I was somewhat stunned by how bad they were. Not, I have to say that the technology itself is bad because it most certainly is not (and I have to say that sites built on flash technology are equally bad), but the designers seem to have become so overwhelmed with the ability to spin, fade and animate that they have lost sight of the whole issue that a user has to be able to understand how to navigate the site. Here are a few of my gripes:
 
  1. Performance still matters. When I am browsing the web my attention span for a page to load is about 5 seconds. If your site does not provide me with some useful information in that time I am likely to be gone! Many rich client web apps try to load massive amounts of data for the home page in order to provide the biggest design impact as the first thing the user sees. This means that you cannot get to any other information until the mindless "loading" animation has completed.
  2. Put the most important/commonly used options at the top/left of the screen and make it look like a menu. Many sites now open with a completely graphic display or video in which there is no obvious means of navigating the sites information. Frequently you are forced to watch a lengthy animation before the navigation becomes available.
  3. If you want someone to click on something make it look like a button. I don't want to have to move my mouse pointer all over the screen to see what "lights up" when the pointer moves over. On of the worst examples of this is the log on Windows live in which an area of the screen only displays your email address until you move the mouse over it at which point a "Sign in" button appears. This is the most important part of the process and it is actually hidden by default!
The bigger problem is that this approach to design led applications s now bleeding through into fat client apps. More and more I am opening tools to be presented with something that looks very nice but in reality is worse to use than the equivalent product from around 1980.
 
Am I just sad and old or has the software industry lost the plot when it comes to usability? 
May 16

Multi-Dimensional Spreadsheet

In my last blog entry I described the work we have been carrying out on data entry in Intelligencia.
 
In parallel with this activity we have also added that ability to update the MDX script associated with a cube allowing users to add/edit cube calculated membes and cell calculations. This functionality relies on AMO to read the cube script and then allows the user to interact with the calculations via our spreadsheet calculation interface. At present this functionality is only appropriate for users with administrative rights due to the way in which SSAS handles security.
 
ServerCalculations
 
The next stage in the development process will enable interaction with write enabled dimensions allowing users to add/remove data bearing dimension members.
 
Once this work is complete we should be quite close to providing a modeling interface that is not dissimilar to a multi-dimensional spreadsheet. It would not be a far stretch to allow users to create new cubes and add dimensions/hierarchies allowing ad-hoc building of small OLAP models. An interesting challenge would be to allow business end-users to add to a corporate planning/budgeting application so that they can model the specific behaviour of their part of the business.
 
April 11

Data Entry

Over the last couple of months I have been working on some exciting new functionality for Intelligencia. This is the addition of data entry and modeling capability to the query builder. The ultimate objective of this work is to provide a comprehensive user interface in which an end-user can build an Olap data model and populate it with data. The first phase of this work concentrates on providing management tolls that sit on top of an existing data model.
 
Data Entry
 
The data entry component of the work allows interaction with write-enable cubes. The challenge here is to provide an intuitive means of handling allocation of data from aggregate cells. What we have decided on is to only allow data entry where a member is an aggregate in one dimension only. This restriction mens that it is clear on the screen where the data is going to be spread and also limits th possibility of creating allocations to huge numbers of cells.  In the screen shot below the cells highlighted in orange can be used for allocation and thise which are gray cannot (and are also protected).
 
DataEntry
 
The next challenge was to come up with allocation rules that behave well in different circumstances. The first thing we encountered is that for parent-child dimensions data will be allocated to the data member for an aggregate node even if it is not displayed. The result of this is that the user enters a number into an aggregate node and finds the sum of the children when allocated does not appear to equal the total. We have therefore had to create allocation rules which prevents data from being allocated into data members. We have also made a distinction between allocation when the aggregate member has no data (when initializing the model) and allocating to a pre-populated model. In the first case we create an equal allocation in which all child nodes (except the data members) receive the same data value. Where values already exists we carry out a weighted allocation where each node receives a value in proportion to its contribution in the original total. The result of this work is intuitive and does not require any unerstanding of MDX or SSAS by the end user.
 
To top up the default allocations we have created a user interface for spreading data into ranges of cells based on linear increases/decreases in value and seasonal profiles. The following screen shot shows the seasonal profile window in which a user can define a source profile (this can be copied from the grid) and specifies a target value. A new profile is created that can be pasted back into the grid.
 
ProfileSpread 
 
Next step in to allow the user to update the Mdx script for a cube thereby creating saved calculations in the model.....
View more entries
 
The links in this area will allow you to access documentation associated with the Olap Warehouse project
The following links will allow you to download the latest versions of the Olap Warehouse Toolkit project