I'm reading "Dreaming in code", a book trying to find the answer for this question: why is software so hard? It's probably fun to read for anyone who ever participated in creation of any type of software as it follows a project doomed to endlessly spin without getting close to the initial vision.
One paradigm that drew my attention lately is the Project triangle, mentioned in the chapter "Managing dogs and geeks". The project triangle is a painful formula coined in the software development field, which states that given the options of Fast, Good and Cheap, you have to pick two of them to build a system.
With the recent explosion of web 2.0 tools, I tend to think that the solution for the problem was nailed down. In my opinion most of the small companies releasing services on the web are first getting comfortable around the Fast and Cheap options, then releasing the product and after that iterating over Good.
Leaving Good at the end doesn't mean that the initial state of the product is unreliable. It means that the product is refined in time, following the feedback received from initial users to pump up the Good side of the triangle. Web 2.0 redefined the term Good from the triangle.
If you didn't read the book, I recommend it. Joel Spolsky wrote a review about it here.