VGL Guide — Prerequisite Tree (PRT)
Estimated reading time: 2 minutes.
Prerequisite Tree (PRT)
Planning with necessary-condition thinking, starting from the objective and working back to obstacles.
Node types
Objective— the desired goalObstacle— a barrier preventing achievementIntermediateObjective— a milestone overcoming a specific obstacleOR— allows optional conditions instead of requiring all predecessors (icon: OR circle)
Edge types — flowing bottom-to-top, intermediate objectives at the bottom.
obstacle_blocks_objective— Obstacle → Objectiveobstacle_blocks_intermediate_objective— Obstacle → IntermediateObjectiveintermediate_objective_overcomes_obstacle— IntermediateObjective → Obstacleintermediate_objective_to_objective— the direct path- To the OR junctor:
obstacle_to_or,intermediate_objective_to_or - From it:
or_to_objective,or_to_intermediate_objective,or_to_obstacle
A planning graph showing obstacles blocking objectives and intermediate objectives to overcome them:
vgraph projectLaunch: PRT "New Product Launch Planning" {
// The main objective we want to achieve
node obj1: Objective "Successfully launch product by Q3";
// Obstacles blocking the main objective
node obs1: Obstacle "Development team lacks required skills";
node obs2: Obstacle "Marketing budget not approved";
node obs3: Obstacle "No distribution channel established";
// Intermediate objectives to overcome obstacles
node io1: IntermediateObjective "Train team on new technology";
node io2: IntermediateObjective "Hire experienced developers";
node io3: IntermediateObjective "Present ROI analysis to leadership";
node io4: IntermediateObjective "Partner with existing retailer";
node io5: IntermediateObjective "Build direct-to-consumer channel";
// OR junctor for alternative paths
node or1: OR;
node or2: OR;
// Further obstacles blocking intermediate objectives
node obs4: Obstacle "Training budget limited";
node obs5: Obstacle "Talent pool is competitive";
// Obstacles block the main objective
edge obs1 -> obj1: obstacle_blocks_objective;
edge obs2 -> obj1: obstacle_blocks_objective;
edge obs3 -> obj1: obstacle_blocks_objective;
// Alternative ways to overcome skill obstacle (via OR)
edge io1 -> or1: intermediate_objective_to_or;
edge io2 -> or1: intermediate_objective_to_or;
edge or1 -> obs1: or_to_obstacle;
// ROI analysis overcomes budget obstacle
edge io3 -> obs2: intermediate_objective_overcomes_obstacle;
// Alternative distribution solutions
edge io4 -> or2: intermediate_objective_to_or;
edge io5 -> or2: intermediate_objective_to_or;
edge or2 -> obs3: or_to_obstacle;
// Recursive obstacles blocking intermediate objectives
edge obs4 -> io1: obstacle_blocks_intermediate_objective;
edge obs5 -> io2: obstacle_blocks_intermediate_objective;
}
Home