From what we have seen so far, we’d have 3 separate, but related process models. One for each of the following:
- Buy a Book
- Choose a Book
- Pay for Book
Numbering the processes
Some of that was getting difficult to describe. The fact that Pay for Book is a process step in one diagram and a whole process was causing some difficulties in describing the relationship. I’d recommend reading through it again, slower this time, checking that you are certain which process step is being to referred to at each point.
Some standards help understanding by providing a key to each process step. The most common method is to assign a unique number to each process. The benefit of this is that you can define the process once (e.g. say we define “check stock level”) and then we can use it elsewhere as a process step (e.g. in an ordering, logistics or auditing processes).
Some standards help you navigate the hierarchy by assigning and set of numbers, e.g. everything at the top level has one number (1, 2, 3, 99, 123, etc). The next level down would have another point number so that all the process steps in process 1 would have numbers of 1.1, 1.2, 1.3 and those in process 3 would have 3.1, 3.2. Down another level and we’d see labels such 1.1.1, 1.3.4 and 4.3.5. This does lean towards a parent-child relationship between processes. Not necessarily bad, but I prefer more freedom.
The more levels and the greater the complexity, the greater the need for a naming convention.
By allowing processes to appear in other process maps, they can be reused. For instance, theScan Book process step above could be used elsewhere, e.g. to retrieve information about a book such as how many are in stock, price, different versions, etc. The process step would be the same in all processes.
- The Process Start in a subprocess doesn’t relate to any process step in any other process map. So you’d never actually use this process.
- The process overlaps with the previous or next process in the chain – as we saw earlier with the Scan Book process step.
- The Process Ends (i.e. the outcomes of a process) for the subprocesses aren’t reflected in the higher-level processes.
- Change in process mapping methods – giving a process step to a different analyst can result in that process step being described using different methods or no standards. This isn’t necessarily a mistake, but should be considered before responsibility for process mapping is delegated.
Why 3 Levels?
You don’t have to have 3 levels, they suited the early part of this article. It’s a common concept in a lot of domains. In Data-modelling, the hierarchy of Conceptual, Logical and Physical data models has long proved beneficial. Closer to the process domain, Alistair Cockburn was promoting multiple levels of Use Cases almost a decade ago.
When do you stop going smaller?
When everyone understands the process step without having to ask any questions.
For many clients, two levels is sufficient for the process analysts to be involved in; a high-level mapping of all the processes, then a more detailed view of each process. a 3rd level may be created for the more complex processes that require more analysis. Developers are likely to look for further detail, so either another level or different diagramming technique can be used.
- A process step can be described in more detail in its own process map
- Processes can be re-used in more than one process
- Process maps should contain sufficient information to relate to each other – using the Process Starts and Process Ends
- Different readers will have different ideas of how much detail they want to see
- The different levels of process maps can be used for different audiences
- As the number of processes and levels increases, the greater the need for a naming convention
Notice that Buy a Book was written from the buyer’s perspective whereas Pay For Book was written from the Bookseller’s perspective. We’ll discuss how to handle that in the next article.
Which Diagram type?
All the diagrams above could be process maps. In some cases, especially with mapping the flow of user-interfaces, then UML Sequence Diagrams can be more useful than Activity Diagrams. I’ll explain why in a later article.