Enterprise Software Design Blog

Archive for the ‘Usability’ Category

As discussed in my earlier post(Extensibility Design), an extensible design provides the ability to customize an enterprise application software to server business needs of different customers. Extensibility is critical to the application software vendor especially if the software is delivered through a SaaS or On-Demand model. The underlying application architecture should support a metadata based model, which will provide a framework to extend the out of the box application to suite different customers’ needs. The framework should provide a generalized mechanism to construct application components to build the software.

The generalized mechanism for extensibility will mainly provide following three features.

  • Data Model Extensibility: The end users should be able to manage attributes with in a business objects. They should be able to add a new attribute of any data type and define rules for it.
  • UI Extensibility: The end users should be able to add new attribute to the UI forms as a field and the data can be added/modified using these fields. The field can be either simple editable text, number (such as amount, percentage), lookup or even media object (such as image, video) etc.,
  • Security Privileges: The design should take in to account that can extend a business object and once extended who can view and manage these extended attribute.

Data Model Extensibility

Data model extensibility is achieved through flexible attributes. Flexible attributes are generic attributes that is associated with a logical business objects. Flexible attributes are of generic data type (such as Raw) and can hold data of any type. The data will be stored as raw bytes and will be converted to appropriate data type on the business layer before transaction processing. An example of flexible attribute for CRM Opportunity object is given below.

UI Extensibility

UI Extensibility refers to the ability to add a field on runtime to a page. A ‘customize’ link will bring up the extensibility editor which will allow the users to create a new field in the form. The editor will prompt the user to enter the label and type. The types can either text, number of lookup. If lookup is chosen, then the editor will prompt the user to enter the lookup items. The user can also choose other properties such as required field and validation rules (not shown in wireframe below).

Security Privileges

The visibility of extended attributes and fields will depend on the security privileges. The attributes in the data model will inherit the data security policy defined for the logical business object and the function security will depend on any of the following.

  • Organization Hierarchy: The field can be made visible to the any of the organization hierarchy defined such as sales org, marketing organization etc.,
  • Employee Hierarchy: The field can be made visible to the any of the employee hierarchy defined. The administrator will choose a sales VP and all employees reporting under sales VP will see the fields.
  • All Users: The field can be made visible to all the uses with in a enterprise.

It should be noted that in a SaaS model, the customization will be visible only to those who extends the product. Subscribers’ from other customers will not be able to see these changes.


Enterprise Software products are unique and generally different organizations use it differently. It will be rare or impossible to see enterprise software used without modifications by enterprises. A typical enterprise has unique needs based on their organization structure and they customize the software available off the shelf. They hire functional and technical consultants, who have expert level knowledge of underlying technology and functionality to perform these customizations. The nature of customization could be either simple UI change, data model change or it could even more complex such as behavioral change (i.e. configuring workflows, adding business rules etc.,) or third party integrations. The consultants will typically make changes to the application source code and would require source code maintenance with the enterprise.

With the emergence of SaaS delivery model and multi-tenancy needed to achieve economies of scale, software customization for individual is not a viable option. The vendor will not be able to maintain versions of software for every customer and with software available on cloud the enterprises cannot maintain source code in house. At the same time, customers should be able to extend the product functionality to suit their needs. Software extensibility framework helps software to be customization without a need to change the underlying source code. A good extensibility framework design will allow the end users to customize the software and these customization will be visible only in the instance which the customer is accessing.

An extensible design can be categorized as following.

  • UI Extensibility: The user interface layer should be extensible and the customer should be able to customize the look and feel of the application. This customization can range from changing colors, application branding (i.e. changing logos), changing widgets look and feel and advanced customization such as customizing label texts, show/hide UI widgets, customizing error messages etc.,
  • Data Model Extensibility: The end users should be able to extend the data model for any object. They should be able to add a new field to the form and add data to it. The field can be of any data type including the multimedia content. The application should allow for defining validation rules and lookup values. Note that the data model extensibility generally doesn’t allow for creating data model or re-defining object relationships.
  • Workflow Extensibility: A typical business process consists of a workflow that is sequence of connected steps helps complete a task. The extensibility should allow the end users to configure these workflow steps (i.e. add/delete a step), define business rules, add notifications etc.,

I will discuss each of these with an example in my subsequent posts.

What is Enterprise 2.0?

