How to Solve Legacy Issues and Improve UI/UX
When it comes to UI and UX design, we tend to rely on particular patterns which are most likely to be intuitive and recognizable, to make sure that users can quickly find their way in a new application. But sometimes, especially when dealing with enterprise software, UI and UX designers need to overcome a long series of legacy issues that make it truly difficult to create an intuitive interface which is easy to operate.
Before we dig in and define such issues as well as talk about solutions, let me tell you something about legacy problems and the ripple effect these might have across space and time.
How The Size of a Horse’s Rear End Became a Source of Design Constraints for the Space Shuttle
I’d like to share a short story on how a decision made in Rome, based on the size of a horse’s behind almost two thousand years ago defined the design of one of the most advanced objects our civilization has ever built.
The Space Shuttle carried people to outer space for over a decade. It definitely was an engineering miracle that took years of research and development. It was one of the most complex projects and one of the most important machines ever built which definitely required the most advanced technology of that time.
But did you know that the engineers had to compromise on the size of the two booster rockets that were connected to the central fuel tank? They wanted to have larger SRBs (solid rocket boosters) but these components were manufactured in a production plant in Utah and had to be transported to the launch site by train.
Along the way, there was a tunnel and, obviously, the freight train carrying the rockets had to fit in there.
It would have been great if the tunnel had been wider but the size of the tunnel was determined to be a bit wider than the track.
The gauge of the railroad tracks (distance between rails) in North America is 4 feet 8 ½ inches. This random measurement was adopted in North America following the way British people used to build their railroads.
The railroad gauge in Great Britain was in turn linked to tramways and their wheel spacing because the same builders who worked on tram cars and rails also built the train tracks.
Interestingly enough, that wheel spacing had previously been determined by old wheel ruts that were present on old long distant roads.
Such old rutted roads that connected important towns were built in Europe by Imperial Rome to move troops and facilitate their expansion.
The ruts they created on the roads matched the spacing of the wheels of their war chariots which had the same size.
And such spacing, in turn, derived from the fact that their chariots were pulled by two horses that would have had to be next to each other.
The size of their behinds (their wider portion of their bodies) influenced the size of the chariot, which determined the wheel spacing, the spacing between the ruts, the wheel spacing of trams in the UK, the gauge or the railroad track in North America, the size of the tunnels along the way from Utah to Cape Canaveral, and ultimately the size of the booster rockets of the Space Shuttle.
Specifications created in a different millennium have a direct effect on our modern technology.
The size of a horse’s behind and ancient specifications represented major constraints for modern engineers in the 70’s of the past century who designed one of the most advanced transportation systems to date.
That’s a great example for all the legacy issues we’re confronted with on a daily basis without even knowing!
Enterprise Software and Legacy Issues that Lead to Poor UI/UX
The most precise and clearest user interface for software is the command line.
Do you agree with me?
Think about it: no confusion, no panic, no misunderstandings…You know what you want to achieve, you type the command, and the machine does exactly what you expect it would do.
One single choice. One single step. You always get exactly what you ask for.
The problem with such interfaces, though, is connected to usability. Arguably, the user experience flow is great but to work in such an environment users need to learn the commands and the syntax they need to use to instruct the machine.
Once users are knowledgeable, the experience is then flawless, but it takes time to get there. Usability and accessibility are important concepts that allowed almost anybody to be able to learn how to interact with machines. A two-year-old now can launch Youtube on a tablet computer, scroll, and start a Peppa Pig video basically without the supervision of an adult (which I definitely wouldn’t recommend! :D).
Can you imagine the same process through a command line?
How many commands would you have to enter to connect your machine to the internet, reach Youtube’s servers, access their database, find Peppa Pig, get access to one episode, and start the streaming process?
UI and UX designers are helping us interact with machines through simpler UI that don’t require us to learn any commands to operate software. We can use intuitive gestures (which differ from device to device) to access features and functions.
UX/UI Design and Constraints
Most of the software we use is tested thoroughly and each user experience journey is mapped carefully to avoid uncertainty and frustration.
Nonetheless, constraints often limit the scope of action for UX and UI designers who’d be willing to follow precise user experience key principles but can’t.
Such constraints sometimes derive from the sheer complexity and functionality of a specific application, other times, though, these might be connected to legacy issues.
We work with icons, windows, and folders because of the very first GUI created by Xerox for their Star 8010 operating system which was the inspiration for Windows, MacOS, and all the other graphic user interface solutions that followed.
People are familiar with such concepts because we’ve been working with these user interface elements for over thirty years.
But issues often arise in other areas as well. And the design of enterprise applications often lags behind when compared to consumer software.
There’s a major difference when it comes to designing the user experience for consumer software versus mapping a pleasant user journey for enterprise software: the user persona.
Target Users and UI/UX Constraints in Enterprise Applications
In the case of consumer software, designers create a user experience framework and define key design principles based on user experience surveys and tests. UX designers get to know their end users like the palm of their hand and create the perfect user experience based on their needs.
On the other hand, enterprise software is sold to corporations that choose applications on behalf of the end users. Target users and end users often represent different examples of user personas.
User Experience and Complexity
Another issue that affects usability and user experience in enterprise applications is connected to the much broader scope and level of complexity they involve.
The experience, instead of being created for one single user in one single sector is mapped and designed to accommodate as many use cases as possible in as many sectors as possible.
Difficult ERP software solutions have to take into account so many use cases, that simplifying the main structure of the software itself seems impossible. Especially due to the incredibly high amount of choices and options users are given within the UI of a software solution.
Backward Compatibility and Familiarity with the User Interface
In some cases, software companies aren’t able to dramatically revolutionize the user experience flow within their applications simply because of backward compatibility, or familiarity.
Windows 8 came out without its characteristic toolbar and start button and that seemed like a smart choice since people had been complaining about that feature for years. But they had to bring it back with Windows 10.
Internet Explorer will coexist with Edge for a long time because of the large amount of enterprise customers who still have versions of Windows with outdated versions of Internet Explorer.
Old players in the market often face more trouble when it comes to radically improving the user experience flow because of familiarity. Their users expect things to change and improve, but at the same time they don’t want things to be completely different because that would require them to learn how to deal with a brand new user interface from scratch.
Think of Adobe Photoshop and other applications which have been in the market for such a long time. They can update their UI and improve the user journey by tweaking things a little bit, but new players in the market, like Sketch can come in with a completely different solution.
Their UX, in this case, might even be better and their users would always be fine with that because they can’t compare their experience in past versions.
UI/UX Customization of Enterprise Solutions
Another issue that automatically leads to even more complexity in Enterprise solutions is customization.
Generally speaking, complex enterprise software applications are designed to accommodate customization so that specific processes that companies put in place can be perfectly represented and mirrored within the system.
This leads to more complexity as the software will end up looking in a completely different way in every company it is implemented. Think of specific SAP modules and customized elements in Oracle and such. Every implementation is different, and this forces companies to customize software training to make sure the learning experience is fully customized.
Customization is notoriously linked to complexity, which is also tied to the need for a tailored learning experience. Some software solutions are very famous for their customization. This lead to the creation of customizable, in-app Jira software training or any other form of continuous performance support in general.
Enterprise software doesn’t work as a stand alone solution. It exists in a complex ecosystem that involves additional infrastructure which very often includes components which aren’t up to date.
In many cases, the company might even lack the internal know-how and skills to update and deal with an outdated technology because all the people who had previously worked on the implementation project no longer work there anymore.
Legacy systems often limit scalability and lead to higher maintenance costs because other solutions in the same ecosystem have to work despite the obvious limitations.They also need to be compatible with outdated solutions.
Sometimes, legacy issues in large corporations derive from regulations and are therefore connected to compliance.
I remember a case I personally saw, in which a company had to maintain old machines that still worked with MS-DOS compatible software because of reporting issues. The public institution the company had to digitally send reports to only allowed connections that worked with an old protocol. Such protocol required old software.
Needless to say, legacy systems, on top of generating problems with scalability, also create problems with security and usability.
Companies often follow the rule, “why fix it if ain’t broken?”. And that’s especially true when it comes to applications or machines that cost a lot of money. That’s why old institutions for research still use microscopes that are connected to machines running on Windows 95 and the same holds true for Government agencies, airlines, power plants and so on.
Legacy systems also increase ownership costs as administrators often have to manage multiple overlapping systems at the same time once they have to maintain old and new applications at the same time.
Changes in Processes Occur Faster Than Software Updates
Another reason why enterprise software solutions often present problems connected to usability and user experience is the fact that processes move very fast, while customization of the system is sometimes delayed.
In many large corporations that go through digital transformation, processes become a lot more agile and automation spreads throughout the entire organization.
Such dynamic changes need to be mirrored in software processes, but, as it often happens, this might require more time.
And until our software applications are finally ready to accommodate the new procedures, the overall experience will suffer, and people will have a hard time working in such an environment. And solving such a problem might take time, especially due to the complexity of software implementation plans.
Stability and Security
Another reason why enterprise applications often suck goes back to the typical mentality in large corporations.
While younger and smaller companies might be a little bit more prone to risk, large corporations tend to look for secure and stable solutions to recurring problems.
The complexity of software is often defined in terms of number of lines of code.
If you compare the code needed to operate a military jet fighter, a Boeing 747, and an average Toyota Camry, what software do you think is more complex?
Surprisingly (for many) an average Toyota incorporates 100 times more lines of code than an airline plane and 1,000 times more lines of code of a modern jet fighter. Why?
Because of the millions of systems that a car includes for comfort. A jet fighter is a mission critical piece of equipment. It costs a lot of money, its deployment is connected to incredibly delicate operations, and to the lives of several people involved in the mission.
The more complexity you introduce the more likely the system will fail. Stability is priority number one. The code is simply repeated multiple times to introduce redundancy if something goes wrong. But requirements are kept to a bare minimum.
The situation is completely different when it comes to the entertainment unit of your car. The more the better! No matter how prone to failure the system in the long run is.
The same applies to enterprise software. Being fancy is not the key priority here. Every minute of downtime costs millions for the companies where the software is implemented.
Stability is the number one priority.
The Impact of Legacy Issues on Company’s Performance
As explained, legacy problems limit scalability, increase costs, reduce security, and negatively impact usability and employee experience.
The poor user experience in complex enterprise solutions often reduces performance as employees have a hard time figuring out how to use software properly to achieve their goals.
In this case, for companies:
- It becomes more difficult to scale and automate training
- It is impossible to rely on employees who are capable of dealing with the software stack implemented by the company from day one
- Software adoption becomes an issue as training needs to be customized
- Costs skyrocket as firms need to continuously training and retraining people on old and new software applications
- It becomes hard to offer a smooth employee experience when staff can’t accomplish their goals due to limitations brought in by their lack of knowledge
How to Immediately Improve the UI/UX within Enterprise Applications and Improve Performance
Poor usability and limited performance in enterprise applications? That’s where in-app continuous performance support comes in. There are many ways in which companies are trying to solve the problem of software adoption and training.
On-screen performance support is the way most large corporations chose to bypass the problems connected to poor user experience and performance in enterprise software applications.
Read more in our past article How to Boost Employee Productivity with Interactive Performance Support.