[From "Dynamics of Software Development" by John McCarthy]
#24: Design at design time.
"Put time into your design. Don't create a design and then try to determine how long it will take to implement. Time is one of the primary media with which you are working."
"The product will ship when the design can be shown to be implemented. Developers and their managers often ignore the exigencies of time when they create a design. Instead, you should consider the implementation time as a critical design element. When you evaluate design alternatives, disadvantage the one that takes longer to implement. Often, when you give appropriate design value to timeliness, you can substantially compress implementation time."
"A product that is not designed to ship on time ... won't. One that is ... probably won't. The latter is preferable to the former. Duh"