To generate a decision tree that could succeed in repairing problems in all cases, we would necessarily have to foresee all possible failure modes and encode them into the tree. These failure modes determine the order in which steps should be taken. Each possible ordering or precedence would add complexity to the tree, in the worst case resulting in an exponential explosion in the size of the tree.

These negative conclusions engendered a fundamental change in our
thinking and approach. Since we did not believe that we could ever
construct such a complex tree correctly, we had no confidence that
direct automation of any regular decision tree could *ever* be
useful. We stopped even thinking about executing a decision tree
directly, and began looking for a better way to approach the problem.
The key to this approach is that if a set of scripts exhibit a
particular set of properties, precedence does not matter. The key
concept is *homogeneity of effect*; that scripts do not conflict
with one another in the goals they wish to ensure.