CMMI process work item types and workflow

Azure Boards | Azure DevOps Server 2019 | TFS 2018 | TFS 2017 | TFS 2015 | TFS 2013

Teams use the work item types (WITs) provided with the MSF for CMMI Process Improvement 2015 (CMMI) process to plan and track progress of software projects. Teams define requirements to manage the backlog of work and then, using the Kanban board, track progress by updating the status of requirements.

CMMI process work item types, conceptual image

To gain insight into a portfolio of requirements, product owners can map requirements to features. When teams work in iterations, they define tasks that automatically link to requirements.

Using Microsoft Test Manager and the web portal, testers create and run test cases and define bugs to track code defects.

To support additional CMMI processes, teams can track change requests, risks, issues, and notes captured in review meetings. If you are new to the CMMI process, review the section Plan and track work with CMMI to get started.


Work item tracking forms and features available to you differ depending on whether you open the form from the web portal or Visual Studio Team Explorer. Forms and guidance provided in this article reflect those available with the new form experience (Azure DevOps Services and TFS 2017 and later versions).

For guidance on the work item form for TFS 2015 or earlier versions or Visual Studio Team Explorer, see Add work items and select the earlier TFS version from the content version selector (above the table of contents).

Define requirements

Create requirements from the quick add panel on the product backlog page. Alternatively, you can bulk add requirements using Excel or Project.

CMMI process, Quick add panel on the requirements backlog page

Later, you can open each requirement to provide more details and estimate its size.

Requirement work item form

Requirements specify the functions and product elements that teams need to create. Product owners typically define and stack rank requirements on the product backlog page. The team then scopes the size of the effort to deliver the highest priority items.

Use the following guidance and that provided for fields used in common across work item types when filling out the form. For additional guidance, see Plan a project.

Field Usage


Provide enough detail for estimating how much work will be required to implement the requirement. Focus on who the requirement is for, what users want to accomplish, and why. Don't describe how the requirement should be developed. Do provide sufficient details so that your team can write tasks and test cases to implement the item.

In HTML fields, you can add rich text and images.

Impact Assessment

The customer impact of not implementing this requirement. You might include details from the Kano model about whether this requirement is in the surprise, required, or obvious categories. You capture this information in the rich-text HTML field which corresponds to Impact Assessment.

Requirement Type (Required)

The kind of requirement to implement. You can specify one of the following values:

  • Business Objective

  • Feature (default)

  • Functional

  • Interface

  • Operational

  • Quality of Service

  • Safety

  • Scenario

  • Security

Value area

The area of customer value addressed by the epic, feature, requirement, or backlog item. Values include:

  • Architectural : Technical services to implement business features that deliver solution

  • Business: Services that fulfill customers or stakeholder needs that directly deliver customer value to support the business (Default)


Estimate the amount of work required to complete a requirement using any numeric unit of measurement your team prefers.

By defining the Size for requirements, teams can use the Agile velocity charts and forecast tools to estimate future iterations or work efforts. The Kanban Cumulative Flow Diagram references the values in this field. For additional guidance, see the Estimating white paper.

Original Estimate

The amount of estimated work required to complete a task. Typically, this field doesn't change after it is assigned.

You can specify work in hours or in days. There are no inherent time units associated with this field.

Start Date/Finish Date

The target dates for when the work will start or finish. These fields are filled in by Microsoft Project when you use it for scheduling.

You can specify work in hours or in days. There are no inherent time units associated with this field.

Priority (Required)

A subjective rating of the requirement as it relates to the business. Allowed values are:

  • 1: Product cannot ship without the item.

  • 2: (default) Product cannot ship without the item, but it doesn't have to be addressed immediately.

  • 3: Implementation of the item is optional based on resources, time, and risk.

Triage (Required)

Indicates the type of triage decision that is pending for the work item. Use this field when the work item is in the Proposed state and specify one of the following values: Pending (default), More Info, Info Received, and Triaged.


Indicates whether a team member is prevented from making progress toward implementing a requirement or task or resolving a bug, change request, or risk. If an issue has been opened to track a blocking problem, you can create a link to the issue. You can specify Yes of No.

Committed (Required)

Indicates whether the requirement is committed in the project or not. You can specify Yes or No (default).

Integrated In

Product build number that incorporates the requirement, change request, or fixes a bug.

User Acceptance Test (Required)

The status of the user acceptance test for a requirement. You can specify one of the following values:

  • Pass

  • Fail

  • Not Ready (default)

  • Ready

  • Skipped

  • Info Received

You specify Not Ready when the requirement is in the Active state, and you specify Ready when the requirement is in the Resolved state.

Subject Matter Experts

The names of team members who are familiar with the customer area that this requirement represents.