Enterprise 2.0 is the latest buzzword that is generating interest in corporate IT circles and software vendor’s boardroom. The word was coined by Harvard university professor and as I understand this is about bringing Web 2.0 collaboration tools and techniques such as social media, wikis, blogs, twitter etc., in to corporate computing environment. Forrester predicts the market will grow to 4 billion US$ and will revolutionize the collaboration within the enterprises.

Enterprise 2.0 – Problem

While Enterprise 2.0 is great idea and has the potential to increase efficiency of corporate collaboration, it only focuses on collaboration between knowledge workers. The benefits Web 2.0 of should reach the entire spectrum of corporate users such as sales, finance, administration and HR. Also, the users will not use it just for the sake of better collaboration unless or until it makes them more efficient and helps them complete their tasks quickly and efficiently. As enterprise software users, we already use quite a lot of applications  in our day-to-day operation and having to use couple of more tools just for collaboration is not going to easy. The unique feature of online social media applications such as FaceBook and MySpace is provides better way (or incremental innovation over email/chat) way for people to share and collaborate. These applications allow the users to share an object of interest with their friends and then collaborate among them. It the object of interest could either be a picture, a video (uploaded in YouTube), a blog post or just a status message. Since this is an object of interest for many people, they get attracted to it and start posting comments on it. This way the collaboration begins and you people have meaning discussion around it.

Enterprise 2.0 – What it should be

Enterprise 2.0 should ideally be a platform through which all enterprise applications are offered. The application will be the object of interest for the corporate users and they will collaborate among selves to solve problems and complete their task. For example, an employee will typically use a HR self service type of an application to apply leave. If the leave application is rejected, then he will connect with manager. The leave application is the object of interest and entire process of applying for a leave, approval/rejection flow and subsequent communication should be offered within on top of Enterprise 2.0 platform. The object of interest should not be restricted to just one application. It should cover entire gamut of application from HR self service, to expense systems to complex application such as CRM/ERP and analytics. This provides a consistency in interaction with every enterprise application increase adoption of not only the Enterprise 2.0 platform but other applications as well. (Though there are technical challenges, Enterprise 2.0 needs to overcome this to succeed in enterprise environments).

To illustrate with an example, take a look at the screen shot below. This is how a typical Enterprise 2.0 platform home page should look like (Heavily inspired from Facebook and Orkut).  On the right hand side, it displays all the application that every employee will use to access information and complete a task. This includes benefits administration, payroll application and time card application. It also allows the user to add other applications that enterprise provides that they may need to use such as document management, knowledge base and CRM Portal. On the left hand side, the application displays the names of peers and managers. The user can add other employees and group them as shown.

On the center, application displays live updates. As you can see, it tells the user that one of his direct reports, Bruce Johnson has submitted an expense report for approval. Jene has completed a design document and she is waiting for him to review it and his very own leave application is approved by his manager. If you observe carefully these are three different applications (and possibly from three different software vendors) i.e.. expense management system, document management system and time card application. All these three are provided within one single Enterprise 2.0 platform and the user can seamlessly move between these applications. The e is no need for user need not switch from one application to another, nor view different applications with different user experience and then complete their task.

The application allows user to see the details of the expense embedded within it (by clicking ‘Show More’). The user sees that Bruce has only entered expense for a day and he wants all the expense as one single report. So user clicks on the ‘Ask details’ button and enters the comment as shown. Bruce sees the same comment when he logs in to the Enterprise 2.0 tool as a live update and he will respond to it in a similar way. The user didn’t use different application and mediums (i.e. email, chat or phone) for collaboration.


Predictive analytics is the latest buzzword in the enterprise software industry and it you go by predictions from industry watchers, every vendor will offer predictive analytics solutions. With most enterprise vendors acquiring predictive analysis technologies (i.e. Oracle acquired Hyperion, SAP acquired business objects and IBM acquired SPSS) we would definitely see some predictive analytics solution coming out from these companies. The customers are more than happy to give predictive analysis a try and why not in this economic malaise, if somebody is offering a sneak peek in to what’s in store in future, then why not.

Predictive Analytics

