The most common problem in software development, this is the dreaded flood of changes that normally come in well after the project has started. Most development paradigms ask for clearly defined requirements before any coding starts. That's great in academic environments but unrealistic in commercial software development. Yet it is equally unacceptable to approve an unregulated stream of change requests. If your project is suffering feature creep, freeze any new development and evaluate the list of change requests.
People often submit changes without considering the impact they have on cost and schedule.
Once you estimate the costs to design and implement each change request, you'll be pleasantly surprised by how many vanish. Some changes, such as complying with a new standard or legal requirements, are vital, but most can wait until the next version. A defined process forces everyone to decide early on whether or not a change request is worth implementing. It may be the result of an optimistic assessment of the project's requirements, or the schedule doesn't allow time to fix minor problems that are sure to appear. And sometimes the project leader uses unrealistic developer productivity estimates.