Creating a Prerequisite Tree with Flying Logic

Creating a Prerequisite Tree with Flying Logic

Perhaps you’ve gotten a picture of your Core Drivers using a Current Reality Tree (CRT). You may have used a Cloud to come up with some promising solutions and used a Future Reality Tree (FRT) to develop a solution you think will work. But unless your situation is quite simple, you’re not done yet. One of the most overlooked aspects of planning lies in determining the things we need but don’t have yet: these are the obstacles that lie in our path. And as we develop ways to overcome these obstacles, further obstacles will often become visible. The Prerequisite Tree (PRT) is a tool that helps us to identify and see beyond every obstacle, and make sure that every necessary activity is included in our plan.

Transcript continues after video.

Flying Logic Setup

A PRT is based on Necessary Condition Thinking. Since Flying logic documents are set up for Sufficient Cause thinking by default you will want to set the Operator popup menus as follows:

  • Entity Operator: Fuzzy And (AND)
  • Default Junctor Operator: Fuzzy Or (OR)

PRTs are usually read from top-to-bottom, starting at the Objective(s). However, this means the flow of the edges (arrows) must be towards the Objective(s) or bottom-to-top: so you will want to set the Orientation popup menu to Bottom to Top.

PRTs are created using the entity classes in the built-in Prerequisite Tree domain, and use the following classes: Objective, Overcome, and Milestone.

If you have already constructed PRTs in the past, the choice of Overcome instead of Obstacle as an entity class name may seem a little strange at first. We use the two terms somewhat interchangeably, but the name Overcome was chosen for three reasons:

  • First, the choice of Overcome makes the tree more natural to read. For example, this simple sequence can be read, “In order to obtain A, it is necessary to overcome B. In order to overcome B, it is necessary to obtain C.”
  • Second, when using the Confidence Spinners to step through the logic of the tree, we use True to indicate that the statement in the title of the entity exists or otherwise pertains to reality, and False to indicate that it does not pertain. If we used the class name Obstacle, then a True confidence value would indicate the existence of the obstacle. However, what we want to express is the exact opposite: when all the necessary conditions are met, we want a confidence value of True to indicate that the obstacle no longer exists: it has been overcome. So when dealing with Overcome entities, it is easy to think of False meaning, “We have not yet overcome this,” (the obstacle exists) and True as meaning, “We have overcome this” (the obstacle no longer exists.) Thus, if every entity in our PRT does not have a Confidence of True, it is easy to see at a glance what we still need to accomplish.
  • Third, there is a positive connotation to calling these entities Overcome. The name helps convey the idea that all obstacles contain the seeds of their downfall, and focuses the planner on the obstacle not as something that exists to thwart them, but rather as something that exists to be thwarted.

Step 1: Identify the Objective

Create an Objective entity and give it a title that uses simple, present-tense wording. Usually PRTs will have a single Objective entity that defines the outcome that you are working to achieve, although they can contain more than one Objective if they are closely related. Often the wording of the Objective will be drawn from an injection (Solution entity or Action entity) you used in creating a Future Reality Tree.

Step 2: Identify Some Obstacles to Overcome

Something stands in the way of achieving your Objective, or you probably would have done it already. Create a set of Overcome entities that represent the nonexistent necessary conditions for achieving your Objective. The point here is not to list everything you will need to do to achieve your Objectives, but to identify the things you still lack. Connect each Overcome entity as a predecessor of your Objective.

Step 3: Brainstorm Milestones

Consider each of the Overcome entities you have added and brainstorm one or more Milestone entities that will negate the obstacles. It is useful to remember that you don’t need to completely destroy an obstacle to get past it: you can (figuratively) go around it, over it, or under it; the point is to be creative.

  • Often there will be a single Milestone matched with each Overcome. (M is necessary to overcome G.)
  • Some of the Milestones you identify may Overcome more than one obstacle. (J is necessary to overcome D and E.)
  • Other times, your brainstorming will come up with two or more alternatives that may be able to Overcome an obstacle. You use OR junctors to model this. Junctors are easily created by dragging from an existing entity to a line. (Either H or I are necessary to overcome C.)
  • And sometimes, more than one Milestone will need to be achieved in order to Overcome an obstacle. (K and L are necessary to overcome F.)

Step 4: Continue to Deepen the Tree

Now consider each of the Milestones you added in the last step. What obstacles to implementing them present themselves? Lack of knowledge? Lack of manpower? Lack of money? Creating a PRT is focused on finding those Necessary Conditions that you currently lack; this is all an obstacle really is. For each such obstacle you identify, create a new Overcome entity and connect it as a predecessor to the appropriate Milestone. For each of these new Overcome entities, devise Milestones that address them, and so on.

As you deepen the tree, the Milestones you add will start to have a smaller, more tractable character. At some point you will add Milestones for which you are unable to find any significant obstacles to their implementation. These Milestones are the roots of your PRT, and represent the accomplishments that must be tackled first. Of course, there may be many actual Actions that are required to implement a Milestone, and this is the subject of the Transition Tree discussed in the next chapter. But for now, it is sufficient to identify Milestones that entail no significant obstacles.

Step 5: Read and Verify the Tree

Once you feel that your tree is well-connected from its simplest Milestones all the way through to the ultimate Objective, it is time to carefully read the tree for clarity and completeness. Since PRTs are constructed using Necessary Condition thinking, the tree is read against the flow of the edges starting with the Objective. Each step of the tree is read with one of the following patterns:

  • In order to obtain A it is necessary that we overcome B.
  • In order to overcome B it is necessary that we obtain C.

Make sure that you apply the Categories of Legitimate Reservation as you read through the tree. Ask yourself questions such as:

  • Do we really need to overcome this obstacle?
  • Is there a way to avoid having to overcome this obstacle?
  • Does the milestone really overcome the obstacle?
  • Are there any other milestones required to overcome the obstacle?
  • Are there any other milestones that are also sufficient to overcome the obstacle?

It is also a good idea to use Flying Logic’s Confidence Spinners at this stage to go through your diagram step by step with the flow of the edges from the root Milestones all the way to the Objective.

Step 6: Trim and Finalize the Tree

Once you have verified that your PRT is logically sound, it may contain one or more alternate Milestones (connected by OR relationships) that you can now choose among. Trim the rejected alternatives either by deleting them or placing them within collapsed groups.

What’s Next?

Wanting to do more with Flying Logic? You may want to check out these articles:

How to Create a Concept Map

How to Create a Flowchart

How to Create a Transition Tree