Richard Seroter’s 10 Architecture Tips From “The Timeless Way of Building” is highly relevant to software development as well:
“Each building when it is first built, is an attempt to make a self-maintaining whole configuration … But our predictions are invariably wrong … It is therefore necessary to keep changing the buildings, according to the real events which actually happen there.” (p. 479-480) The last portion of the book drives home that fact that no building (software application) is ever perfect. We shouldn’t look down on “repair” but instead see it as a way to continually mature what we’ve built and apply what we’ve learned along they way.
Just as buildings need “repair”, software takes iteration to get right.