Talking to the stakeholders is the number one way in which a project manager can perform requirements gathering. The project manager has to go out there and talk and discuss and inform himself or herself as much as possible.
Conducting interviews is the process by which a project manager or requirements analyst should interact with the users, experts or stakeholders.
Some project managers have a business analyst, which can work on the requirements gathering process. Having someone to bounce off ideas besides the stakeholders, allows one to fully understand the nature of the problem. First, it is good to start the conversation at a high level of abstraction, and then gradually go down into the more detailed specifics. The business analyst is your partner, but you must not interfere with one another. Some project managers don’t have a business analyst, and have to do all of the work. These project managers have a tougher time, because they have to fill multiple roles. On the plus side, these project managers will understand what it is that the customers want very well, so it is likely the customer will get what it is they want.
Requirements are important, because it creates discipline in the process of creating software. Many programmers like to just start the programming as soon as they have the general idea of what it is that it is suppose to do. This freedom to be able to implement a general idea in the way one wants may feel right, and the creative aspect may make one enjoy their task of programming even more. The reason this happens is that many programmers learn their profession by just programming software for themselves. In this method, they know the requirements because the software is meant for them. But when programming for others, it is not likely that the programmer will intuitively know what another wants. Therefore, the requirements gathering process will be needed.
The programmer works for other people, not for himself or herself. Software is made to suit the requirements of people other than the programmer. As such, the programmer will not intuitively know what needs to be made, because the software is for someone else. For this reason, the behaviour of the software to be programmed must be documented before the software is built, so as to have as a reference in the building of the application. This process, this art and science, of developing a description of behaviour of software that is to be used for software development, is known as “software requirements engineering”.
Software requirements engineering is a discipline, just like programming and project management. Just like any professional discipline, software requirements engineering requires the development of skill and talent. At times, the project manager may not have a skilled requirements analyst on his team, and will have to resort to either doing it himself or herself, or assigning the task to one of the team members. The later is usually the best choice, as there is a lot of overlap between the skills required for design, programming, testing, and the skill of requirements analyst. Many team members in the software creation business will be able to adapt to the role of software requirements analyst.
Interested in Management? Check out our management course!