In building a software from scratch, there is necessity to conduct detailed needs assessment and find out what the clients/stakeholders really need.
When interviewing the end-users, organizing workshops or directly participating in business process for which the software product is written, there are many requirements which are very important, they are 'must-to-have' requirements .
In the same process, the clients name some functionalities, which are related to software, but they do not seem do solve any problem, so say 'nice-to-have' features., e.g. have the possibility to change the interface color, or be able to manage some processes which the software could do without their interference.
There should be some pattern to manage this kind of requirements. How to distinguish between these 2 kind of featuures? How to estimate does an additional feature add value to the software or is just augments the scope of the project?
Besides, how to persuade the clients that 'nice-to-have' features are somehow useful, but not really necessary.