Wiegers Getting The Most Out of Requirements Management Tool
Wiegers Getting The Most Out of Requirements Management Tool
Wiegers Getting The Most Out of Requirements Management Tool
Adapted from Karl E. Wiegers, Testing the Requirements, Microsoft Press, 2006.
A commercial requirements management tool that stores information in a multiuser database provides a robust solution to these restrictions. Such products let users import requirements from source documents, define attribute values, filter and display the database contents, export requirements in various formats, define traceability links, and connect requirements to items stored in other software development tools. More than three dozen such tools are on the market today. They range from simple Web-based structures for storing requirements information to powerful multiuser, Web-enabled products with rich feature sets that can handle extremely large projects. I wont attempt to describe the capabilities of all these tools here or to provide specific recommendations. Descriptions and comparative information about many tools can be found online. Avoid the temptation to develop your own RM tool or to cobble together general-purpose office automation products in an attempt to mimic the commercial products. This initially looks like an easy solution, but it can quickly overwhelm a team that doesnt have the resources to build the tool it really wants. Note that I classify these products as requirements management tools, not requirements development tools. They wont help you identify your prospective users or elicit the right requirements for your project. However, they provide a lot of flexibility in managing changes to those requirements and using the requirements as the foundation for design, testing, and project management. Nor do these tools replace a defined process that your team members follow to elicit and manage its requirements. Use a tool when you already have an approach that works but that requires greater efficiency; dont expect a tool to compensate for a lack of process, discipline, experience, or understanding. Many of these tools arent cheap. The high cost of requirements-related problems can justify your investment in them, though. Recognize that the cost of a tool is not simply what you pay for the initial license. The cost also includes maintenance fees and periodic upgrades, annual subscription costs if the product is delivered in the form of software as a service, and the costs of installing the software, performing administration, obtaining vendor support and consulting, and training your users. Your costbenefit analysis should take into account these additional expenses before you make a purchase decision. This paper presents several benefits of using requirements management tools and identifies some general capabilities you can expect to find in such a product. This paper offers some suggestions about how to sensibly integrate a tool into your business and get the maximum benefit from your investment in an RM tool, preventing it from becoming expensive shelfware.
www.jamasoftware.com | 1.800.679.3058
and its current version number, and they let you define additional attributes of various data types. Thoughtful definition of attributes allows stakeholders to view subsets of the requirements based on specific combinations of attribute values. For instance, you might ask to see a list of all the requirements originating from a specific business rule so that you can judge the consequences of a change in that rule. One way to keep track of the requirements that are allocated to the baselines for various releases is by using a Release Number attribute.
5. Control Access
The requirements management tools let you define access permissions for individuals or groups of users and share information with a geographically dispersed team through a Web interface to the database. Communicate with stakeholders. Some tools permit team members to discuss requirements issues electronically through threaded conversations. Automatically triggered email messages notify affected individuals when a new discussion entry is made or when a specific requirement is modified.
6. Reuse Requirements
Storing requirements in a database facilitates reusing them in multiple projects or subprojects. Requirements that logically fit into multiple parts of the product description can be stored once and referenced whenever necessary to avoid duplicating requirements.
www.jamasoftware.com | 1.800.679.3058
The tools often support hierarchical numeric requirement labels, in addition to maintaining a unique internal identifier for each requirement. These identifiers typically consist of a short text prefix that indicates the requirement typesuch as UR for a user requirementfollowed by a unique integer. Some tools provide efficient displays to let you manipulate the hierarchical requirements tree. Output capabilities from the tools include the ability to generate a requirements document, either in a user-specified format or as a tabular report. Several tools let you define an SRS template in Word and then populate this template with information it selects from the database according to user-defined query criteria to produce a customized specification document. An SRS, therefore, is essentially a report generated from selected database contents. Other features include the ability to set up user groups and define permissions for selected users or groups to create, read, update, and delete projects, requirements, attributes, and attribute values. Several of the products let you incorporate nontextual objects such as graphics and spreadsheets into the requirements repository. Some tools also include learning aids, such as tutorials or sample projects, to help users get up to speed. Any of these products will move your requirements management practices to a higher plane of sophistication and capability. However, the diligence of the tools users remains a critical success factor. Dedicated, disciplined, and knowledgeable people will make progress even with mediocre tools, whereas the best tools wont pay for themselves in the hands of unmotivated or ill-trained users. Dont write a check for a requirements management tool unless youre willing to respect the learning curve and make the time investment. Because you cant expect instantaneous results, dont base a projects success on a tool youre using for the first time. Gain some experience working with the tool on a pilot project before you employ it on a high-stakes project.
SELECTING A TOOL
Choose a tool based on the combination of platform, pricing, access modes, and organizing structure that best fits your development environment and culture. When selecting a tool, think about whether a database-centric or document-centric paradigm will be more effective for your organization. In a document-centric approach, you connect your word processing document to the tool, identify specific elements in the document as being discrete requirements, and import those into the tool either automatically or manually. Once those requirements are stored in the tools database, you can manipulate them in the usual ways: assign attributes, define traceability links, and so forth. However, you need to keep the database contents synchronized with the document contents. This synchronization can get clumsy, but its comfortable for people who are accustomed to working with documents. In addition, supplemental information, such as graphics and tables, should remain stored in the word-processing document if the tool cant handle those kinds of objects. This means that users of the requirements must go to multiple locations to get all the information they need about a specific portion of the new product. The database-centric tools dispense with documents entirely and just treat the contents of the repository as the requirements collection. The more powerful products allow you to store various types of objects in the database, including graphics, as well as maintaining links to objects stored in documents or other files. An SRS then becomes a report generated from the database according to selected query and filtering criteria. The tools that are designed with a database at the center eliminate the clumsy synchronization between document and database that the document-centric tools demand. When you go through your selection process, begin by defining your organizations requirements for an RM tool. Identify the capabilities that are most significant to you, such as the other tools with which youd like the product to integrate. Decide whether you want to continue using documents to contain some of your requirements information or whether you prefer to store all the information in a database. The following selection procedure might be helpful: 1. List ten to fifteen factors that will influence your selection decision. Include subjective categories such as tailorability, as well as the efficiency and effectiveness of the user interface. Cost will be a selection factor, of course, but evaluate the tools initially without considering their cost.
Karl Wiegers Getting the Most out of Requirements Management Tool
www.jamasoftware.com | 1.800.679.3058
2. Distribute one hundred points among the selection factors that you listed in step 2, giving more points to the more important factors. 3. Obtain current information about the available requirements management tools, and rate the candidates against each of your selection factors. Scores for the subjective factors will have to wait until you can actually work with each tool. A vendor demonstration can fill in some of the blanks, but the demo will likely be biased toward the tools strengths. A demo isnt a substitute for wrestling the product yourself for several hours. 4. Calculate the score for each candidate based on the weight you gave each factor to see which products appear to best fit your needs. 5. Solicit experience reports from other users of each candidate product, perhaps by posting queries in online discussion forums, to supplement your own evaluation and the vendors literature, demo, and sales pitch. Looking at the vendors support forum is a way to see how frustrated current users appear and what sort of issues they struggle with. 6. Obtain evaluation copies from the vendors of your top-rated tools. Define an evaluation process before you install the candidates to make sure you get the information you need to make a good decision. 7. Evaluate the tools by using a real project, not just the tutorial project that comes with the product. After you complete your evaluations, adjust your rating scores if necessary and see which tool now ranks highest. 8. To make a decision, combine the ratings, licensing costs, and ongoing costs with information on vendor support, input from current users, and your teams subjective impressions of the products.
www.jamasoftware.com | 1.800.679.3058
Requirements are ethereal enough already. Being able to print the requirements gives them a slightly more tangible feel. But storing them in the deep, dark recesses of a database makes them even less tangible. It seems difficult for organizations to completely make the transition from the familiar document approach to storing requirements only in a database. One trap is investing effort into putting requirements in the tool while still retaining the original documents as the master requirements location. Your goal is to have all stakeholders regard the tool as the ultimate source of the current requirements for their project and not rely on the original requirements documents. This culture change will demand gentle pressure relentlessly applied by the managers and change agents in the organization to steer the organization to the new ways of thinking and working. To accelerate the movement from a document-based paradigm to the use of the tool, set a date after which the tools database will be regarded as the definitive repository of the projects requirements. After that date, requirements residing only in word-processing documents wont be recognized as valid requirements.
is satised by
is satised by
permits execution of
is enforced by
is realized by
is characterized by
is implemented by
www.jamasoftware.com | 1.800.679.3058
The arrows in Figure 1 illustrate traceability links that you could define to record the logical connections between different types of requirements stored in the tool. All of these requirements types, attributes, and traceability connections are potentially valuable. However, dont define any more of them than you really expect to populate and use because it takes effort to create and maintain them. Your team should select the information and traceability links that add value to its projects, and they should be diligent about storing that information and keeping it current. Its easy to get carried away with designing the requirements database contents instead of thinking about how your team members will actually use the tool and the information stored in it. Instead of defining more attributes than you can manage, Id rather see you define just three or four attributes initially, populate them, and take good advantage of the data. Priority, status, release number, and rationale comprise a good starter set of attributes for functional requirements.
Assign Responsibilities
Someone must be responsible for the care and feeding of both the tool and the information stored in it. These are reasonable tasks for a business analyst, although the tool administration and content management functions could be split between different people. But the BA wont be the only person working with the information. You might need to give certain individuals authority to update attributes or add traceability data during the project. If these responsibilities are not made clear and accepted by the team members, important work wont get done. This degrades the quantity, quality, and value of the data stored in the tool. For instance, it takes little effortbut considerable disciplineto accumulate traceability information as the software development work is being done. In contrast, its very expensive or even impractical to assemble all the traceability data at the end of the project. All team members who are in a position to generate traceability data (such as developers and testers) must agree to record the traceability links as they do their work.
www.jamasoftware.com | 1.800.679.3058
specification documents into a high-end RM tool. They defined countless traceability links among the various types of requirements stored in the tool. The only thing they did with all the data, though, was to generate hefty traceability reports. As it happened, no one in the organization actually used these reports. The analysts didnt exploit the other features this powerful tool provided, and the developers still relied on paper specifications as the definitive source of requirements. The investment this organization made in acquiring, installing, configuring, and populating its RM tool didnt yield a meaningful return. Conversely, I know of projects that stored their requirements in a tool but didnt take advantage of any capabilities the tool offered for managing those requirements. One of the strongest arguments for requirements management tools is having the ability to define traceability links. The more robust requirements management products even allow analysts to establish such links to objects stored in other tools, such as to design elements stored in a modeling tool, code segments in a version control tool, and tests in a test management tool. If you dont use such features, it diminishes the value of keeping the requirements in a database. The tools also let you define groups and individuals with different permission levels to identify who can read, create, and modify the contents of the database. Access controls are an important consideration for companies that have employees in multiple countries. These companies must be careful not to inappropriately expose sensitive technology and data to individuals who do not have the right to see that information. Take advantage of these tool capabilities to ensure that alland onlythe right peoplecan access the requirements.
www.jamasoftware.com | 1.800.679.3058
www.jamasoftware.com | 1.800.679.3058