Studies show that unplanned costs in an IT project are often contingent upon the maturity level of requirements management (see study citations in the Resources section). Therefore, an effective and mature requirements management process is a very important factor in the success for any software development project.
The following are typical factors to measure the maturity of requirements management:
- The requirements management process
- Availability of standard templates to produce good deliverables
- Full traceability along the requirements and development process
- Skills of the project team
- Availability of supporting tools.
The maturity level can be increased if the project team or company improves in all of these factors, not just in a few. By simply purchasing a requirements definition and management tool (such as IBM® Rational® Requirements Composer) is not sufficient to improve the project team's development and might merely increase their overall project cost. A tool alone will not help to improve the maturity at all. However, if you manage to introduce a tool in a way that all members of the project team must follow a process, use standard templates, and establish project traceability, then the tool can be the vehicle to improve the overall maturity level of your requirements management process.
This article shows how you can use IBM® Rational® Requirements Composer and IBM® Rational Team Concert™ to ensure stable and mature requirements definition and management. This approach was used in a large real-life customer project, where IBM helped guide the local project team to establish such a process.
This article does not explain how to use Rational Requirements Composer to create requirements or how you could connect them to test cases or implementation tasks. These topics are covered in other developerWorks articles, product documentation in the Rational Requirements Composer Information Centers, or in the Rational Requirements Composer section of Jazz.net (see the Resources citations in this article for links).
Before you even think of installing software tools, you should define your requirements management process and templates. Depending on your situation, you can define it for your project, a whole program, or even for your entire company.
Typically, an existing requirements management process will be taken and adjusted to fit your project. When defining a process, it is important to think about the exceptions that might take place and the participants who will be involved during the process. For example, you need to think about what happens if requirements need to be changed or if some requirements become obsolete. Sometimes, requirements need to be bundled, because they must be delivered together or they need special approval depending on their content. Or you must keep in mind that you must have defined an escalation process if different stakeholders cannot agree on a requirement.
Together with the requirements management process, define a set of templates for the different kinds of documentation that you plan to create during the different steps of the process. In addition to the written requirements, you typically need to gather additional information that you need to run your process or to filter requirements (For example, list the team that originally requested the requirement). It is best to define the required information along the requirements management process and along the documentation that you plan to create at the different process steps.
When these things are clearly defined, you are then ready to set up software tools to support your process. Before you install and set up your own infrastructure, investigate whether a hosted service is not more convenient and much quicker to deploy.
To establish the defined requirements management process, it is important to customize Rational Requirements Composer and Rational Team Concert to meet your needs. There are predefined template structures, but it is better to check the structure against your process definition and make changes as necessary.
Create one artifact template for each type of artifact that you plan to create (for example, one for an initial requirement, one for the definition of a user interface requirement, one for the definition of a business rule). The more you standardize the layout and structure, the more likely the team members are to produce standardized deliverables and to understand the work of other team members. If all of them work according to the same process and templates, it will be easier to switch people between teams (look only for their business skills, but do not hassle with their different process or documentation styles).
To define and manage the artifact templates, I created a directory called Templates in my project folder and then add one artifact for each type by using a TMPL_ prefix. In this directory, you perform all the required changes for your template and publish it by clicking the Create Artifact Template icon (see Figure 1). In all filters that you use to manage your requirements and artifacts, exclude all artifacts that start with the TMPL_ prefix.
Figure 1. Artifact template example
An information filter is a mechanism that you can use to reduce a large amount of artifacts (requirements, for instance) to a shorter, therefore more readable list of artifacts. To reduce the amount of artifacts, you can use information filters to select only artifacts where a specific information (attribute) is set to a specific value.
In the beginning of the project, it is very simple to handle all of the defined artifacts. However, over time, project team members might get lost among the growing scale of requirement artifacts. If you have long-running projects and a large number of participants it is important to do the following:
- Use attributes to create filter queries
- Define a good folder structure
- Work with links that help team members navigate artifact dependencies
Filters are a very good way to find the requirements that interest you. You can filter by using predefined elements, such as name, date, folder structure, or artifact type (or a combination of those), which you can combine with your own information. For each artifact, you can define many attributes. These attributes need to be created within the Manage Project Properties view (see Figure 2) by the administrator or another project lead in the requirements management process so the attributes can be used in the filters.
Figure 2. Enter definitions of attributes
In the Artifact Types view (Figure 3), you can define a set of attributes for each type of artifact.
Figure 3. Sample of artifact type attribute definition
During the creation of each artifact (initial requirement, use case, or user interface definition), you need to set different attributes, such as type of artifact or validity. In some cases, the project administrator sets some key attributes, and a central team or other process participants set the other attributes.
Use standard and specific attributes to define global filters for typical queries, such as "show me all NFRs" or "show me all requirements where the status of a Rational Team Concert element is not closed." The example in Figure 4 uses these filters:
- Exclude all templates with the TMPL_ prefix
- Show only artifacts with the artifact type of "Specification-Artifact"
- Show only specification artifacts that are "nonfunctional requirements"
- Find attributes in which:
- Link type exists: Used in
- Artifact types: requirement
- Team_BMSW: yes
Figure 4. Custom filter that can be published project-wide
Many team members are accustomed to a folder structure like the one on their local systems or on a shared network drive. Therefore, you can also set a folder structure in your Rational Requirements Composer installation. Follow your usual methods which typically shows how elements can be structured.
Rational Requirements Composer is very helpful for writing requirements, establishing traceability between different artifacts, and using the Review feature for quality reviews. Therefore, you can use it completely to define, develop, and review requirements.
However, for defining a workflow (with status values), assigning an owner, and using the Discussion or a Subscribe features, Rational Team Concert is a much more suitable tool. In summary:
- Use Rational Requirements Composer to define, discuss, and review the content
- Use Rational Team Concert to run and control the requirements management process.
The benefit of this approach is that all content-related information, including requirements, glossary terms, and specification elements, is in one place: Rational Requirements Composer. Likewise, all project management data, including tasks, monitoring, and plans, is in one place: Rational Team Concert. Both tools are seamlessly integrated, so you can filter requirements in Rational Requirements Composer that either have a specific status in Rational Team Concert or have a specific information (priority, for example) in Rational Requirements Composer.
This specific project example uses the Tracked By link in Rational Requirements Composer. Whenever we create a new requirement in Rational Requirements Composer, we add a related Rational Team Concert work item by using the Tracked By link type. The Rational Team Concert work item is created automatically when we select Create new in the Create Link window of Rational Requirements Composer.
Figure 5. Tracked By link to a Rational Team Concert work item
We defined a special Requirement work item in Rational Team Concert, which has a status flow according to our requirements management process. We assigned the responsible person who should act next on the requirement and used the discussion feature to document what was happening in the process (escalated because of…, waiting for feedback from…, and so forth).
The use of a related work item in Rational Team Concert is very helpful if you have a requirements management team managing the process, not just a single person. Everyone from the team can subscribe to the work item, so that everyone is aware of the ongoing changes. By using the Rational Team Concert dashboard, the team can also see the number of requirements in a specific status.
Figure 6. Status overview in Rational Team Concert, showing all project requirements
A project team can combine Rational Requirements Composer and Rational Team Concert and use them as a collective vehicle to establish and maintain a mature requirements management process in your organization by following these four steps:
- Define the requirements management process and required information model before you start installing and using a software tool.
- Define artifact templates to standardize your deliverables and build common approaches and skills across your team.
- Use attributes, filters, folder structure, and links to find the requirements that you work with.
- Use the Tracked By option and work items in Rational Team Concert to control and run your requirements management process so that your team and the project benefit from the collaboration and reporting features.
Obviously, these steps will not happen without the team's involvement. It is important to establish a strong requirements management team that defines and runs the process. The requirements management team needs full management support because different project members will always find reasons to follow the older process. The project team must show clear leadership to ensure that everybody is working according the defined requirements management process. As your new process begins running smoothly, you will recognize the ability to adjust the size and roles of your team, which gives you the additional benefits of improved process efficiency.
- Studies alluded to in the introduction:
- 2009 Business Analysis Benchmark Study by IAG Consulting (Information Architecture Group), 2009
- The Five Levels of Requirements Management Maturity (PDF) by Jim Heumann, The Rational Edge, IBM developerWorks, 2003
- To learn more, start with the developerWorks page for Rational Requirements Composer, and then review the product overview page and the features and benefits. For details and documentation, check the information center. You will also find useful information in the Rational Requirements Composer section of Jazz.net.
- For more about Rational Team Concert:
- Find Rational Team Concert articles and links to many other resources on IBM developerWorks.
- Check the Rational Team Concert page on Jazz.net.
- Watch the Using Rational Team Concert in a globally distributed team webcast or a demonstration of the Dashboards and reports, or listen to the podcast about IBM Rational Team Concert and Jazz.
- Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM products and tools, as well as IT industry trends.
- Watch developerWorks on-demand demos, ranging from product installation and setup demos for beginners to advanced functionality for experienced developers.
- Improve your skills. Check the Rational training and certification catalog, which includes many types of courses on a wide range of topics. You can take some of them anywhere, any time, and many of the "Getting Started" ones are free.
Get products and technologies
- Download the Rational Requirements Composer free trial or try it on the cloud.
- Download Rational Team Concert from Jazz.net and try it for free on up to 10 projects for as long as you want (requires registration)
- Evaluate IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.
- Join the Rational Requirements Composer forum to ask questions and participate in discussions.
- Join the Rational Team Concert discussions or ask questions in the Jazz.net forums.
- Rate or review Rational software. It's quick and easy.
- Share your knowledge and help others who use Rational software by writing a developerWorks article. Find out what makes a good developerWorks article and how to proceed.
- Follow Rational software on Facebook, Twitter (@ibmrational), and YouTube, and add your comments and requests.
- Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis.
- Get social about thought leadership. Join the Rational community to share your Rational software expertise and get connected with your peers.
Ulrike Vauth is an executive architect at IBM Global Business Services, in Germany. She has worked for IBM for the past 25 years and has a degree in Technical Information Technology. She started with programming, quickly moved to design and architecture work, and led all kinds of application development projects as an IT architect or business architect in Germany, Sweden, Switzerland, the US, and other countries. She has full lifecycle experience in midsize to large application development, including requirements engineering, specification, design, code, test, and go-live. She is a member of the IBM Academy of Technology Leadership Team, as well as the IBM Technical Leadership Team in Germany. She is certified as an Open Group Distinguished Certified IT Architect.