Frank Sommers wants you to love constraints. I completely agree, constraints are what bring the software in the real world where it is useful and has value. Software development should respect the constraints by identifying them. Sometimes you can break a constraint, if you can’t then you have to live with them. The tradeoff on scope, time and budget by 37signals mentioned in the post is an apt solution for handling real world software development. Stagger the requirements or features, iterate but respect the deadlines, because they are determined by businesses for which the software is ultimately going to work.

