Select Familiar Methods and Maintain a Set of Work Products
Although a large number of methods and techniques are available to support requirements engineering, only a few have proven most useful. It's important for you to select methods and techniques that are familiar to the developers. Formal training should be provided in the use of the selected methods and techniques, particularly when they are new technologies. An organization should work toward use of a common set of methods and techniques that have proven effective in your environment. Industry data concerning the effectiveness and cost of methods and techniques, as well as their relative capability to remove various types of defects, suggest that Joint Application Design (JAD), use of prototypes, use cases, and Configuration Control Boards (CCBs) are very effective. Capers Jones' data suggest that it is far easier to make mistakes and degrade productivity than it is to get things right and improve productivity. This is an important finding that deserves attention and analysis.
The methods and techniques to be used by a project and institutionalized for an organization should be selected carefully. Several working documents should be maintained that together describe the set of the requirements for a system. These include: 1) the database in your automated requirements tool, 2) the vision statement for the project, 3) the requirements document, 4) lists of requirements met by related legacy systems, and 5) the list of system-level requirements. Prioritizing requirements is a powerful and effective requirements practice that should be utilized on all projects. It reduces risk, facilitates making tradeoffs, helps deliver a useful product in spite of schedule and resources limitations, and improves communication with the customer and developers.