HCI VISTAS, VOLUME-II, 2006-2007

  

Designing for single and multiple users

in Enterprise Applications

Guest Author: Sameer Chavan

Article INS-15./Jan. 2007
At one of the HCI conference in India, I was talking on how Standards are important for enterprise applications. To my surprise I had many questions on why we have to spend time on standards. Then I realized that the majority of crowd was working on projects given to them by their clients. These projects ranged from designing portals, development support tools, websites & small web applications that were one time activity for these designers. Once they complete one project they move to other project.

But for those who are working in Product companies that makes Enterprise applications we can't escape form the reality that each year we will have new versions of same products or some new products and these products will talk to each other.

Enterprise applications are those which are accessed simultaneously by many users and are hosted on single servers. They mostly have multiple user roles, security access and integration with other applications. They help companies to maintain and access enterprise data like finance, employee, sales, production, etc.  Major Enterprise applications fall under Enterprise resource planning (ERP), customer relationship management (CRM), Human Resource Management (HRMS) & supply chain management (SCM). These are mostly horizontal applications used in any industry. But there are Industry vertical Enterprise applications too. Like Banking, Insurance, Universities, Hospitals, Government applications, etc targeted for specific industries. These vertical applications may access some of the horizontal applications to complete their tasks.
 
 
Non enterprise applications or consumer Software are mostly those that are single-user software applications (MS office) which run on the user's own local computer.
 
For Enterprise applications there can be two cases. Designing for multiple users accessing single applications or Single user accessing multiple integrated applications.
 
Let's take the first case where we have multiple users with multiple roles for the same product. What this means is the goal for each user is different when they login.
 
This leads to use of role based dashboard approach where depending on his access rights the user can see only those features and menus that he has access to. Some design approaches show same UI to everyone and disable some features depending on access rights. But usability studies have shown that users get confused by disabled menus and wonder when they will be active. In this case it's better to hide such features. The Art and Engineering lies in how you create a scalable UI template or standards which can be configured differently for different users.
 
The second case is of integrated enterprise applications where same user accesses different products. E.g. putting an expense report using financials, to submitting an online leave using HRMS. I do it regularly in my company. A user can use a navigator to launch different applications from single login and move back and forth or have a portal which is configured for him depending on his access rights. This portal will dissolve two applications into to one UI and user can just concentrate on his tasks.

Continuing on this second case, there may be situations where such Enterprise applications would be integrated. This integration may not be visually noticeable.  What this means is one portion of a screen may be showing data/table directly rendered from other applications. E.g. - when you are in a Clinical Application and if you are searching people, a list of people may be drawn from an HRMS application. Now actual user doesn't know this as that HRMS table perfectly gels with the surrounding Clinical application. So from user's point of view he is still working in a clinical application even though some data is from HRMS.
 
Another integration is like having certain menu action of one application visible in other applications. This may invoke other applications too. This type of integration demands that your designs are scalable and have provisions so others can embed their menus.
 
Lets see some design considerations for Enterprise applications. Due to multiple user roles and integrated applications, the Enterprise applications require a scalable, flexible & standards based User Interface. Popular approaches are; dashboards (Portals) or role based navigator (launch pads). These approaches give enterprise user an overall picture of important information & tasks that he need to perform in a single view and then navigate/drill down to specific information or task.

For Integrated Enterprise Applications, the trend is to have a common look and feel for entire product range. There are advantages and disadvantages to this.
 
Talking of Advantages- As the same user may be using multiple applications, so having similar interactions across the products, for common flows, helps user to reapply the user experience. It also makes the product consistent, reduces reinventions, debates within HCI designers and between HCI designers and developers. To achieve consistency in prototyping the user interface it's good to create design templates which already has a layout & color scheme.  These templates can be created as tensile in Visio or extensions in Dreamweaver. I have even seen people creating UI templates in Word and power point. Once the templates are final then those can be used by individual designers.
 
Talking of disadvantages - Having same application layout, interaction style, color schemes etc, does not do justice to a business user like CEO looking at his projects application, a nurse entering patent data, student searching for a course. One can argue that a frequent call-center user has different needs then an infrequent student enrolling to courses once a year. If the visual design and interactions are same for both then we are making no difference between these users. The resulted design would be a compromised solution for both. Rater then extending an interaction for a particular user because he needs it, we are reducing it because other user doesn't need this. In such situations, it's a challenge for designer as to how he uses the existing web widgets to makes a difference and design for efficiency for both users.

In large organizations where there are hundreds of designers and hundreds of products, it's very important that there is good communication across product teams to see that consistent designs are implemented across the products. It's quite possible to create two different interactions using same standards. E.g. attaching a file interaction. To put a check on this there are regular UI reviews done across the products by review team. It's also required to document such common flows. This leads to hugh documentation of design patters, Standards, graphics, etc. The negative effect of this is no designer can start designing without knowing these thoroughly. This slowly becomes design under constrains rather then design with innovations
 
Let's see learning curve for Enterprise Applications. Many non-Enterprise applications are expected to be self-learning and do not require process knowledge e.g. creating Word document.  But Enterprise applications may require certain amount of specific domain knowledge before anyone can start using them. E.g. For creating a Bill of Material for a Cars in Manufacturing application, user should know what parts goes into that model. This knowledge is required in addition to application learning. This increases user's cognitive load in Enterprise applications. So it's important to provide sufficient information at the task level so the user takes proper decision and not just complete a task. E.g. before deciding bonus amount in financials application, provide employee performance statistic. Providing such contextual information is also called Analytics & BI (business Intelligence).
 
Other consideration for HCI are Designing for performance as multiple users access the same UI, Workflow design when objects are sent through series of processes, Error handling as every user do not have access to all features (Security issues).
 
Talking of technology affecting the user experience I would say it's easier and can be changed frequently in non-enterprise applications. But when it comes to Enterprise applications one cannot frequently change the UI as a single change would affects thousands of users. It results in trainings, initial loss in user efficiency and cost to customers.
 
Lastly the key to designing best user experience for multiple users & still having consistency, is to have more then one interaction patterns to choose from, flexible and scalable component level standards, and dissociating the color skin/Visual Design from interactions.  Allowing more personalization & localization also improves user experience.
Sameer Chavan has M.Des in Industrial Design from IIT Mumbai and Bachelor's Degree in Mechanical Engineering from PVP Institute of Technology, Sangli. He has over a decade of industry experience. He has worked on Wap, Speech, Desktop & Enterprise Web applications. Presently he heads the User experience team at Oracle, Hyderabad.
Contribute Articles To
© Copyright 2006-2007
Perspectives