Capture comments in the Discussion section

Use the Discussion section to add and review comments made about the work being performed.

Discussion section within a work item form

The rich text editor tool bar displays below the text entry area when you click your cursor within each text box that can be formatted.

Discussion section, New Rich Text Editor toolbar

Mention someone, a group, work item, or pull request ( ,  , or pull-request id icon)

Choose one of these icons — ,  , or pull-request id icon— to open a menu of recent entries you've made to mention someone, link to a work item, or link to a pull request. Or, you can simply type @, #, or ! to open the same menu.

Discussion section, @mention drop-down menu


This latest version of the rich text editor requires Azure DevOps Server 2019 Update 1 or later version.

Type a name, or enter a number and the menu list will filter to match your entry. Choose the entry you want to add. You can bring a group into the discussion by typing @ and the group name, such as a team or security group.

Edit or delete a comment

If you need to edit or delete any of your discussion comments, choose  Edit or choose the  actions icon and then choose Delete.

Discussion section, Edit, Delete actions


The edit/delete feature requires Azure DevOps Server 2019 Update 1 or later version.

After updating the comment, choose Update. To delete the comment, you'll need to confirm that you want to delete it.

A full audit trail of all edited and deleted comments is maintained in the History tab on the work item form.

Use the @mention control to notify another team member about the discussion. Simply type @ and their name. To reference a work item, use the #ID control. Type # and a list of work items that you've recently referenced will appear from which you can select.

To reference a work item, use the #ID control. Type # and a list of work items that you've recently referenced will appear from which you can select.


For on-premises Azure DevOps Server or TFS, you must configure an SMTP server in order for team members to receive notifications.

Note that you can't edit or delete comments once they've been entered.

Add a reaction to a comment

You can add one or more reactions to any comment. Choose a smiley icon at the upper-right corner of any comment or choose from the icons at the bottom of a comment next to any existing reactions. To remove your reaction, click the reaction on the bottom of your comment. The following shows an example of the experience of adding a reaction, as well as the display of reactions on a comment.

Add reactions to a comment

Track progress

As work progresses, you change the State field to update the status. Optionally, you can specify a reason. The state and reason fields appear on the work item form in the header area.

Bug work item form, header area

CMMI workflow states

These diagrams show the main progression and regression states for the Requirement, Bug, and Task WITs.

Requirement Bug Task
Requirement workflow states, CMMI process Bug workflow states, CMMI process Task workflow states, CMMI process

The typical workflow progression for a requirement is:

  • The product owner creates a requirement in the Proposed state with the default reason, New requirement.
  • The product owner updates the status to Active when they begin work to implement it.
  • The team updates the status to Resolved when code development is finished and system tests have passed.
  • Lastly, the team or product owner moves the requirement to Closed when the product owner agrees that it has been implemented according to the Acceptance Criteria and passed all validation tests.

Update status with Kanban or taskboards

Teams can use the Kanban board to update the status of requirements, and the sprint taskboard to update the status of tasks. Dragging items to a new state column updates both the State and Reason fields.

Web portal, Track progress on the Kanban board

You can customize the Kanban board to support additional swim lanes or columns. For additional customization options, see Customize your work tracking experience.

Map requirements to features

hen you manage a suite of products or user experiences, you might want to view the scope and progress of work across the product portfolio. You can do this by defining features and mapping requirements to features.

Using portfolio backlogs, you can drill down from one backlog to another to view the level of detail you want. Also, you can use portfolio backlogs to view a rollup of work in progress across several teams when you setup a hierarchy of teams.

The feature work item contains similar fields provided for requirements and includes additional fields, as the following table describes.

Define tasks

When your team manages their work in sprints, they can use the sprint backlog page to break down the work to be accomplished into distinct tasks.

Web portal, Add task link on a sprint backlog page

Name the task and estimate the work it will take.

CMMI Task work item form

When teams estimate work they define tasks and estimate the hours or days to complete tasks. Teams forecast work and define tasks at the start of an iteration, and each team member performs a subset of those tasks. Tasks can include development, testing, and other kinds of work. For example, a developer can define tasks to implement requirements, and a tester can define tasks to write and run test cases. By linking tasks to requirements and bugs, they see the progress made on these items. For additional guidance, see Iteration activities.



Task Type

Select the kind of task to implement from the allowed values:

  • Corrective Action

  • Mitigation Action

  • Planned


Select the discipline this task represents when your team estimates sprint capacity by activity.

  • Analysis

  • Development

  • Test

  • User Education

  • User Experience

This field is also used to calculate capacity by discipline. It is assigned to type="Activity" in the ProcessConfiguration file. (2)

For additional guidance, see Implement development tasks.

