All the analogies to things in the physical world -- like building a theater -- are, IMO, terrible. Refactoring
You need to explain that refactoring code is like... refactoring code. Software is malleable in ways that other thingsphysical analogs are not. As things get more and more complex, refactoring is a way that we use toone must reactor (or redo, as you wish) massive or small parts of a codebase so that we can continue to increase the complexity without going insane.
CodeWhy do we refactor? Because code that is never refactored costs more per minute to maintain and change, and ultimately becomes more problematic.
What's so interesting about refactoring is that we redo the codebase but, at least at the outset, the functionality remains the same.