User Interfaces – A Developers Responsibility
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?”
Group #2 – “Cramming in more features and functionality is more important.”
Group #3 – “The interface is the functionality”
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.


Comments
Leave a comment Trackback