Some of the older readers might remember software development in the 20th century when end-user interaction with computer was performed using 80×24 characters terminal screens where the definition of user experience was making sure that your F(unction) keys were properly standardized across the screens. Does anyone still press F1 for help today? At least there are still these “Fx” keys on the keyboard. Those were days were one of the last thing you wanted was that somebody put his (obviously greasy) finger on the screen;O)
Today’s user interface and user experience designers are faced with different challenges as applications might have to work on tiny mobile screens or 27′ high resolution monitors. People speak about intuitive user interfaces, but I am a little bit dubious about the “intuitivity” as we see also some fashion influencing interface design. The first users of a mouse didn’t know how to handle it. In those times there was still an actual ball in the mouse to track its moves and some people were using the mouse upside-down, making the ball move with their fingers. Today, the existence of hidden scroll bars in some applications like Facebook or Rdio seems also to have little to do with intuition as I my mouse pointer meanders on the screen to locate where the actual scroll bar could be… if there is one. It might be one of these “you know that you are old when…” things. The point is that there is often training and habits on how to use software than intuitivity. This being said, some screen designs work better than other for specific task or devices.
The multiplication of screen sizes forces the developer to make choices, sometimes displaying different applications subsets on different devices. Some applications might be driven with one thumb, but accountants could prefer keeping their finger on a numeric keypad. I don’t think that Apple accountants use an iPhone for their activity, even if there are some rumors that they are very creative with it ;O) Two good consequences can derive from this situation: the necessity to give more importance to the user vision of the user experience and the increased need to separate the user interface logic from business logic due to multiple interfaces for the same back-end services. These two global activities, user experience and software architecture, could be challenging to integrate in an agile software development approach that sometimes focuses mainly on the next iteration results. They are however major components of the long-term success and health of your application.