Document-Centric Computing

In the last section, I mentioned what some of Microsoft's future plans for OLE are at the time this book was written. In this and the next section, I offer my personal views of where we're headed with OLE. I cannot guarantee that Microsoft will pursue these ideas, but I believe that the ideas are a big part of the overall vision of OLE. This section discusses document-centric computing, in which users focus on their tasks instead of on applications. The final section of this chapter, and the book, concerns component software from a more general perspective.

In our discussions of OLE Documents, especially regarding in-place activation (Chapter 22), we saw that the primary purpose of compound document technology is to create a more document-centric computing environment. What OLE offers today is well along this path: through the Insert Object dialog box and in-place activation, end users never have to leave the document they're working on to incorporate a different sort of content into that document. The necessary tools come to the document instead of pieces of the document going to the necessary tools.

The reason why the document—and keeping the user focused on it—is so important is that a document represents a task. As I'm writing this chapter, I have a manuscript document open in a word processor. My current task is to write this chapter, not to use a word processor. The chapter document that I'm looking at is my task. No matter what I need to do to complete my task, document-centricity means that I can stay in the context of the task—that is, in the context of the document. If I needed to insert a type of content other than text, I could invoke the Insert Object dialog box, choose a content type, and have the necessary tools for creating that content show up in the document. You can easily imagine that the text I'm writing is itself simply one kind of content and that the container application is nothing more than a sophisticated shell for any type of content that you might want to place in it.

The Insert Object dialog box is an interesting piece of user interface. What it does is allow the user to specify an intention. When you choose an Equation type or a Sound type or a Chart type from the list in the dialog box, you're saying, "I want to create an equation" or "My intention is to now create a chart and place it at the insertion point in the document." The Insert Object dialog box is designed to help a user automatically map his or her intentions to the right tools to fulfill those intentions. Throughout the whole process, the user is focused on the document (the task) and its contents (the subtasks). Without Insert Object, the user would have to follow a disruptive thought process: "I want to create a chart at this point in the document. Now, what do I have that lets me create charts? Hmmm. I have an application to do that, but (checks Task Manager) it doesn't appear to be running. I guess I have to go look for it. (Switches to the system shell to look for an icon.) OK. There's GG&G Spreadsheet, and I know it can create a graph for me." At this point, the user runs the spreadsheet, selects File New Chart, and creates the chart. Now that user thinks, "OK, I have my chart. Where was I going to put it? Oh, yes, in my document. Now where did that get to? (Hunts around the desktop.) There it is. Now how do I get the chart into the document? Ah, yes, the clipboard." So the user copies the chart to the document, figures out where to save the original chart, closes the spreadsheet, and only then returns to the document to try to remember why he or she needed a chart in the first place.

You can see from this example that most of the user's time is spent hunting for the right application to match the user's intentions. Productivity is lost because application-centric computing forces a user to think about something other than the task at hand. The user's mental energies are spent in mapping intention to application, not in executing the task. What a waste.

The point is that the more a computer can help users map their tasks and intentions to the right tools, the more productive those users will become. Today's Insert Object dialog box for OLE Documents is only a first primitive step toward the complete realization of what we might call intentional computing.