Predictive analytics is a technique by which the current and historical data are analyzed either thru sophisticated data mining tools or (and) applying statistical techniques to predict a future event. The future event could be predicting future sales, employee performance, budget requirements etc. The output could be either a detailed report (i.e. table, chart) or it could just be a single number. Predictive analytics is different from the traditional BI analytics in that predictive analytics looks at the present and historical data and predicts a future event where as tradition BI analytics looks same date and provides insights in to these data such sales by products, sales by territories etc.,

Traditionally application vendors provided predictive analytics tool as separate software that needs to be integrated with the existing database systems. Some tools will read the data directly from OLTP and data warehouse sources where as some other will define its own multi-dimension database (or cube) to load data in to it. These tools are capable for implementing sophisticated statistical techniques such as linear regression, time series forecasting, prediction model etc. The end users of these tools should be well versed with the business data, data warehouse concepts and statistical algorithms to effectively use these tools.

Pain Points

Though predictive analysis software offers real business benefit to enterprises, it is only used by very few with the enterprise. This is due the fact that majority of the enterprise users such sales managers, HR managers are not statistics expert and usually they don’t have enough bandwidth to engage statisticians and dive in to the maze of enterprise data. Senior executives such as the C’ level executives and VPs use these with the help of these experts. They basically use these to make important business decision such as budget allocation, high level territory performance and forecast etc. Most often these tools are not used regular day-to-day users.

To bring the benefits of predictive analysis to the end users, I suggest the following.

  1. Embed predictive analytics in to transaction pages
  2. Helps complete a business process
  3. Avoid technical and statistical terms in UI as much as possible.
  4. Do not over engineer

Design Solution

The example given below predicts the future sales of a particular product. It looks at the historical data ( i.e. from Jan – Sep ) and predicts the sales for the next quarter. This analytics will be used by a sales manager to view the sales target and the predicted sales through out a calendar year.The sales manager will use this tool to better plan and align the sales resources.

Month       Sales               No of sales rep
Jan             $100,000                 1
Feb            $120,000                  3
Mar            $123,000                  3
Apr            $110,000                  2
May           $112,000                  2
Jun             $119,000                 3
Jul             $115,000                   4
Aug           $110,000                  2
Sep             $100,000                2

Product Category         Customer Category        Sales
Desktop                                 2M-3M                                        $112,000
Desktop                                 3M-5M                                        $140,000
Printer                                   2M-3M                                       $120,000
Printer                                   3M-5M                                       $150,000
Laptop                                   2M-3M                                       $122,000
Laptop                                   3M-5M                                       $115,000
Services                                2M-3M                                      $120,000
Services                                3M-5M                                       $130,000

Predict Future Sales

The application uses time linear time series regression model to compute the future sales. The predictive model uses the following dependent variable to predict the future sales.

  1. Potential Revenue in pipeline
  2. No. of sales rep reporting to sales manager
  3. Product category sold
  4. Customer size

The sales manager can either use the standard forecasting method or use any of the standard averaging technique to predict the quota. Though this is little too technical for a enterprise user, having different technique till help the manager look at the other model and minimize errors and risk and it will give him confidence in the prediction.
The predicted sales and the red bar in the chart will change as and when any change is made. The model uses the liner regression with any of the chosen method and uses the time series forecasting to predict the future sales for the coming months and quarters. The user can adjust the dependent variables view real-time how the sales will be for next quarter and he can continue to do it until the target value is reached. At the end of the prediction, the end user will know what should the pipeline revenue, how many sales rep, what products should be sold to what kind of customers will be known and the he can strategize the sales activities

Enterprise Software on Smart phones

Mobile phones and smart phones are driving internet usage and it’s predicted that it will overtake the preferred medium for accessing internet in the future. Most popular internet application (Email, YouTube, Facebook etc.,) has a mobile application and increasing people are using these applications from their mobile phone. The enterprise users expect the enterprise software be available on mobile and executives who are mobile such as (sales representative, field sales technician etc.) it’s a must have and influences their productivity.

Designing and developing application for smart phones has its own issues that include lower bandwidth, different screen size and resolution of the device, device capability etc. The application vendor will typically deliver two different versions of same application, one for smart phones and one for the desktop computers. This approach has its own limitations.

  1. Development Overhead: The application vendor will have two dedicated team to develop and maintain such applications. This increases the development and maintenance cost and other overhead associated with having two teams.
  2. Non-standard devices: No two handheld devices (from different vendor such as Nokia smart phones and iPhone) have standard capabilities and come with its own limitations. Designing applications for such devices are tedious and time consuming
  3. User experience: The user experience between the mobile application and desktop application is almost always very different and user doesn’t relate between these applications.

