Managing Change
It is “common knowledge” that the best way to develop software is to start with firm, clear, and complete requirements. However, experience shows that even when we get what is purport to be a firm requirement, it will change. The one exception I remember was when I was director of IBM's software development operations. I was so convinced that we should start with firm requirements that I threatened to cancel a big project if either the team or the marketing group changed the requirements after we had agreed on them. The product was then produced on schedule and within cost, but it did not meet the customers’ true needs. We then had to withdraw it and start over to develop the “right” product. This product failure was more expensive than the likely schedule delays that would have resulted from requirements changes.