Someone once asked what my “philosophy of UI design” was. While I certainly have a guiding “philosophy,” until then I hadn’t really thought deeply about it. While it sounded like a mildly pretentious question, I decided to spend some time articulating the principles and ideas that guide my approach to software product, user experience and user interface design.
First and foremost design is about solving problems. Software product design specifically is about solving problems for a user with software, the business providing the software and others that may be party to the process. While UI design is not simply about pretty pictures and visual elegance, in many cases, visual aesthetics can be an important part of the solution you’re trying to craft.
Beyond this general foundational belief, I consider the following principles or “pillars” to be central to my design approach.
Empathy and Respect
Perhaps the most important thing in design is the need for empathy, specifically empathy for the user of the tool being designed. Trying to understand things from the user’s point of view…to put one’s self in their shoes (so to speak)…is vital to crafting solutions that truly support and help them. Along with this idea of empathy is showing the user respect. It means we respect their skills, intelligence and needs. In a real way, we are building a relationship with the user and successful relationships are built on a foundation of respect and enriched through sincere empathy.
Identifying and understanding context is vital to designing effective solutions. Context can include many factors that affect a design. It can include the devices that are used (e.g., smart phone, tablet, computer, kiosk, etc.) It can include where and when a person will be using the product. It can include understanding the user’s mental and emotional states when they are using the tool. Context is all of the surrounding forces and constraints that one has to honor and design within to be truly successful. Failing to understand and work within the context of the particular problem and usage scenarios risks producing a great product that simply fails in the actual circumstances and cases where it is actually used.
I used to consider simplicity to be a key principle of good design but I’ve come to realize that more important than simplicity is clarity. While clarity often comes as a result of simplicity, it’s really a higher standard to strive for. It also helps guard against supposed “simplicity” (often expressed as spartan visual designs) that, in reality, makes things more complicated for the user by sacrificing clarity. Often a design that appears more complex at first glance actually has greater clarity for the user. Clarity helps us sweep away the non-essential and stay focused on behalf of our expected user.
While it’s possible to create successful, effective and perfectly functional and useful designs that are not beautiful, my feeling is that beauty is a characteristic of great designs. It’s important to realize I’m not speaking about beauty for the sake of beauty, but beauty in tension with the other factors mentioned here and all constraints on the solution. But I don’t believe beauty should be forgotten or ignored. Beauty, even (maybe especially) in a software product, is something that makes life more full, interesting and pleasant. Furthermore, the beauty I speak of is not just about the visual aesthetics, though it includes those, it’s the beauty of the overall design and solution: the flow, the interactions, the clarity, the perfection of the fit of the solution to the problem and the user.
While we always strive to get things right out the gate, it’s nearly impossible except for the smallest and simplest problems (and maybe not even then). Instead it’s important to understand that software is soft…it can be changed, evolved, iterated and improved…continuously. Obviously what continuous means precisely will depend on the specific circumstances of the software, technologies, software provider and the users. It could be daily, weekly or longer. The point is that it’s valuable to think about design as a process that can improve products over time rather than waiting until everything is “perfect” (whatever that means) to release.