Designing a powerful UX for enterprise applications

For almost a year, I have been working on a huge enterprise application for a Government entity in UAE (hereby known as ABC). It is a widespread application and caters to all the citizens of UAE. In the simplest way I can explain their working process is as follows:

A citizen submits an application

ABC registers the application

ABC verifies the application and processes it

ABC board members decide whether the application must be approved or not

If approved, the citizen’s application is granted else the application is archived

For each application to follow the above process, there is a need of minimum 20 employees and at least 4 weeks of time. Currently, most of the processing is done on paper. An existing system was in-place which was a desktop application but, the capability was limited. Employees were still using paper work-around.

Here began my journey of building a world-class enterprise application UX.

Design Process: The Double Diamond Model

Double Diamond Model

Understanding the system

With an open mind, I started grasping the culture of the organization, the people and the way they work. I came to know that previously, the entire system had been re-designed, millions of dollars spent and the entire system was scrapped. I looked at the system and had the following observations:

System and functionality research was done extensively

Multiple presentations for each module and how it needs to follow the industry best practices

It had a great look with material designs, animations, gradient textures and bold fonts.

But, USERS??? There was no analysis done with the users, no feedback taken, no usability testing. It was all designed in a room with downloaded information from business and best practices kept in mind. The result was a robust system which looked good but was NOT USABLE.

I then observed the way the employees worked, their environment and their lifestyle choices. With this recent study, I concluded on the following:

Enterprise users are not customers

An enterprise user is not looking to pass his time or carry out an activity which can be done using any other app at any other time of the day.

Mission critical

Most of the companies use enterprise applications ‘in the field’ which means, the app must be stable, responsive, accurate and ready to go at any point in time.

The app is their job, they will do it howsoever

Even if they usability is poor, the number of clicks are 10x or the page needs to be refreshed 20 times to load a result, enterprise users will do it to complete their work. They have a target which by any means they will reach. The key to good UX is ‘how fast and accurately they do it’. But, the users will always find workarounds to the bug in the system.

Culture is very important

Specifically talking about the locals in UAE, culture plays a very important role. The locals prefer to be treated as the ultimate authority and that nothing controls them. Understanding this was important during ideation. Features which track their performance and put them in the red zone can be a big set back.

Pain points of business

Too many applications in the backlog

No way to prioritize applications

High maintenance as multiple software is being used in each phase

Time-sensitive documentation is not available

SLA’s not being given importance

No method available to analyze team performance

Pain points of users

Duplicate applications in the system take up a lot of time

Time-sensitive documentation is not available

Manager not balancing workload

KPI’s are different for each team member

Too many calls to the citizen for information and documents

Current stats (avg.)

9 days to register an application

80 days to assign the application

140 days to process the application

40 days to take a decision

30 days to close the application

31,000 applications in backlog (since 2016)

Defining the success metrics (Google’s HEART)

Happiness

Time-taken to respond to a citizen

Ease of task assignment and system usage by ABC

Rewards on hard-work

Open KPI to track performance

Adoption

Ease of task assignment and system usage by ABC

Reduction in backlog of applications

Availability of pro-active data in the system

Number of applications processed in the old system vs the new system

Number of users on the new system

New features usage rate

Task success

Time to complete an application processing

Availability of documents in the system

Document monitoring

Defining the UX principles

Simple

Intuitive

Consistent

User control and freedom

Visibility of system status

Error prevention and cure

How should the system work?

Best practices vs user behavior

Throughout the entire development process, everyone on the team must keep in mind how the app will help the employee do his or her job. It can’t be about making some corporate executive happy, following the latest design trend, or utilizing a new open source library or using the best practices in the industry which ends up taking twice the development time in the critical path. Users of enterprise apps are not there to simply pass the time; they are using the app because it’s their job. So, make it as user-friendly and helpful as possible.

Make the complex, simple

One common reason an enterprise client builds an internal app is to simplify a complex process for its workforce. This means that the design team must fully understand the process as it currently exists, from the easy tasks to the difficult ones. At every step along the way, the app should make the process simpler, faster, and easier for the user.

It should not be the responsibility of only the UX designers that dive deep into understanding the system, but the whole product development team. This will allow everyone, including designers, product owners, developers, strategists, and the client to have informed conversations on ways to simplify and improve the process throughout development.

Performance matters

An enterprise user does the same monotonous task every 20 minutes. Imagine seeing a loader for 5 seconds every time you submit a form or switching the tab every time you land on a page. These things can be annoying to any user and result in reduced productivity. So, the system must be blazing fast and do maximum possible activities in the background. For this, it is also the responsibility of the designer to keep the UI less graphical.

Personalization

Although all users follow the same protocol, they approach to it is different. So, each user has different start points, different ways of interpreting and processing information. If we customize the system according to what every user says, we will end up creating something which is not usable by anyone. So, it is important to give the users the power to personalize the system according to his needs. Keep widget based components, customizable table headers, filters and save the user’s default preferences. This gives a personal touch yet keeps the system consistent.

User training

It is true that an intuitive UI needs no explanation. But, with enterprise users, it is important to explain the hidden features and demonstrate the best way to use the system. After all, it is an advantage that all your users are in front of you. Features like keyboard shortcuts, status based workflows and quick steppers need some user training which can not be avoided. And this is a good time to gather feedback from end users as well.

Crafting the User Persona

Listen carefully

We UX Designers survive on the skill of reading between the lines. While getting feedback from end users, it is important to get conversational with them so that they feel comfortable in sharing unnecessary details as well. This can at times be the key to unlocking the core pain points.

Learn to say NO

Working with big companies usually means working with a big team. This means there are many different people with their goals for the project, different opinions on what should or should not be included, and all who want to make their mark. Don’t be afraid to say no and push back if a request is made that would change the purpose of the app, negatively affect the experience, or would adversely affect the timeline or budget. The priority must always be the user and enabling their workflow.

Every user is different

Despite having the same workflow and same targets, users have their own way of working. Each user operates the system according to his convenience which has formed over the years of usage and the moment you bring a system which is rigid and sticks to the workflow only, you tend to loose a vote. Everything must be bound by a state of the process but must be customizable. Eg. use cards on dashboards, Optional tabs instead of widget navigator, freedom of picking the next work item, ability of prioritize my own backlog etc.

Iterate quickly

Gaining the confidence of your users is the essential success factor to any business. With enterprise users, ensuring you cater to their feedback as quick as possible is the key to this. The users feel important and start taking interest in improving the system. They know someone is listening to their feedback. Of course not all feedback is valid, but the faster you iterate, better is the connect.

You need not change everything

When we are revamping the experience of an enterprise app, we need to understand that we are changing a system which the users can navigate through and user in their dreams as well. They are so much used to everything in it. They know the good, the ugly and the work around. As a designer, we must ensure maximum re-usability of elements from old system, provided this does not hamper the experience. If something was right in the old system, keep it as is, why change for the sake of revamp.