Every successful software development project begins with requirements. These requirements may be stated explicitly, such as the need for a payroll system to initiate direct deposits twice each month so that employees can get paid, taking into account the salary rate for each employee, minus any deductions for taxes and other withholdings. Or requirements may be more implicit, even abstract, such as the need for a video game to be fun and enjoyable.
In any software development project, there should be an explicit recognition that requirements will likely change and evolve over time, even during the lifespan of a single software development project. Business opportunities present themselves, competition forces innovation, new regulations and compliance policies are introduced, and even the introduction of new technologies makes some requirements obsolete while enabling other solutions. Requirements can even evolve as your software users start to use early builds of your software; this may cause them to change their opinions about their original requirements, or could inspire entirely new requirements.
The Agile Manifesto