"A good software design minimizes the time required to create, modify, and maintain the software while achieving run-time performance."It also references a few other nice articles:
- An Artima interview with Erich Gamma which notes that "Modification and maintenance time are more important than creation time."
- An article by Alistair Cockburn on programming as theory building
This also ties in quite nicely with Agile ideas about "Simple Design" and some earlier blog-postings of mine about Simplicity in Design (and ChangeThis for Simplicity).