If we are going to build better tools, how do we know what tools to build? Before we can even start designing a user interface, we must know something about what it interfaces, about what will be on either side of that interface between the software and the user. We do not have to know everything, but we do need answers to a few basic questions:
• What will the users of this software be doing?
• What will they be trying to accomplish?
• What do they need from the system to accomplish it?
• How should the system supply what they need?
As we develop a system and it evolves through successive refinements or releases, we are also interested in the answers to some additional ...