Giving my final paper on Human Computer Interaction in the last semester of my Computer Science Bachelor’s degree, the Director of the University who was teaching that course gave a question. “How has your study of Human Computer Interaction affected your view on Software Engineering?” I replied it has the same effect on me and the science of Software Engineering as Newton’s theory was altered and affected by Einstein theory of relativity. What I meant was that Software Engineering revealed to us a mechanistic, logical and mathematical approach to software engineering, whereas HCI (Human Computer Interaction) taught us that our adept and idealistic engineering principles are rendered worthless for a user who does not understand the effort that went behind the interface that he uses. Usability is all that matters in this new view of software systems and that is where most of the value remains for business users. This view does not write off architectural idealism, functional and non-functional requirements, but promotes user friendliness as the first step in the making of an effective software solution.
A user-friendly interface is one that allows users to effectively and efficiently accomplish the tasks for which it was designed and one that users rate positively on opinion or emotional scales. The science that ensures this is called Usability Engineering. It is an incumbent part of design for mission critical systems. Moreover, Usability Engineering is fast becoming an essential component for Business Value planning when designing Information Systems.
Usability Engineering is a culmination of many disciplines that aid in system and interface design. These include Psychology, Human Factors and Cognitive Science. The pursuit to master this science would require the study of behavioral engineering and statistical inference. Applied behavior analysis is an unexplored world of discoveries that we have embarked upon recently. It carries in it the ambitious aim of understanding how humans perform task and the crux of it all is to generalize system responses by aggregating the relative flux of human factors.
A business analyst carries the bulwark of this examination. Extrinsically he is monitoring environmental and ergonomic factors; intrinsically he tries to determine the cognitive comfort. Thereafter he must do it for all relevant stakeholders. Solution Value Planning, is now far beyond pain area mitigation, value realization, process mapping and usage definition. It must traverse the aggregate demand for user friendliness. Scheiderman Eight Golden* rules address this for software User Interface.
Strive for consistency. As we shall see below, it is important for a user interface to be consistent on many levels. For example, screen layouts should be consistent from one screen to another. In an environment using a graphical user interface (GUI), this also implies consistency from one application to another.
Enable frequent users to use shortcuts. Frequent users (or, power users) may be turned off by overly tedious procedures. Allow those users a less tedious procedure for accomplishing a given task.
Offer informative feedback. Users need to see the consequences of their actions. If a user enters a command but the computer does not show that it is either processing or has processed that command, this can leave the user confused and disoriented.
Design dialogues to yield closure. Interacting with a computer is somewhat like a dialogue or conversation. Every task should have a beginning, middle and an end. It is important for the user to know when a task is at its end. The user needs to have the feeling that a task has reached closure.
Offer simple error handling. User errors should be designed into the system. Another way of stating this is that no user action should be considered an error that is beyond the ability of the system to manage. If the user makes a mistake, the user should receive useful, concise and clear information about the nature of the mistake. It should be easy for the user to undo his or her mistake.
Permit easy reversal of actions. More generally, users must be permitted to undo what they have done, whether it is in the nature of an error or not.
Support internal locus of control. User satisfaction is high when the user feels that he or she is in control and user satisfaction is low when the user feels that the computer is in control. Design interfaces to reinforce the feeling that the user is the focus of control in the human-computer interaction.
Reduce short-term memory load. Human short-term memory is remarkably limited. Psychologists often quote Miller’s law to the effect that short-term memory is limited to seven discrete pieces of information. Do everything possible to free the user’s memory burden. For example, instead of asking the user to type in the name of a file which is going to be retrieved, present the user with a list of files currently available.
These heuristics are time tested to ensure User Friendliness in system responses, other heuristics for Usability Engineering can be found in Jakob Neilsen’s work in Usability Engineering of which the most striking ones are “speak the user’s language” and “aesthetics and minimalist design”.
I have given several presentations to clients in Utilities, Services and Public Sector where I have preached the importance of Usability Engineering and each presentation received applause and appreciation of this essential design principle. The fact that I was prepared in my planning to tackle it made these bids successful. I often explained during such presentations that Microsoft Office has now become a lifestyle rather than a product choice, where we expect the UI of any other program to match that of Office. Many projects in the Public Sector and Defense industry were initiated purely on the rationale that we want our new software systems to be User-Friendly like MS Office is. Furthermore, the importance of usability engineering appears in the hot battles for Acceptance of software solution where most conflicts are about usability.
Trapping relativity into generics is a tough job where businesses are in constant flux but a cognitive stroll during analysis stage can provide the right information for an effectively user friendly interface. The essential questions one must inquire into are Performance, Accuracy in Usage, Recall and Emotional Stimuli.
All of this can be part and parcel of the Analysis Phase of a project where during requirements gathering analysts can capture UI demands of the stakeholders by presenting a prototype or GUI for validation. Users can be classified into behavioral segments based on expertise and usage rate and therefore the UI must facilitate each user’s cognitive comfort. However this may not be possible for high budgets projects which is why the reliance of usability aggregates such has Neilson’s rules or Scheiderman Golden Rules can be examined quickly in the design phase and their GUI can then be derived through the rule’s application. Smart analysts and architects tend to derive two or three interfaces for their company to use for all customers based on the usability rules.
A cognitive inquiry requires adept analysis skills, and the common mistake that vendors commit is to send development engineers to do the analysis. This results in a skewed view of reality as the developers are trapped by their architectural idealism at the expense of realistic business necessities.
A professor at IBA once mocked us Software Engineers saying that “you are one who has his face towards the wall and the back towards the society”, a prophetic determination of the bane of this industry. It is the total lack of human value appreciation in system design that makes most projects run into conflicts during acceptance stages.