Introduction

Since the early days of interactive computers and complex electronic systems of all kinds, we the human users of these systems have had to adapt to them, formatting and entering information the way they wanted it, the only way they were designed to accept it. We patiently (or not) interacted with systems using arcane user interfaces, navigating voice menus, reading user manuals (or not), and suffering continual frustration and inefficiency when we couldn't figure out how to interact with systems on their terms. Limited computing resources meant that human users had to deal with inefficient user interfaces, strict information input formats, and computer systems that were more like finicky pets than intelligent assistants.

Human activity systems of all kinds, including businesses, organizations, societies, families, and economies, can produce equally frustrating results when we try to interact with them. Consider the common frustrations of dealing with government bureaucracies, utility companies, phone and internet service companies, universities, internal corporate structures, and large organizations of any kind.

At the same time, dramatic and ongoing increases in computing speed, memory, and storage, along with decreasing cost, size, and power requirements have made new technologies like artificial intelligence, machine learning, and natural language understanding available to all systems and software developers. These advanced technologies are being used to create ...

Get Engineering Intelligent Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.