Original Estimate

The amount of estimated work required to complete a task. Typically, this field doesn't change after it is assigned.

Remaining Work

The amount of work remaining to complete a task. As work progresses, update this field. It's used to calculate capacity charts, the sprint burndown chart, and the Sprint Burndown report.

If you divide a task into subtasks, specify hours for the subtasks only. You can specify work in any unit of measurement your team chooses.

Completed Work

The amount of work that has been spent implementing a task.

Track test progress

Test requirements

From the web portal or Test Manager, you can create test cases that automatically link to a requirement or bug. Or, you can link a requirement to a test case from the Links tab icon (links tab).

Select the test suite and add a test case

The test case contains a number of fields, many of which are automated and integrated with Test Manager and the build process. For a description of each field, see Query based on build and test integration fields.

Web portal, Test case work item form

The Links tab icon (links tab) lists all the requirements and bugs in a test case. By using linking, the team can track the progress made in testing each item and supports information that appears in the Requirements Overview Report report.

Track code defects

You can create bugs from the web portal web portal, Visual Studio, or when testing with Test Manager.

Track change requests, risks, issues, and notes captured in review meetings

In addition to the requirement, feature, task, and bug WITs, you can track information recommended by the CMMI process with the following WITS.

Add work item from a New work item widget

Work items you add from the widget are automatically scoped to your team's default area and iteration paths. To change the team context, see Switch team context.

Definitions for common WIT fields

The following fields and tabs appear in most work items. Each tab is used to track specific information, such as History tab icon history, Links tab icon links, or Attachment tab icon attachments. These three tabs provide a history of changes, view of linked work items, and ability to view and attach files.

The only required field for all WITs is Title. When the work item is saved, the system assigns it a unique ID. The form highlights required field in yellow. For information about other fields, see Work item field index.




Enter a description of 255 characters or less. You can always modify the title later.

Assigned To

Assign the work item to the team member responsible for performing the work. Depending on the context you are working in, the drop-down menu will list only team members or contributors to the project.


When the work item is created, the State defaults to the first state in the workflow. As work progresses, update it to reflect the current state.


Use the default first. Update it when you change state. Each State is associated with a default reason.


Choose the area path associated with the product or team, or leave blank until assigned during a planning meeting.

To change the dropdown list of areas, see Add and modify area and iteration paths.


Choose the sprint or iteration in which the work is to be completed, or leave it blank and assign it later, during a planning meeting.

To change the drop-down list of iterations, see Add and modify area and iteration paths.

History tab icon(History)

Review the audit trail that the system captures and capture additional information.

Every time that the work item is updated, information is appended to the history. History includes the date of the change, who made the change, and which fields were changed. You can also add formatted text to the history field.

Links tab icon (Links)

Add all types of links, such as hyperlinks, changesets, source files, and so on.

This tab also lists all links defined for the work item.

Attachment tab icon(Attachments)

Share more detailed information by adding files to the work item, such as email threads, documents, images, log files, or other file types.

Customize work item types

You can add fields, change the workflow, add custom rules, and add custom pages to the work item form of most work item types. You can also add custom work item types. For details, see Customize an inheritance process.

You can add fields, change the workflow, add custom rules, and add custom pages to the work item form of most work item types. You can also add custom work item types. For details, see Customize the On-premises XML process model.

Before you start tracking work, you must have a project. To create one, see Create a project.

If you have a project, start tracking work:

For more information on Agile tools:

Backlog list order

The Stack Rank field is used to track the relative ranking of requirements, features, or epics. However, by default it doesn't appear on the work item form. The sequence of items on the backlog page is determined according to where you have added the items or moved the items on the page. As you drag items, a background process updates this field.

This field doesn't appear on the work item form.

Work item forms displayed in a client and the web portal for TFS 2015 and earlier versions display link tabs and link control restrictions as described in the following table.

Tab name

Work item type

Link restrictions

All Links



Change Request

Feedback Request




Shared Steps


Test Case

  • No restrictions.



  • Allows only Parent and Child links between requirements and tasks.

  • Excludes links to work items in other projects.


Code Review Request

  • Allows only Parent and Child links to Code Review Response work items.

  • Excludes links to work items in other projects.


Change Request

  • Allows only Affects link type to link change requests to requirements.

  • Excludes links to work items in other projects.


Feedback Response

  • Allows only Related links to requirements.

  • Excludes links to work items in other projects.



  • Allows only Storyboard links.

Test Cases



  • Allows only Tested By links.

  • Allows links only to test cases.

  • Excludes links to work items in other projects.

Tested Requirements

Test case

  • Allows only Tests links.

  • Allows links only to requirements.

  • Excludes links to work items in other projects.