I understand this is going to be a fairly controversial topic.
For long, we business analysts were taught that requirements churn is bad. There were BA performance metrics which would consider a BA to be a poor business analyst if there were 20% more requirements discovered during the project execution phase.
This metric precisely comes from the assumption that the business analyst possibly did not collect complete requirements and hence the new change requests came in. The second assumption is business environment is stable and hence requirements are also a static entity. This was possibly somewhat true 30 to 40 years back.
But then the world has changed significantly over last 20 years. Businesses, their needs, their requirements are also much more dynamic then what they were 20 years back. Today even within a month, one may discover something much more useful and which was difficult to predict a month back.
Did most of us really figure out the impact of social media on business about five years back? Similarly, do we really understand the impact of artificial intelligence on business in next 2 to 3 years?
So in such a fluid situation what would be the best approach? Would it be not to worry too much about requirements completeness?
In past, non-functional requirements were lot harder to change. Older generation software systems were deployed in private data center owned by the organization. In case you wanted a better server, sometimes you will have no choice but to complete overhaul the hardware. For example, if we had a server with 8 GB RAM (Some of you may laugh how can a machine with 8 GB RAM be a server, this was considered as a high end server 20 years back) and we wanted another server at 16 GB RAM, the server may simply not scale up and then we have to buy a new server to fulfill our need.
But, today with cloud environment, it makes it so much easier for us to adjust our server configurations, almost on the fly.
However, at the same time I would not argue that every requirement to be discovered as we go. There are requirements which we can discover without significant effort and those should be found and a decision should be made about whether we want to implement them or not.
At the same time, being fanatic about trying to make the requirements complete is probably a futile exercises as the environment is changing so fast. It might make sense for the organization to adapt to the new environment and new requirements than trying to just stay fixated with requirement stability.
Request your inputs on the topic my fellow business analysts.