sword in the stone   Hayne of Tintagel
HCI  /  Software Engineering for Usability

Software Engineering for Usability

Prev section Next section Top of document

1. Introduction

The human-computer interface (or "user interface") is often the single most important factor in the success of a software project. A program can be (potentially) useful but if it is not sufficiently usable, it will not be used. Usability is increasingly seen as being marketable, and the benefits of increased usability have been shown to far exceed the costs.

The user interface code is often more than half of the whole code for a project and takes a comparable amount of development effort. (Myers and Rosson 1992).

Yet user interface development is often haphazard and regarded as unimportant. There is a well-developed field of study called "Human-Computer Interaction" (HCI) but the specialists in this field are sometimes regarded as mere nuisances who get in the way of "real" software developers. There are a wide variety of development techniques that have been shown to lead to more usable programs, but these methods remain under-used. User interface development is seldom allocated sufficient time in the crucial early phases of the development schedule. There is a need to educate all programmers about HCI issues and to integrate user interface development into the wider software development process.

This document reviews the state of the art in HCI development processes, with pointers into the recent literature. The later sections provide some details on basic structural problems that often prevent effective use of HCI methods in the software development process.

Prev section Next section Top of document