The user interface (UI) is the overall design that shows how the different parts of a system work and how they fit together. If you don’t have a UI that people understand and like you are setting the project up for failure. Would you start building a house without knowing its floor plan? Without a good floor plan you’ll create a house with rooms that make no sense and hallways that go nowhere; most of what you build will have to be replaced. The same is true for application systems.
This fact came home to me again (even though I thought I already knew it) on a project in the last several weeks. For the first version of the system there was a good UI designer on the team and he came up with a design that the rest of us tweaked here and there and it guided the programming work. It enabled creation of a simple, easy to use system. Then the UI designer left the project, but the other members of the team assured me they understood the UI and knew how to extend it to include additional functions that were going to be added in the second phase. It turns out that good UI design is not something everyone can do; it isn’t as easy as it looks, and without a good UI the system will be a failure.
Good UI Designs are Intuitively Obvious and Deceptively Simple
Good UI design fits the work to be handled by an application system so well that anyone who knows something about the work can begin using the system after a quick introductory overview (about 15 - 20 minutes) and they can learn the rest of the system as they go. Bad UI design requires lots of documentation and lots of training and people make excuses for bad design by claiming the work is complex and insisting therefore that system users need lots of training. I don’t buy that argument.
What that argument really proves is that good UI design is hard. Good UI designs have a deceptively simple quality about them. People see them and understand them quickly, so they think designing itself is easy. Many people fail to grasp that “easy” is the result of lots of work and rework and lots of refining and simplifying.
Good UI starts by first finding the simple underlying patterns that make up the work to be done in an application. At first, many tasks seem complex, but that’s because we confuse complexity with what is really variations on a few simple themes. So until you find those simple underlying themes or patterns you can’t create a good UI.
The developers on the second phase of the project tried to make up the UI on the fly as they went. The UI they created was overly complex and hard to understand (because they hadn’t found the simple underlying patterns of the work), so as a consequence the application they created was overly complex and hard to understand. And because the application was overly complex the code to implement the application was full of bugs; and even as we got the bugs out it was still a headache inducing experience to use because there was no natural flow to the way the system worked. It was just an arbitrary sequence of commands and complex screens – its use was, to be honest, an unnatural act.
Without Good UI Design the System Sinks into a Morass of Complexity
Complex UI, complex code, complex training - those ingredients combine to create an infernal dynamic that begets more and more complexity. When you see this infernal dynamic of complexity take hold on a project it’s time to take a deep breath and step back and pause. Continuing to struggle with this dynamic of complexity is like struggling in quicksand; you will only get yourself in deeper the more you struggle.
The team was reluctant to abandon what they had done and the client was reluctant to write off the time and money invested, but it became clear that no amount of effort was going to salvage the overly complex code and painfully difficult to use system. We wound up having to make the hard decision to completely abandon two months of work and go back to the first version of the system and start again. Ouch… what a waste of time and money.
So the next time you sit down to work with an application system where the UI is simple and intuitive and easy to use, don’t make the mistake of thinking it was easy to design. Instead ask who the UI designer was and see if you can get that person or someone like that person on your next project. Good UI designers are hard to find. And without them your development project will not be the success it could be (if it’s a success at all).
[ My newest book is Business in the Cloud: What Every Company Needs to Know about Cloud Computing ]