CMMI process work item types and workflow in Azure Boards
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
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 your board, track progress by updating the status of requirements.
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 other CMMI processes, teams can track change requests, risks, issues, and notes captured in review meetings. If you're new to the CMMI process, review the section Plan and track work with CMMI to get started.
Define requirements
Create requirements from the quick add panel on the product backlog page. Later, you can open each requirement to provide more details and estimate its size.
Or, you can bulk add requirements using a cvs file.
Important
Microsoft Project Integration and the TFSFieldMapping
command aren't supported for:
- Visual Studio 2019 and Azure DevOps Office Integration 2019.
- Azure DevOps Server 2019 and later versions, including Azure DevOps Services.
Full support for Microsoft Excel integration is maintained, allowing bulk import and update of work items. Alternatives to using Microsoft Project include:
- Delivery Plans
- Marketplace extensions like Project Connect or GANTT chart
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 more information, 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.
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 that 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
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 Cumulative Flow Diagram references the values in this field. For more information, see the Estimating white paper.
The amount of estimated work required to complete a task. Typically, this field doesn't change after it's assigned.
You can specify work in hours or in days. There are no inherent time units associated with this field.
The target dates for when the work will start or finish.
Priority (Required)
A subjective rating of the requirement as it relates to the business. Allowed values are:
- 1: Product can't ship without the item.
- 2: (default) Product can't 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).
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.
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.
The rich text editor tool bar displays below the text entry area. It appears when you select each text box that supports text formatting.
Note
There isn't a Discussion work item field. To query work items with comments entered in the Discussion area, you filter on the History field. The full content of the text entered into the Discussion text box is added to the History field.
Mention someone, a group, work item, or pull request
To open a menu of recent entries you've made to mention someone, link to a work item, or link to a pull request, select
or
, or enter
@
, #
, or !
.
Enter a name or number and the menu list filters to match your entry. Choose the entry you want to add. To bring a group into the discussion, enter @
and the group name, such as a team or security group.
Edit or delete a comment
To edit or delete any of your discussion comments, choose
Edit or choose the
actions icon, and then choose Delete.
Note
Editing and deleting comments requires Azure DevOps Server 2019 Update 1 or later version.
After updating the comment, choose Update. To delete the comment, 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.
Important
For on-premises Azure DevOps Server, you must configure an SMTP server for team members to receive notifications.
Add a reaction to a comment
Add one or more reactions to a comment by choosing 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, choose the reaction on the bottom of your comment. The following image shows an example of the experience of adding a reaction and the display of reactions on a comment.
Save a comment without saving the work item
Note
This feature is available starting in Azure DevOps Server 2022.1.
If you only have permissions to add to the Discussion of a work item, then you can do so by saving comments. This permission is controlled by Area Path nodes and the Edit work item comments in this node permission. For more information, see Set work tracking permissions, Create child nodes, modify work items under an area or iteration path.
Once you save the comments, you don't need to save the work item.
Note
When you save changes made to the Discussion control, only the comment is saved. No work item rules defined for the work item type execute.
Track work 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.
![Screenshot of Bug work item form, header area.](media/agile-bug-form-state-reason.png?view=azure-devops)
CMMI workflow states
These diagrams show the main progression and regression states for the Requirement, Bug, and Task WITs.
Requirement | Bug | Task |
---|---|---|
![]() |
![]() |
![]() |
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 work status with a board or Taskboards
Teams can use the 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.
You can customize the board to support more swim lanes or columns.
Map requirements to features
When 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 view scope 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 other 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.
![Screenshot of Web portal, Add task link on a sprint backlog page](media/ic697755.png?view=azure-devops)
Name the task and estimate the work it will take.
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 does 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 more information, see Iteration activities.
Field
Usage
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's assigned to type="Activity"
in the ProcessConfiguration file. (2)
For more information, see Implement development tasks.
The amount of estimated work required to complete a task. Typically, this field doesn't change after it's assigned.
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.
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).
The test case contains many 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.
![Screenshot of Web portal, Test case work item form.](media/agile-test-case-form.png?view=azure-devops)
The
(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
Along with the requirement, feature, task, and bug WITs, you can track information recommended by the CMMI process with the following WITS.
- Change request to manage proposed changes to any work product that is under change control.
- Issue to track an event or situation that might block work or is blocking work on the product. Issues differ from risks in that teams identify issues spontaneously, generally during daily team meetings.
- Risk to track the probability and degree of variance between actual and desired outcomes. When you manage risks, you strategically minimize the variance between the outcome that you want and the actual outcome.
- Review to document the results of a design or code review. Team members can capture the details of how the design or code meets standards in areas of name correctness, code relevance, extensibility, code complexity, algorithmic complexity, and code security.
You can add an issue from the New work item widget added to a team dashboard, or from the New menu on the Queries page.
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 work tracking fields
The following fields and tabs appear in most work items. Each tab gets used to track specific information, such as
History,
Links, or
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 work item types is Title. When you save a work item, the system assigns it a unique ID. The form highlights required field in yellow. For information about other fields, see Work item field index.
Note
Additional fields may be required depending on customizations made to your process and project.
Field/tab
Usage
Enter a description of 255 characters or less. You can always modify the title later.
Assign the work item to the team member responsible for performing the work.
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 Define area paths and assign to a team.
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 Define iteration paths (sprints) and configure team iterations.
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.
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.
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
For most work item types, you can add fields, change the workflow, add custom rules, and add custom pages to the work item form. You can also add custom work item types. For more information, see Customize an inheritance process.
For most work item types, you can add fields, change the workflow, add custom rules, and add custom pages to the work item form. You can also add custom work item types. For more information, see Customize an inheritance process or Customize the On-premises XML process model depending on the process model used by your project.
Related articles
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've 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.
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for