an agreement between customers and contractors permits a rigorous of requirements before design can begin and reduces later redesign. It should also provide a realistic basis for estimating product costs, risks, and schedules necessary requirements that are required for the project development.[2] To derive the requirements we need to have clear and thorough understanding of the products to be developed or being developed. This is achieved and refined with detailed and continuous communications with the project team and customer till the completion of the software.