How do we know when we've captured enough requirements at the right level of detail?
Every one has an opinion or at least something to say about what's required for this project. How do we know when we've captured the right amount of requirements or the right details?
Research has shown that almost two-thirds of failed projects, and more than three-quarters of project rework, can be traced to missed requirements. Given that it's impossible to guarantee that you haven't missed any requirements, how can you be sure that you've at least worked through the requirements sources as carefully and thoroughly as possible?
One of the best tools to ensure that you've thought about the requirements from every angle is brainstorming. The following brainstorming tips will help you cover all the bases:
Make sure you've considered the highest-level business goals and business needs, and that you've identified any requirements that derive from high-level vision statements. These requirements should relate directly back to the project objectives and goals.
Make sure you've thought about the users. Identify the role of every person who'll use the system. Be sure to think about what they'll do with the system, and what the system needs to do for them.
Make sure you've thought about the system itself. Try to identify any detailed requirements around the system interface(s), system-level transactions, etc.
Make sure you've thought about the functions the system will perform. This will help you identify your functional requirements.
Make sure you've thought about how well the system needs to perform these functions. This will help you identify the nonfunctional requirements.
If you're working with a process, make sure you've reviewed the process from end to end. Think of the triggers and/or inputs that initiate the process, then think through the inputs and outputs at every step of the way. And finally, think through the outputs and end-points.
If you're working with a set of data, be sure to think through the data, including its uses, its characteristics and variances, its source, who uses it, for what purpose, and any reporting needs of the users.
How many requirements will you need? There's no magic answer. Just be sure to gather all the right high-level and/or vision-level requirements to meet the business need. Then be sure to flesh out these needs with the detailed requirements. Don't forget to consult the people who'll develop the solution; make sure they have all the information they'll need to do their jobs and build a great solution.