A common paradigm of software engineering is making progress continuously rather than discretely. By this, I mean that given an ideal, most would prefer to make small edits that get them closer to the ideal rather than a large change all at once. This means that the workflow for change looks like the following: There is a realization that something is locally wrong. The root of the problem is identified. A change is implemented that fixes the problem.