> 1h of up-front thinking about the problem and your solution can save you days of refactoring, testing, debugging. The author proposes writing specifications as good way of up-front thinking.
Authors own conclusion:
> There is nothing magical about specification. It will not eliminate all errors. It cannot catch coding errors; you will still have to test and debug to find them. (Language design and debugging tools have made great progress in catching coding errors, but they are not good for catching design errors.) And even a formal specification that has been proved to satisfy its required properties could be wrong if the requirements are incorrect. Thinking does not guarantee that you will not make mistakes. But not thinking guarantees that you will.