The limitation mentioned above can be overcome with maturing technologies (i.e. Adobe flex open source framework) and smart design. The solution lies in using Zoomable User Interface.

Zoomable User Interface

The zoomable user interface allows the user to zoom-in and zoom-out of content displayed in the user interface. This is similar to Google Maps where we can zoom-in and zoom-out to view details on the map such as country, state, city and roads. These zoomable user interfaces allows application developers to define the content to be displays depending upon zoom factor i.e. how much the user has zoomed. By defining the content for zoom factor, the same application can be used both in mobile devices and desktop (esp. internet based application that works on a browser). Typically zoom factor takes in account the number of pixels available to render the page and once defined the same application can be accessed over the internet. The mobile phone with smaller screen will have smaller zoom factor and so only those content will be displayed where the same application when accessed from a desktop will display much more content. On the mobile phone, the user can pan (i.e. drag the screen on all directions) to view all the content.

As usual let me take an example and explain. Take an example of simple contact management application. The application will allow the users to add and update a contact. The sample user interface screen for the desktop application looks below.

It displays the complete page with maximum zoom factor. It has all the contents that the page contains. Typically application will define a set resolutions, say 1024  X 768 to be the maximum or 100% zoom factor  and it will confirm to a typical desktop resolution. The application developer will define all the controls that are to be displayed for this zoom factor. And then the developer will define controls to be displayed for different zoom factor such 25%, 50%, 75% etc., The user can view the application with 25% zoom factor initially with limited controls in it and zoom-in to view more control as defined by the application developer.

The zoom factor is basically the different screen resolution available for (i.e. 25% zoom factor is 200 * 150, 50% zoom factor is 450 * 300 etc.) rendering the page. When the application is accessed from smart phones with a certain screen resolution, the application will display content for appropriate zoom factor i.e. the iPhone has a screen resolution of 480 * 350, so 50% zoom factor will be displayed as shown below). The user can zoom out, drag the screen on either direction to access the entire page.

Design Advantages

  1. Multiple devices support: One design will support various devices including Smart phones, Netbooks and desktop computers (with different resolutions).
  2. One application: The application vendors will have only one application. No integration or repetition of backend transactions involved.
  3. Consistency: There is a consistency in UI between the mobile and desktop applications and provides seamless switch between these applications.
  4. Intuitive: The application is intuitive since zoom and pan designs are widely used in maps and other picture viewing application and the user knows that zoom always display details of the object being viewed.

Comments welcome..

From time immemorial it’s been taught in computer science class rooms that a computer processes ‘data’ and produces ‘Information’. The user interface designs of some of the enterprise application software will make you doubt my first statement. With rows and columns of data filled all over the computer screen, the application makes the computer screen looks like as if it’s straight out of the ‘Matrix’ movie (green screen with characters dropping).

A typical enterprise application is used over a period of time and since the data is entered and updated almost on a daily basis, huge data gets accumulated in the database. Digging information from the data is vital and the good news is this can be done with simple changes to the conventional enterprise software design.

To illustrate my point, let me show you with a example on how this can be accomplished. Lets us consider a simple use case. An organization has implemented HR software to maintain the employee information. When a new employee joins, the application will allow the HR representative to add a new employee and enter all the employee related information such as personal details, salary details, educational qualifications and business unit details. The UI will look like something below. Whenever a employee is created, it will displayed on the list regardless of whether complete information requested is been entered or not.

Typically information about the new employees will not updated on one go and the HR representative will need to collect the data, cycle back with the employee and other external parties to get the relevant information. Once the information is available, HR representative will select the employee and go to the relevant tab to update the details. This is a typical daily day-to-day task of an HR representative.

There are two fundamental flaws with this design.

  1. The designer assumes that the HR representative will know which employee information is complete and which ones are not. This is not the case and with one representative managing large number of employees this can become cumbersome.
  2. Though the data about which employee information is complete and which ones are not, the application software doesn’t display those information.

Needless to say, the application is complex and is very difficult to use even for a simple day-to-day employee information update.

