A requirements document is a very powerful tool if used properly. This maybe the most hated task of developers, yet it is essential. As the saying goes – “Do the right things, then do things right“. Requirements documentation helps ensure that developers are doing the right things, before they do it right. Although new methodologies have been developed to reduced documentation, I still believe that requirements document should be maintained throughout the project cycle.
Some benefits of proper requirements documentation are:
- Serves as a tool to communicate with various stakeholders. This document will help you ensure that all stakeholders are aware of the project requirements. Any conflicts on the requirement with various stakeholders must be resolved and documented here.
- Validates the project objectives. The requirements listed in the document can be mapped against the project objectives to see if they are met.
- Helps uncover loopholes, defects in the requirements. Defects due to requirements are costly if not uncovered early during the project cycle. This is because you have to go back and change the requirements, update the design, test scripts, source codes and retest the application. So, well thought and well written requirements will definitely save you time and money in the long run.
- Serves as your bible for the rest of the project activities – analysis, design, programming and testing. All activities performed in the project should be associated to a requirement as listed in this document. Otherwise, you might be doing something that is not needed.
I am not recommending any specific process in performing requirements gathering. In my years of experience, I have seen various methods of eliciting requirements from client and there is no universal way of getting it. So, it really depends on the client’s role, knowledge, authority, attitude, working habits, among others. Nevertheless, I believe that there needs to be some standard form of organizing requirements – that is… I believe in establishing standard template to document requirements. It doesn’t really matter how you collect and elicit requirements, as long as you write it down in a standard format that everybody in your project understands.
Here is the Requirements Document Template that we use during requirements gathering. This template is a simplified version of Volere Requirements Template and has been customized to fit our needs. Some items in the template may not be relevant to other projects – in such case, specify none instead of removing the section.