I believe a lot of great things can come from software with a well designed UI. Software can be successful with a poor UI but don’t expect it to hold any water for any length of time. And don’t expect people to associate that brand with quality products.
This leads me to my first and possibly most important point. Well designed UI gives the impression of quality, regardless of its actual quality. Your application may not do a whole lot and it may be pretty buggy but if it looks cool, people will notice and remember the cool part before they remember the bad part (assuming of course it’s not too buggy). The driving force behind what people will remember about a user experience is what stands out the most. What are people more likely to remember about an application? One that was innovative and engaged a user and also had a error or an application they’ve already seen that had a error?
Great UI improves the productivity of the users of your application. Take the ribbon control developed by Microsoft for the office suite of products. A lot of people complained the first time they started Word or probably more so, Excel, myself included. But wow, what a productivity improvement by being able to access so much functionality with no more than two clicks of the mouse. Previous versions of office required you to dig into the menu bar and open dialogs to get at the same options often resulting in 2, 3 or 4 times the number of clicks to achieve the same task. A well designed UI presents the most commonly needed information and tasks in easy to find places. The more important a piece of information or task, the larger it appears the user.
A well designed user interface can improve the actual quality of code and overall application to reduce bugs and errors. There is nothing inherent about an intuitive user interface that improves it’s quality but the software patterns used to implement the design can absolutely have a positive impact. I hate to delve into a specific technology but contrasting Winforms and WPF provides an example of how quality improves with better UI. Winforms does not lend itself to a great user experience. It’s nature of fast application development tends to focus on getting an application running rather than a memorable user experience. WPF can be implemented identically to Winforms, rapidly and without thought to user experience. But it can provide so much more. WPF lends itself to be implemented very nicely with a Model-View-Controller, Model-View-Presenter, Model-View-ViewModel or similar pattern. The benefits of using one of these models, or one similar, are well documented but most importantly for this conversation allow for ease of unit testing.
An interesting component to quality software UI design is the consideration of touch. As mentioned earlier, the most important information and functions of an application should be easily accessible. Further, the more important the function or piece of information, the larger it should be presented to the user. This is especially important in a touch application in which a user interacts with the software via a finger press. A finger is significantly less precise than a mouse resulting in less accuracy when a user tries to access functionality in the application. Thus, in order to make sure the most common functions are as easy to access as possible, they need to be sized relatively larger so that they provide a large enough surface where there is no double about what function the user is going after. Less important functions can therefore be smaller as they are used less often and thus require less space. The advent of Windows 7 suggests that all applications should consider touch during their development as the latest operating system from Microsoft adds native touch to all applications, whether or not they were designed with touch in mind. Considering the many parallels between application development of touch vs. non touch applications, this is almost a given and presents a strong case for developing applications for touch, whether or not it is intended to be used in one.