This is a really big question. The answer I would put is "it depends." Gathering requirements is a very complicated thing. The best way to collect requirements depends on your project methodology. Are you going to use an iterative approach or a waterfall approach first? You also need to determine who your interested project participants are (for example, project manager, developers, business analyst, clients, project sponsor ...). Then you need your project participants to talk about what they want.
When you are all talking about what you want, the business analyst should help customer management describe what they want. Your analyst needs to dig the requirements. Many times, the client does not know what they really want, or how to describe the system in such a way that it makes sense to developers.
The first step at this stage is to describe the project area. Once a good volume has been identified, you will be able to determine which requirements are in scope or out of scope. After that, the best way to identify requirements is to discuss the problem and what they would like to solve. Try not to create a solution at the requirements stage, just a description of what the final product should do.
Don't spend too little time collecting requirements. The more changes you make in the project life cycle, the more expensive those changes will be. In addition, do not spend too much time on improving the requirements or you will find yourself in the so-called "analysis paralysis". Keep in mind that these dots simply scratch the surface. Here are some decent books in which I read some of this information:
Software Requirements 2nd Edition Karl E. Wiegers
More on Carl E. Wieger Software Requirements
These are decent books, and they discuss all the topics related to preparing the SRS for a few viewers to Requirement Requirements.
sgmeyer
source share