Instability of product requirements is an equally insidious problem. If they shift rapidly, the changes can halt a development effort. If they drift slowly, requirements changes can convert the most elegant program into the logical equivalent of bailing wire and duct tape.
Setting good requirements is hard. Formal methods exist and seem useful for products that are entering a defined market. Their value is less clear when a product is designed to create a market.
In many industrial environments, people at the engineering level cannot control the mutation of the requirements. The only thing you can do is to try to track how the requirements have mutated over the life of the project. This is important so that the new marketing guy that comes on three months before the release date can see why his pet feature isn't in the product.
Copyright 1998 Anne Powell