Royce70 and Rework

Royce 1970 accepted that rework would happen in a project. However, there was a harmless type of rework and a harmful one.

The harmless one could be "scoped to manageable limits.” That's when an error in phase *N* is discovered in phase *N+1*, but nothing more is needed than to correct the error there.

Double-click to enlarge

Graphic design note: Symmetry of One Level Iteration

The harmful one is when changes to one level require changes to a previous level. In the following, a problem discovered in testing requires a change to the program design. But that change reveals that the software requirements have to change as well. And those changes must ripple downstream.

Double-click to enlarge

In this case, Royce says "the development process has returned to the origin and one can expect up to a 100 percent overrun in schedule and/or costs.”

However, Royce has made a grievous error: **What happened to the back arrows in figure 3??** From this figure on, they're omitted from the pictured process.

Out of sight, out of mind, as evidenced by how Royce's successors treated one-step iteration as just as awful as multi-step. Good People Don't Err