Design is a Heuristic Process

[From "Code Complete" by Steve McConnell]

"A key to effective design is recognizing that it's a heuristic process. Design always involves some trial and error. The round-trip design concept accounts for the fact that design is a heuristic by treating all design methodologies as tools in an intellectual toolbox. One tool works well on one job or on one phase or aspect of a job; other tools work well on others. No tool is right for everything, and it's useful to have several tools at your disposal."