Have the person who can clarify and prioritize requirements as close as possible to the developers.
The customer for the system is a person or group who define and prioritize features. They can be prospective system users and domain experts, or business analysts or marketing specialists acting as proxy for them. Ideally, the ‘customer’ should work in the same room as the developers. The further away they are, the harder it is for them to act as a member of the team, and communication will become more difficult, costly, and less effective.
It is least disruptive to the progress of work if questions pertaining to requirements are answered immediately, or better yet, do not need to be asked. Where the customer is working as part of the team, and alongside the developers as they work, he is there to answer any questions. In observing the team as they work, and in working closely with them, he learns to communicate effectively with the team and to predict their problems, frequently providing information before its need has been detected by the developers.
Where a ‘genuine’ customer cannot be on site at all times, it is advisable to find somebody who is willing to be on site at all times and who is able to act in lieu of the customer. See also CustomerInterface and GateKeeper.