My new clients have responded to our shockingly complex architecture by specifying, get this, the names of the source code files we are to deliver. So, apparently if we can't negotiate this away, our class structure will be memorialized in the specification contract! Oh, Lordy. Why does the phrase "sunk cost fallacy" come to mind?