Establish a mature requirements management process to cut costs

Use Rational Requirements Composer and Rational Team Concert together for more successful projects

Significant studies have reported that the amount of unplanned cost in IT projects depends a lot on the maturity level of requirements management, and that this is a very important success factor in projects. Ulrike Vauth, an IBM executive architect, shows how to use IBM Rational Requirements Composer and Rational Team Concert together to ensure a stable and mature process. This approach was used in a major real-life customer project where IBM guiding establishing such a process.

Share:

Ulrike Vauth (Ulrike.Vauth@de.ibm.com), Business Architect, IBM

Author1 photoUlrike 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.



20 March 2012

Also available in Chinese

Good requirements management is as critical as good software

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.


Steps toward a strong 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.

Note:
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).

Define the process and the information required

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.

Define deliverables and templates

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
artifact template with sections and table columns

Larger view of Figure 1.

Define attributes for information filters

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
menu to open project properties

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
types, attributes, data and link type definition

Larger view of Figure 3.

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
creating a filter by using type and attributes

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.


Best use of Rational Team Concert collaboration and work item features

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
2 other types of links to requirements artifacts

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
dashboard showing status of requirements

Summary

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:

  1. Define the requirements management process and required information model before you start installing and using a software tool.
  2. Define artifact templates to standardize your deliverables and build common approaches and skills across your team.
  3. Use attributes, filters, folder structure, and links to find the requirements that you work with.
  4. 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.

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Rational software on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Rational, DevOps
ArticleID=801697
ArticleTitle=Establish a mature requirements management process to cut costs
publish-date=03202012