|
|
|
|
|
| As the density of digital devices in our environment increases, the amount of attention the user can allocate to each necessarily decreases. As such, those devices must become increasingly "intelligent" in order to anticipate and solve the user's problems with greater levels of self sufficiency. Likewise, as the variety of device form-factors increase the applications must take upon themselves a greater burden to adapting to local user interface conditions. |
|
>
|
Device Density: The proportion of computers to users has been steadily increasing from "1:many" in the days of mainframes, "1:1" in the PC age, to "many:1" with the advent of web-based computing. This trend will continue, increasing the proportion to "many:many" as users personally own and cooperatively share huge numbers of devices distributed throughout the environment. |
|
>
|
Context Sensitivity: Existing devices make the primary assumption that when they are in use, they have a monopoly over the user's attention. The inaccuracy of this assumption will only increase over time, and will impose upon devices the need to intelligently recognize the user's needs and wants with less direct attention from the user. Thus, devices will need to become more "sensitive" to the context of the user to be effective. |
|
>
|
User Interface Flexibility: As hardware technology continues its inexorable trend of jamming increasing amounts of computing capacity into smaller, cheaper, and more robust form factors, the variety of device shapes and sizes will continue to grow. To cope with this diversity, applications must accept the burden of adapting their user interfaces to local conditions, rather than requiring developers to anticipate and customize every possible configuration. |
|
|
|
| Of the many ways to stratify the evolution of computing, one useful analysis is based on the relation between the number of computers to the number of users. This analysis is given below: |
|
>
|
Age of Mainframes (1:Many): When the original mainframe computers came onto the scene many years ago, there was a single computer shared by a great many users. Given the intense competition amongst users to gain access to the mainframe, users found it acceptable to overcome a steep learning curve and put up with a great deal of inconvenience. |
|
>
|
Age of Personal Computers (1:1): Advances in technology eventually made it possible for each user to have her own computer. At this point, it was practical to put computing technology in the hands of the less technically-savvy. However, doing so required that the computer applications be easier to use, more reliable, and more forgiving of novice users. |
|
>
|
Age of Web Computing (Many:1): With the advent of Web-based computing, each user suddenly was able to access a huge numbers of computers over the Internet. Due to these Web interfaces being accessed on a huge variety of computers, HTML was used to abstract the server-side application from the client-side user interface. |
|
>
|
Age of Ubiquitous Computing (Many:Many): The next, and possibly final stage, will be that where every computer has many users, and every user has many computers. Unlike Web applications, where each user is given a separate user interface with which to interact, ubiquitous computing devices may have to deal with many users through the same user interface. |
|
| Throughout all of these stages, several trends become evident: |
|
>
|
Capability: The most obvious trend deals with improvements to technical capability over time. As users become more advanced, hardware gets cheaper, and software becomes more simplified, what was once of prohibitive expense becomes practical. |
|
>
|
Simplification: While users learn to cope with complexity very slowly, technology produces new features very quickly. Thus, the one way to introduce new features to a novice user base is to simplify the product as a whole. |
|
>
|
Competition: At every stage, customers have a wider selection from which to purchase their hardware and software. This trend tends to make competition become less a matter of superority in technical capability, but of the product as a whole. Thus, non-functional features such as reliability, usability, and accessibility become increasingly compelling. |
|
>
|
Standardization: Over time, greater amounts of technology becomes standards, de facto or otherwise. As technology gets more advanced, the need for general compatibility outweighs unique optimizations for speed, efficiency, and so on. |
|
|
|
|
User Interface Flexibility
|
|
|
|
|