Computing technology has progressed through a repeated pattern of breakthroughs in one technology, leading to its playing a key role in initiating a new generation. It is time that we provided foundations of engineering human-computer interaction (HCI) as explicit and well-founded as those for hardware and software engineering. The human-computer interface is increasingly the major determinant of the success or failure of computer systems.