Theres a rather interesting thread going on now over at the 37Signals blog, all started with Jason Fried quoting Fred Brooks…

How does a project get to be a year behind schedule? One day at a time.

If you wade through the comments on the post, youll find some interesting things. Here are my favorites…

Fixed prices are broken promises

And…

Program maintenance is an entropy-increasing process, and even its most skillful execution only delays the subsidence of the system into unfixable obsolescence.

…and from JF…

Thats the root of the problem saying you know everything about what you need and how its going to be implemented even before the first pixel is painted or line of code is written.To those that think theres only one way to do anything: youre off by a factor of 100. There are lots of ways to do things, but you have to believe in them and yourself enough to try them. You have to educate people, you have to ask people to trust you, you have to trust them, and you have to deliver. And I promise you that once you start delivering theyll forget all about the old way of doing things.

Weve done it and you can do it too. Dont let anyone tell you you cant. Dont let anyone tell you theres only one way. Dont let anyone tell you rigid timelines and specs are the only way to work with clients. Its simply not true. It may be what people are used to, but there are much better ways if you just give them a try.—Jason Fried