Thankfully this situation can be corrected by making a simple design change. As you can see in the image below, a completeness meter column can be introduced that will appraise the HR rep about the percentage completeness of the employee information. The completeness meter is horizontal bar that will indicate the completeness. On hover on bar, a tooltip text will display the incomplete tasks. HR rep can click on the incomplete task to navigate to the appropriate tab.

This method offers the following benefits.

  1. Displays relevant information along with data.
  2. The HR rep needs not view or remember every single customer whose information is not complete.
  3. It saves time and frustration for the user.
  4. Every time the user looks at the list, it reminds about the incomplete task and the user is more likely to complete the task seeing the image rather than going thru every single employee record.

This is classic example of how an simple design change can make the application more usable and less complex for the end user.

Enterprise application software is one of the heavily invested technologies and it largely drives investment in other technology areas within an enterprise. Billions of peoples around the world with varied responsibilities use enterprise software on a daily basis to perform their day-to-day tasks.  They use enterprise application software to complete from an ordinary task such as applying for a leave, creating an expense to most complex task such scheduling work assignments, allocating bonus etc.,. Though these applications are most widely used, the user experience of these applications forthe end user is far from encouraging and leaves much to be desired. There is general and accepted tendency among enterprise application users that they need to go through a huge change management exercise within their organization and develop expertise in just using these applications to perform ordinary tasks.

In my view, what ails enterprise software applications is that it was never originally designed for easy use of its customers. If you dig little deep in the strategies employed by most enterprise application software vendor, you would see that user experience design would not be a major milestone within their development processes. Most vendors do not know who their end customers are and why and for what purpose are they using this product? The application software vendor performs truly a great technical design such as identifying and prioritizing the features, data model design, technical design. The human aspect of it is often overlooked and UI design and development is the least preferred activities of developers. Nothing explains the plight of UI design more than the cartoon strip given below.

Lets look at some specific items that makes the vendor to overlook the user experience design.

  1. Race to develop compelling feature: First and foremost is the race the vendors are in to introduce new applications and features before their competitors launch. Since there is huge gap between the time the software is bought and it’s implanted and used, the vendors naturally skip or shorten the human factor design step from the product development cycle. The tendency is that if there are any problems with the software, it will report and can be fixed. End of the day customer bought the software because it supports the features and not because of its ease of use. As long as the features and there is a way to use that however painful it’s the end user’s to use, vendors are find with that.
  2. Match competitor’s functionality: The marketing team in any product development company wants to ensure product they sell should support all features that the competitors offer. This way they do not allow competitor to differentiate their offering in the market and adding more features in to their product, they can differentiate and overtake the competitor. To meet marketing requirements, the development will force introduce the feature even if the feature cannot be supported given the technology design.
  3. Buyer is different from users: The buyer of the software is mostly C-level executives or the VPs with in any organization. The CEOs and CIOs look at the vendor brand name, market leadership and number of features supported by the product and not necessarily its ease of use since most of them don’t use this product. The purchase is generally made at the corporate level and the application will be installed around all their departments.
  4. Product Development Methodology: The traditional product development methods followed in non-software industry always includes a step for industrial design that looks at the aesthetics and usability of the product developed.
  5. Design Decision: The key decisions around which product and features to be supported are either made by the CEOs or Product levels VPs within any vendor company. To include a feature in the release the product managers start designing to the product that will satisfy the decision makers. The decision makers hardly use these products and more often or not they don’t understand the end users. The design that impressed almost and always never met the user’s expectation.
  6. Misunderstood design: Most product development team view software design is all about creating jazzy looking icons, stylishly designed button and using all the color supported by the latest display screens. Though these can be used to improve the design and look and feel, design goes much beyond just how things are displayed on the screen. The design should allow the end user complete their responsibilities with ease
  7. Technology limitations: The technology used to render the UI elements will have its own limitations. The developer understands these limitations and often the design suggested by the designer either cannot be implemented or to implement such as feature would require major redevelopment effort. In such cases the product development team either comes out with a decision that is technically feasible but compromises user experience or lets the developer come out with a design that can be implemented.
  8. Information Overload: Enterprise application software is sophisticated and they support a wide variety of business process. Unaware about the customer usage, the product development ensures that that business process are supported from an single page and display data pertaining these business process within single. The end user gets lost in information overload and  is stranded in the information jungle now knowing how to complete a simple task.