M++
Generative analysis introduces M++, which is a pattern language that enables you to uncover important information in the analysis process.
M++ is based on the Meta Model, which is a model of communication that was originally designed for psychotherapeutic purposes [Bandler 1], but has also been widely used in other fields such as business communications [Hall 1]. To use the Meta Model effectively in OOAD, we have extended it in a few important way, and optimized its presentation to make it easy to learn and apply by OO analysts/designers. We call this "the extended Meta Model for OOAD," or M++ for short, to distinguish it from the original NLP Meta Model.
Because M++ is a very detailed pattern language, I simply don’t have room to describe it all in detail here, but here is a brief introduction to its basic principles and a single simple example.
Essentially, M++ is based on a model of human communication in which information is
- Deleted—information is deleted from the communication
- Distorted—information is distorted in some way
- Generalized—information is subject to modification according to general rules a beliefs
This model arises from the work of Noam Chomsky [Chomsky 1] and I describe it in much more detail in Secrets of Analysis. The goal of M++ is to provide you with the following:
- Specific ways to recognize deletions, distortions, and generalizations in communications
- Specific ways to recover the information you need as an analyst by challenging deletions, distortions, and generalizations
M++ is in many ways the most important part of, and the core activity, in GA because it allows you to generate high-quality information from low-quality information by applying a specific set of patterns.
Each M++ pattern comprises:
- Name—the name of the NLP meta model pattern. If it is an M++ addition, we postfix the name with ++.
- Definition—a definition of the pattern.
- Example—an example of the pattern in use. This is taken from a stakeholder interview for the Miskatonic Library System (MLS) described in Secrets of Analysis.
- Recovery pattern—how you recover the deleted information.
- Recovery questions—what forms of questions you ask to recover the information.
- Recovery example—a short dialogue showing the recovery pattern in use (taken from the same stakeholder interview).
Here is an example M++ pattern (S: = stakeholder, A: = analyst).
Simple deletion:
Something is left out of the communication. Details have been deleted. The speaker has used a shorthand, presupposing that you will know what they mean.
Example:
S: "The contents of the library must be recorded in the new system."
Detection pattern:
Visualize the communication as an image or movie in your head (for example, imagine the contents of the library). Can the things you imagine actually be tracked back to the communication itself? This is called representational tracking. For example, if you are imagining books, was the term "book" actually mentioned in the communication? If not, there is information missing, and you are filling it in using your imagination. This is a form of positive hallucination and you should be careful because you are hallucinating information that was deleted from the original communication. This delusion can be dangerous because you might form beliefs about the system without any concrete evidence for those beliefs.
Recovery pattern:
Identify the missing information and ask for more details. Get the stakeholder to be specific.
Recovery questions:
What is/are...?
Who is/are...?
Can you be more specific about...?
Recovery example:
A: You say "contents of the library." What contents are these? Can you list them for me?
S: Yes. The library contains books (obviously!); it also has periodicals and there are manuscripts in the special collection. That’s about it.
A: Is there anything else? CDs, CD-ROMs, DVDs...?
S: No, we don’t hold that sort of multimedia, although I guess we might in the future.
M++ is generally quite straightforward, although many of the patterns are much more complex than this very simple one.
In GA, M++ is the key strategic tool of the OO analyst/designer; it is the way you recover the information you need to do your job. It is one of the missing pieces that you won’t be taught on a conventional OOAD course!