The first bit of complexity that I am adding to C.R.’s business trip is the choice of travel options. In Part 1, there were inputs and outputs for flights, rental cars, and hotels. Now, I am adding the possibility of air/car/hotel packages from Travel Agencies that provide information on packages as a service. C. R. will then need to choose among the various possibilities. Columns 8 and 9 along with rows 9 and 10 in the matrix below show the inputs and outputs for the air/car/hotel packages.
This matrix generates the following business process diagram.
This diagram introduces processes. They are shown in a different color with a plus sign at the bottom of the process entity. Processes reduce the visual complexity of the diagram. The plus sign indicates that a process may be decomposed further.
A quick inspection of this diagram shows that it is missing one aspect of the description of C. R.’s business trip. It appears that all the travel availability activities flow directly into making reservations. The diagram is missing any decision process concerning travel options. The next matrix adds the travel decision among the various travel options. The highlighted column and row in the matrix below show those choices.
Adjusting the matrix based on visual feedback from the generated diagram is a common way to explore design decomposition using the matrix. By the way, the blue-shaded box to the right of the matrix is an aid for completing the matrix. It is not uncommon to have large matrices. As a result, the row and/or column heading might not appear on the screen. The blue-shaded box appears when your cursor hovers near a check box.
The travel decision response is shown as an input to the travel decision request. I have marked it this way for two reasons. First, it is possible that the person sending the travel decision response might require changes to the travel plans necessitating another travel decision request. Second, I as a designer may want this request/response sequence to occur in the same task. For the latter case, you can make this more likely to occur by having the related response also be an input for the related request.
The most recent matrix generates the diagram shown below. I have moved the elements around to make it easier to read and added the labels.
As mentioned earlier, the process show that further decomposition is possible. When you scroll down the Results page, you will see options for further decomposition that will look like:
Recall that I mentioned that the numbering was only for identification purposes. This is where the numbering is used. For example, “Process 1″ in the text box above relates to “Process 1″ in the generated diagram. As in the diagram, you can rename the label. Clicking on “Setup Matrix” will generate a sub-matrix for this process. It is shown below with the proper label for the matrix name.
You can submit this matrix as is or modify it. You might know, for example a data source that is used inside a process that is not visible outside the process. If that would be the case, you can add the necessary inputs, outputs, and check marks. In this example, I will use the matrix as is. The following diagram is generated from this matrix.
Note the numbering relates to the original process numbering. The numbering after the decimal point is also just for identification. The following is the same diagram with meaningful labels.
If you compare this diagram to the last one in Part 1, you will see that the “Obtain possible flights” task has moved to the second task on one of the flows. This is a result of adding the choice of air/car/hotel packages from Travel Agencies. The task to obtain possible flights is needed only in the “do it yourself” flow, if you will.
Note that obtaining possible flights appears before checking the availability of rental cars and hotel rooms. The assumption is that flight times might affect the requirements for rental cars and hotel rooms. You may not agree with this assumption or you might think I am missing something. And you could very well be right. This is why I say it is important to get all the domain experts together at the same time when developing your matrix. One possible way to do this would be to project the generated diagram on a wall and discuss the diagrams as you incrementally modify the matrix. Also see the Wiki entry on this site for hints on using the Decomposition Matrix.
I repeated the steps for further decomposition on “Process 2,” renamed “Make travel reservations.” The resulting diagram with meaningful labels is shown below.