When planning/starting a software project (probably other projects as well) you are often provided a list with requirements written by the customer. It is now your job and responsibility that you meet all the requirements. Not only do you need to meet the requirements you also need to meet the requirements in a manner so that the customer agrees that the requirements are met. How can you increase the possibilities for this to happen?
First you need to make sure that you and the customer understand the requirements equally. It is quite easy to interpret the requirements, the hard part is to interpret the requirements correctly (according to the customer). What you need to do is to systematic go through each requirement and describe, with your own words, the functionality you associate with the given requirement. When this is done you must present your functional description to the customer and make sure that you both have the same and good understanding of the requirements. This might be time consuming, but it is worth the time.
You have now ensured that you understand your customer’s needs and you know what functionality the customer expect to get delivered. These needs and functionality will naturally change during the project and that is OK, you have a great fundamental for absorbing and acting on changes when you have a clear view of the original proposed functionality.