Limitations on (G)UI Design because of Reality
The GUI engineer does not have complete freedom to create user-interfaces
that are "best" suited for the intended application:
- standardization:
Most users frequently use several applications on the same computer
platform (and often on the same machine).
In order to reduce learning time, modern window systems come with
guidelines for creating user-interfaces with a common look and feel.
Most window systems come with guidelines for creating user-interfaces
with a common look and feel.
The standard describes button placement, menu organization,
layout of windows, dialog boxes, etc.
Follow this link
to a few examples for Windows'95.
- cross-platform development:
Platform-specific standards make it difficult to develop uniform
user-interfaces accross multiple computing platforms.
Some user-interface building tools are able to generate code for
Macintosh, Windows, and Unix (usually with Motif) from a single source file.
The resulting user-interfaces conform to the guidelines of each platform.
This implies that these user-interfaces look (and feel) different on each
platform.
A consequence is that users who are familiar with an application on a
specific platform are not immediately proficient in using that same
application on a different platform.
Cross-platform development tools make writing for different platforms
easier, but using the same application across platforms more difficult.
Java is a cross-platform development platform, but does not make
user-interfaces obey platform-specific guidelines.
- consistency:
Throughout an application, the user-interface should maintain a consistent
look and feel.
This includes placement and handling of menus (also popup menus),
layout of windows, buttons and icons, fonts, etc.
Maintaining consistency across different versions of an application may
be difficult.
Java makes it easy to develop user-interfaces that are consistent
on different platforms, thereby ignoring platform-specific style guides.
- schedules and budgets:
A system, including its user-interface, must be completed on time and
within budget.
If a system is too costly, cheaper alternatives by competitors may gain
market share, even though their product may be clearly inferior.
If a system cannot be delivered in time, customers may turn to other
products that may be inferior but that can be delivered.
Proper attention to usability issues right from the start of the design
process and rigorous and repeated testing early on often lead to faster
and cheaper development by requiring fewer changes late in the development
process.
- reliability and user acceptance:
Using a computer application can often feel like playing in Las Vegas:
the user-interface looks jazzy and blitz, but using it seldom produces
the results you are hoping for.
A user's trust in a computer program is inversely proportional to the
frequency of fatal errors, major data loss or other undesired results.
Sadly, software and user-interface quality has decreased dramatically
over the past years, especially on the cheapest and most popular platforms.
Users have become so used to fatal errors in applications and operating
systems that they are becoming willing to accept poorly designed and
implemented software.
When you follow all the advice from this course the negative aspects
of your user-interfaces that clearly stand out should be the bad
design elements which you must implement because the platform-specific
style guide requires them.