Interview Question
Country: India
I think sooner or later, the developers or the project lead need to discuss over the continuous changing of requirements and need to convey the same to the client [ if it is a service industry ] and should agree that they are going to release the software with the currently agreed requirements.
If the client or the necessity really demands the addition of the new requirements, then that should be taken up as an enhancement project where the outstanding requirements will be met.
Use the a combination of iterative waterfall model and spiral model for developing the project.
You will then always have a proper deliverable at all points of time and a running project wherein you can always make amendments and which is open to changes (which mainly requires incorporating the continuously changing requirements).
You have to code in as maintainable way as possible - writing small modules and using object oriented principles - so when requirements change we don't have to restructure the whole thing.
- rkt August 19, 2012