Overview
It is important to identify all of the constraints, to understand which ones are real ones and which have been used in the past for tuning, and to know which ones may be relaxed.
When you consider the aspects of a specification that involve constraints, there are a number of important points to keep in mind.
You need a complete and exhaustive statement of all the constraints, as a minimal part of the problem description. Define all constraints offers an example of this point.
You need a way to identify those conditions that your client would like to satisfy but that you may relax or drop altogether if the problem proves intractable. Your client helps you identify those conditions. Distinguish constraints from preferable conditions suggests ways to do so.
You must clearly separate the real constraints from any ad hoc rules of thumb used to solve the problem in the past. Make the real constraints part of the model, but consider whether the ad hoc rules of thumb are still necessary. Perhaps they can be replaced by constraint programming techniques.