Things We're Thinking About

Empowering Users with UI Design

Good user interfaces (UI) are a vital component of great software applications. It is not enough to have great functionality on the backend. After all, UIs are the human-computer interface. If you don’t get the UI right then the entire system will be wrong…regardless of how clever the code is.

Some developers struggle with this concept. Have you heard the joke about the introverted vs. extroverted programmer?

“How can you tell an introverted programmer from an extraverted programmer? The extroverted programmer stares at YOUR shoes when he is talking to you.”

While the joke is humorous, it illustrates how disconnected some developers are with the people that use the software they build.

Developers that are also skilled at UI design are rare. As such, it is almost always beneficial to get a designer involved in the UI development. The designer can focus on appearance and usability and not worry about anything else.

So how do you design a good UI? Answering that question is a challenge since much of design is subjective. My daughter’s favorite color is pink and my son’s favorite is black. Which one is correct? They both are since it is a matter of personal preference. The definition of good UI design is also somewhat subjective. Some people like dark backgrounds when using computers so they don’t feel like they are staring at a light bulb all day. Other people find that dark backgrounds are depressing and they prefer light colors. Once again, both groups of people are correct since it is a matter of personal preference.

This begs the question, how do you choose the correct UI design for an application when people have different tastes? One option is to let the people choose. Here is a process that accomplishes that:

  1. Build light, dark and medium themes for your UI.
    UI themes
  2. Make it easy for your users to choose the version they prefer. This allows each person to use the UI that is right for them.
    UI themes

For my fellow geeks out there, the ability to switch between themes at runtime was achieved by setting stylesheet references at runtime. The technology used was XHTML, CSS, JQuery and MVC.

There are many other factors when it comes to UI design besides color themes. This article only scratches the surface. If you want to dive deeper then visit

Here are some helpful links:

Power to the people baby! Enjoy.

–Dan Crowell