Anyone that has worked on a Software Development Projects can relate to the concept of project pressure because of somebody changing requirements. Whether the change comes from upper management, peers, customers, or even self-inflicted, it exists and it’s not going anywhere. One thing that I’ve learned is that as project pressures increases (because of change in requirements), its easy to forget the one thing that unites the project, that all stakeholders share a common objective; to build a product that will provide business value to the customers and will reward all stakeholders upon successful completion. What I like to do, is go into projects with an understanding at the begining of all projects that the requirements will change as its apart of our trade and a harsh reality of software projects. This helps me mentally prepare for the ad hoc changes and the specification modifications as the project moves forward.
I've learned that when I accept that you just can’t know all the requirements early on and that requirements evolve and that change is something we have to deal with as software engineers. Lastly, try to work with your customers. Show your customers how their participation not only is in their personal best interest but also will lead to collectively better results. Keep in mind that it is critical to reach an agreement on a set of requirements planned for a specific release or development iteration, but it is also important that afterwards all parties understand that these requirements are subject to change and/or evolve. Extensive and ongoing customer engagement from that start with the customer is such an important part of the software requirements and development process. And even if the end doesn’t look clear nor does it feel like its near, don’t lose sight of what your responsibility is and why you matter to the success of the project.