I’ve recently had many discussions with numerous developers about the importance of fluid, aesthetically pleasing and functional user interfaces. While there are many opinions and trains of thought on the subject, I’ve tried to categorize them into three discrete groups.

Group #1 – “Whats the point? Why do you need your application to look good?”

This group of people feels that all that matters is the functionality, not how pretty the user interface is. They value bare bones over beautification. The OSX, Windows 7 and Compiz interfaces only distract from the simplicity of the boxy windows 3.1, original X Window System, etc. This group generally considers the interface a waste of resources and not worth their time.

Group #2 – “Cramming in more features and functionality is more important.”

This group of people appreciates aesthetic value, but usually feels it comes second to features and functionality. To them the user interface is not really a feature but more a beautification, and certainly not something that developers should worry about. It is better for a developer to spend all of their time fixing bugs and implementing functionality, and letting someone else worry about the interface.

Group #3 – “The interface is the functionality”

This is where I fall in. This group recognizes that the end user is not necessarily a developer, and places a high value on aesthetic beauty. We care about choosing the best algorithms and architectures and providing the most elegant solutions just like the other groups. However, we recognize the end user doesn’t even know what these things are and therefore only cares that the application is at least easy to work with, and at best fun to use.

Rebuttal for Group #1:

Let us look at the monumental success of the iPhone. It lacks many things including multitasking and until recently cut and paste! Yet despite these deficiencies the iPhone quickly gained an ever-growing religious following.

This enthusiasm has spilled over into the iPad domain. To me the device is highly crippled relative to the tablet PC’s I played with over 8 years ago. Yet Apple has apparently managed to sell one-hundred and twenty thousand units in one day with 99% of those orders coming from those that have never touched the device.

How is all of this possible? It is because despite missing functionality, the iPhone has a fluid, simple to use, aesthetically beautiful interface. People expect the same from the iPad, so they flock to it.

Rebuttal for Group #2:

What people in this group may forget is that the aesthetic value of a product may have a huge impact on usability and functionality. If someone can’t find your feature, they certainly aren’t going to use it no matter how great it is. Now imagine a text editor that perfectly corrects your grammar, spelling, etc., 100% of the time. If the interface consists of dark navy blue text on a black background, it will be very difficult to see and therefore people aren’t going to use this feature for very long. Present 80% of the functionality with a fluid interface and it shall be used. Again, drawing from the example of the iPhone, less functionality presented in a easy to use and fluid interface will be appreciated more than insane functionality that is impossible to use.

Koodos for Group #3:

Being a member of this group I am obviously biased, but I am perplexed as to why more people don’t belong to this group. Creating scalable, efficient, flowing beautiful interfaces requires a great deal of technical skill. One must choose the best design patterns to separate the interface from the logic, select the best data structures and protocols for efficient data lookup and retrieval, and implement the right algorithms to provide a smoother interface.

Compare the stock Android UI with the much smoother HTC Sense interface. Despite having the same or lesser hardware, most people find the HTC Sense interface to be superior. Put on a custom firmware and even the stock HTC Sense is beaten. This is made possible because of better algorithm selection, quality design, and artful development.

To support rich interfaces in the web 2.0+ era, HTML, CSS and JavaScript all need to interact with each other in a world of slow JavaScript interpreters and incompatible browsers. The success of toolkits such as Ext JS is testament to the talents of its developers. The toolkit has a well designed API making it easy to integrate with. And beneath that API is a collection of very efficiently written logic that achieves great performance across all browsers on all systems.

Conclusions

As software developers we should always keep the end user in mind. We should do what we can to become more aesthetically aware, and show pride in our polished interfaces. Our end users will thank us for it, and a happy customer is a repeat customer.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Reddit Post to StumbleUpon