VGL Guide — Evaporating Cloud (EC)
Estimated reading time: 2 minutes.
Evaporating Cloud (EC)
A conflict-resolution tool using necessary-condition logic — "in order to [Common Objective], we must [Need]" — flowing left-to-right from Common Objective to Conflict. Multiple necessary inputs are implicitly AND; OR is explicit.
Node types
CommonObjective— the shared objective valid for both sidesNeed— a perceived need that must be metWant— a perceived want derived from a needConflict— the conflict as mutually exclusive wants (lightning-bolt icon, no text)OrJunctor— alternative necessary inputs, any one of which suffices (icon: OR circle)Assumption— an underlying assumption behind the conflictSolution— the solution that breaks the conflict
Edge types — necessary-condition relationships flowing left-to-right from the shared objective through needs and wants to the conflict.
- From the objective:
objective_to_need,objective_to_or - From a need:
need_to_want,need_to_or,need_to_assumption,need_to_solution - From a want:
want_to_conflict,want_to_or,want_to_assumption - From the conflict:
conflict_to_or,conflict_to_assumption - From an OrJunctor:
or_to_want,or_to_conflict,or_to_or
A conflict resolution graph showing how assumptions behind a conflict can be surfaced and resolved:
vgraph projectConflict: EC "Project Delivery vs Quality" {
// The shared objective both sides agree on
node obj: CommonObjective "Deliver a successful software product";
// The two competing needs
node needA: Need "Meet the market window deadline";
node needB: Need "Ensure product quality and reliability";
// The specific wants derived from each need
node wantA: Want "Release with current feature set now";
node wantB: Want "Extend timeline for thorough testing";
// The conflict between the two wants
node conf: Conflict;
// Assumptions underlying the conflict
node assA: Assumption "Testing always requires calendar time";
node assB: Assumption "Features cannot be descoped";
node assC: Assumption "Quality requires full manual testing";
// Solution that breaks the conflict
node sol: Solution "Implement automated testing pipeline";
// Objective requires both needs (necessary condition)
edge obj -> needA: objective_to_need;
edge obj -> needB: objective_to_need;
// Needs lead to wants
edge needA -> wantA: need_to_want;
edge needB -> wantB: need_to_want;
// Wants create the conflict
edge wantA -> conf: want_to_conflict;
edge wantB -> conf: want_to_conflict;
// Assumptions exposed
edge needA -> assA: need_to_assumption;
edge needB -> assC: need_to_assumption;
edge conf -> assB: conflict_to_assumption;
// Solution resolves by breaking assumption
edge needB -> sol: need_to_solution;
}
Home