Documentation (#63)
* documentation * Documentation * WSJF-Documentation * Documentation * Documentation * Documentation * Documentation * Documentation * Documentation * Documentation * documentation * Documentation
Двоичные данные
marketplace/CreateField.png
До Ширина: | Высота: | Размер: 9.3 KiB |
Двоичные данные
marketplace/Recalculate.gif
До Ширина: | Высота: | Размер: 372 KiB |
После Ширина: | Высота: | Размер: 62 KiB |
Двоичные данные
marketplace/Settings.gif
До Ширина: | Высота: | Размер: 123 KiB |
Двоичные данные
marketplace/Settings.png
До Ширина: | Высота: | Размер: 31 KiB |
После Ширина: | Высота: | Размер: 101 KiB |
После Ширина: | Высота: | Размер: 92 KiB |
После Ширина: | Высота: | Размер: 38 KiB |
Двоичные данные
marketplace/WSJF_on_backlog.png
До Ширина: | Высота: | Размер: 20 KiB |
|
@ -1,38 +1,104 @@
|
|||
WSJF enables a **calculated field** for computing and storing WSJF on your work items.
|
||||
# WSJF (Weighted Shortest Job First)
|
||||
|
||||
![WSJF displaying on the work item form](marketplace/WSJF_on_form.png)
|
||||
Weighted Shortest Job First (WSJF) is a prioritization technique used in the Scaled Agile Framework (SAFe) to sequence work items based on their economic impact and size. It calculates the Cost of Delay (considering user value, time criticality, and risk reduction/opportunity enablement) divided by the job size to determine priority. WSJF helps teams maximize ROI by ensuring the most valuable tasks are tackled first, fostering efficient resource allocation and decision-making in agile environments.
|
||||
|
||||
# Documentation
|
||||
|
||||
The [Scaled Agile Framework](http://www.scaledagileframework.com) defines [WSJF (Weighted Shortest Job First)](http://www.scaledagileframework.com/wsjf/) as a calculation of cost of delay vs. job size which can help teams prioritize their portfolio backlogs with the items contributing the highest ROI.
|
||||
|
||||
![WSJF = (Business Value + Time Criticality)/Job Size](http://www.scaledagileframework.com/wp-content/uploads/2014/07/Figure-2.-A-formula-for-calculating-WSJF.png)
|
||||
![WSJF = Business Value + Time Criticality + Risk Reduction | Opportunity Enablement /Effort](marketplace/WSJF-used-values.png)
|
||||
|
||||
Three values are used to calculate WSJF:
|
||||
* **Business Value**
|
||||
* **Time Criticality**
|
||||
* **Job Size**
|
||||
### The values used to calculate WSJF
|
||||
|
||||
# Setup
|
||||
1. The first thing you need is to create the field that will store the WSJF values. [Create a custom decimal field](https://www.visualstudio.com/en-us/docs/work/process/customize-process-field#add-a-custom-field) through the process hub and add it to the work items you want to display WSJF data on.
|
||||
![WSJF displaying on the work item form](marketplace/CreateField.png)
|
||||
- Business Value
|
||||
- Time Criticality
|
||||
- Risk Reduction | Opportunity Enablement
|
||||
- Job Size (Effort)
|
||||
|
||||
*NOTE: If you're using TFS onprem, you need to use witadmin to [Create a custom decimal field](https://www.visualstudio.com/en-us/docs/work/customize/add-modify-field#to-add-a-custom-field)*
|
||||
### The steps below shows how to configure and use the WSJF extension
|
||||
|
||||
2. Navigate to the "WSJF" hub on the collection settings admin experience. From here, you must specify the fields that will be used for Business Value, Time Criticality, Job Size and WSJF. The first three are defaulted to the fields provided out of the box by Microsoft but can be changed to custom fields if you prefer.
|
||||
![WSJF displaying on the work item form](marketplace/Settings.png)
|
||||
1. Create Fields
|
||||
|
||||
# Features
|
||||
## Auto calculated WSJF field on the form
|
||||
* WSJF is automatically updated when form is loaded.
|
||||
* WSJF is automatically updated when the Business Value, Time Criticality, or Effort fields are updated.
|
||||
- The first thing you need is to create the fields that will store the RR-OE and WSJF values. Create a custom decimal field through the process hub and add it to the work items you want to display WSJF data on.
|
||||
![Create a custom decimal field](marketplace/WSJF-create-fields.png)
|
||||
|
||||
2. Configure WSJF
|
||||
|
||||
- Navigate to the "WSJF" hub in the organisation settings. From here, you must specify the fields that will be used for Business Value, Time Criticality, Job Size and WSJF. The first three are defaulted to the fields provided out of the box by Microsoft but can be changed to custom fields if you prefer.
|
||||
![WSJF displaying on the work item form](marketplace/WSJF-Setting.png)
|
||||
|
||||
3. Auto calculated WSJF field on the form
|
||||
|
||||
- WSJF is automatically updated when the form is loaded.
|
||||
- WSJF is automatically updated when the Business Value, Time Criticality, Effort, or Risk Reduction fields are updated.
|
||||
![WSJF is automatically updated on the work item form](marketplace/AutoCalcWSJF.gif)
|
||||
|
||||
## Recalculate WSJF context menu item
|
||||
* Update WSJF for all selected work items on the backlog or query grid.
|
||||
![Recalculate WSJF on the backlog](marketplace/Recalculate.gif)
|
||||
4. Recalculate WSJF context menu item
|
||||
|
||||
## Settings hub
|
||||
* Specify which fields are used for WSJF, Business Value, Time Criticality, and Effort .
|
||||
![Mapping fields for calculation](marketplace/Settings.gif)
|
||||
- Update WSJF for all selected work items on the backlog or query grid.
|
||||
![Recalculate WSJF on the backlog](marketplace/RecalculateWSJF.gif)
|
||||
|
||||
_NOTE: If you're using Azure DevOps Server, you need to use witadmin to [Create a custom decimal field](https://www.visualstudio.com/en-us/docs/work/customize/add-modify-field#to-add-a-custom-field)_
|
||||
|
||||
## Adding RROE and WSJF Score Values (For Azure DevOps Server)
|
||||
|
||||
Export your WorkItem.XML file (ie. Epic.XML) using [WITAdmin](https://learn.microsoft.com/en-us/previous-versions/azure/devops/reference/witadmin/witadmin-import-export-manage-wits?view=tfs-2018)
|
||||
At the bottom of your "Fields" section add the following (Name and reference names may vary):
|
||||
|
||||
```xml
|
||||
<FIELD name="WSJF Risk-Reduction Opportunity-Enablement"
|
||||
refname="WSJF.RROEValue"
|
||||
type="Integer"
|
||||
reportable="dimension">
|
||||
<HELPTEXT>WSJF Risk-Reduction</HELPTEXT>
|
||||
</FIELD>
|
||||
<FIELD name="WSJF Score"
|
||||
refname="WSJF.Score"
|
||||
type="Double"
|
||||
reportable="dimension">
|
||||
<HELPTEXT>WSJF Score</HELPTEXT>
|
||||
</FIELD>
|
||||
```
|
||||
|
||||
3. Under your `<Form>` and `<WebLayout>` tags, choose where you would like the WSJF calculation to go and add:
|
||||
|
||||
```xml
|
||||
<Section>
|
||||
<Group Label="WSJF">
|
||||
<Control Label="User-Business Value"
|
||||
Type="FieldControl"
|
||||
FieldName="Microsoft.Azure DevOps.Common.BusinessValue"
|
||||
EmptyText="[Numbered Value]" />
|
||||
<Control Label="Urgency/Time Criticality"
|
||||
Type="FieldControl"
|
||||
FieldName="Microsoft.Azure DevOps.Common.TimeCriticality"
|
||||
EmptyText="[Numbered Value]" />
|
||||
<Control Label="Risk Reduction/Opportunity Enablement"
|
||||
Type="FieldControl"
|
||||
FieldName="WSJF.RROEValue"
|
||||
EmptyText="[Numbered Value]" />
|
||||
<Control Label="Size"
|
||||
Type="FieldControl"
|
||||
FieldName="Microsoft.Azure DevOps.Scheduling.Effort"
|
||||
EmptyText="[Numbered Value]" />
|
||||
<Control Label="WSJF Score"
|
||||
Type="FieldControl"
|
||||
FieldName="WSJF.Score"
|
||||
EmptyText="[Numbered Value]" />
|
||||
</Group>
|
||||
</Section>
|
||||
|
||||
```
|
||||
|
||||
- After this is done, open up your WSJF tab and adjust your settings
|
||||
![WSJF_Settings](marketplace/WSJF_Settings.png)
|
||||
|
||||
## Support
|
||||
Because this extension requires the new work item form, it is only supported on VSTS and the next version of TFS (Dev15-RC1).
|
||||
|
||||
## How to file issues and get help
|
||||
|
||||
This project uses [GitHub Issues](https://github.com/microsoft/AzureDevOps-WSJF-Extension/issues) to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue.
|
||||
|
||||
## Microsoft Support Policy
|
||||
|
||||
Support for this project is limited to the resources listed above.
|
102
readme.md
|
@ -1,87 +1,41 @@
|
|||
# WSJF (Weighted Shortest Job First)
|
||||
|
||||
WSJF enables a **calculated field** for computing and storing WSJF on your work items.
|
||||
Weighted Shortest Job First (WSJF) is a prioritization technique used in the Scaled Agile Framework (SAFe) to sequence work items based on their economic impact and size. It calculates the Cost of Delay (considering user value, time criticality, and risk reduction/opportunity enablement) divided by the job size to determine priority. WSJF helps teams maximize ROI by ensuring the most valuable tasks are tackled first, fostering efficient resource allocation and decision-making in agile environments.
|
||||
|
||||
![WSJF displaying on the work item form](marketplace/WSJF_on_form.png)
|
||||
# Documentation
|
||||
|
||||
The [Scaled Agile Framework](http://www.scaledagileframework.com) defines [WSJF (Weighted Shortest Job First)](http://www.scaledagileframework.com/wsjf/) as a calculation of cost of delay vs. job size which can help teams prioritize their portfolio backlogs with the items contributing the highest ROI.
|
||||
For detailed instructions on using the WSJF (Weighted Shortest Job First) for Azure DevOps , please refer to the official documentation. You can access the comprehensive guide by clicking [Marketplace](https://marketplace.visualstudio.com/items?itemName=MS-Agile-SAFe.WSJF-extension). This resource provides step-by-step information to help you effectively utilize the WSJF features within your Azure DevOps environment.
|
||||
|
||||
![WSJF = (Business Value + Time Criticality - Risk Reduction | Opportunity Enablement Value)/Job Size](http://www.scaledagileframework.com/wp-content/uploads/2014/07/Figure-2.-A-formula-for-calculating-WSJF.png)
|
||||
# Support
|
||||
|
||||
Four values are used to calculate WSJF:
|
||||
* **Business Value**
|
||||
* **Risk Reduction | Opportunity Enablement Value**
|
||||
* **Time Criticality**
|
||||
* **Job Size**
|
||||
## How to file issues and get help
|
||||
|
||||
## Requirements
|
||||
This project uses [GitHub Issues](https://github.com/microsoft/AzureDevOps-WSJF-Extension/issues) to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue.
|
||||
|
||||
The extension has been tested and verified on Node v12.0.0 and above.
|
||||
## Microsoft Support Policy
|
||||
|
||||
## Building the extention
|
||||
Support for this project is limited to the resources listed above.
|
||||
|
||||
From the project root, run the following terminal commands:
|
||||
# Contributing
|
||||
|
||||
We welcome contributions to improve the extension. If you would like to contribute, please fork the repository and create a pull request with your changes. Your
|
||||
contributions help enhance the functionality and usability of the extension for the entire community.
|
||||
|
||||
**Note:** do not publish the extension as a public extension under a different publisher as this will create a clone of the extension and it will be unclear to the
|
||||
community which one to use. If you feel you don't want to contribute to this repository then publish a private version for your use-case.
|
||||
|
||||
Check out https://learn.microsoft.com/en-us/azure/devops/extend/get-started to learn how to develop Azure DevOps extensions.
|
||||
|
||||
### Building the extention
|
||||
|
||||
```bash
|
||||
npm install # Install node dependencies
|
||||
npm run build # Compile the source code
|
||||
npm run package # Package the extension .vsix
|
||||
# Install node dependencies
|
||||
npm install
|
||||
|
||||
# Build the extension
|
||||
npm run build
|
||||
```
|
||||
## About Microsoft DevLabs
|
||||
|
||||
This will produce the .vsix package file that you can upload to the Azure Marketplace or install on your on-prem extension gallery.
|
||||
|
||||
# Setup
|
||||
1. The first thing you need is to create the fields that will store the RR-OE and WSJF values. [Create a custom decimal field](https://www.visualstudio.com/en-us/docs/work/process/customize-process-field#add-a-custom-field) through the process hub and add it to the work items you want to display WSJF data on.
|
||||
![WSJF displaying on the work item form](marketplace/CreateField.png)
|
||||
|
||||
*NOTE: If you're using TFS onprem, you need to use witadmin to [Create a custom decimal field](https://www.visualstudio.com/en-us/docs/work/customize/add-modify-field#to-add-a-custom-field)*
|
||||
|
||||
2. Navigate to the "WSJF" hub on the collection settings admin experience. From here, you must specify the fields that will be used for Business Value, Risk Reduction | Opportunity Enablement Value, Time Criticality, Job Size and WSJF. The first three are defaulted to the fields provided out of the box by Microsoft but can be changed to custom fields if you prefer.
|
||||
![WSJF displaying on the work item form](marketplace/Settings.png)
|
||||
|
||||
# Features
|
||||
## Auto calculated WSJF field on the form
|
||||
* WSJF is automatically updated when form is loaded.
|
||||
* WSJF is automatically updated when the Business Value, Risk Reduction | Opportunity Enablement Value, Time Criticality, or Effort fields are updated.
|
||||
![WSJF is automatically updated on the work item form](marketplace/AutoCalcWSJF.gif)
|
||||
|
||||
## Recalculate WSJF context menu item
|
||||
* Update WSJF for all selected work items on the backlog or query grid.
|
||||
![Recalculate WSJF on the backlog](marketplace/Recalculate.gif)
|
||||
|
||||
## Settings hub
|
||||
* Specify which fields are used for WSJF, Business Value, Risk Reduction | Opportunity Enablement Value, Time Criticality, and Effort .
|
||||
![Mapping fields for calculation](marketplace/Settings.gif)
|
||||
|
||||
## Support
|
||||
Because this extension requires the new work item form, it is only supported on Azure DevOps and the next version of TFS 2018 and above.
|
||||
|
||||
### Adding RROE and WSJF Score Values (For TFS) ###
|
||||
|
||||
1. Export your WorkItem.XML file *(ie. Epic.XML)* using [WITAdmin](https://docs.microsoft.com/en-us/Azure DevOps/work/customize/reference/witadmin/witadmin-import-export-manage-wits?view=tfs-2018)
|
||||
2. At the bottom of your "Fields" section add the following (Name and reference names may vary):
|
||||
|
||||
``` xml
|
||||
<FIELD name="WSJF Risk-Reduction Opportunity-Enablement" refname="WSJF.RROEValue" type="Integer" reportable="dimension">
|
||||
<HELPTEXT>WSJF Risk-Reduction</HELPTEXT>
|
||||
</FIELD>
|
||||
|
||||
<FIELD name="WSJF Score" refname="WSJF.Score" type="Double" reportable="dimension">
|
||||
<HELPTEXT>WSJF Score</HELPTEXT>
|
||||
</FIELD>
|
||||
```
|
||||
3. Under your
|
||||
`<Form>` and `<WebLayout>` tags, choose where you would like the WSJF calculation to go and add:
|
||||
|
||||
```xml
|
||||
<Section>
|
||||
<Group Label="WSJF">
|
||||
<Control Label="User-Business Value" Type="FieldControl" FieldName="Microsoft.Azure DevOps.Common.BusinessValue" EmptyText="[Numbered Value]" />
|
||||
<Control Label="Urgency/Time Criticality" Type="FieldControl" FieldName="Microsoft.Azure DevOps.Common.TimeCriticality" EmptyText="[Numbered Value]" />
|
||||
<Control Label="Risk Reduction/Opportunity Enablement" Type="FieldControl" FieldName="WSJF.RROEValue" EmptyText="[Numbered Value]" />
|
||||
<Control Label="Size" Type="FieldControl" FieldName="Microsoft.Azure DevOps.Scheduling.Effort" EmptyText="[Numbered Value]" />
|
||||
<Control Label="WSJF Score" Type="FieldControl" FieldName="WSJF.Score" EmptyText="[Numbered Value]" />
|
||||
</Group>
|
||||
</Section>
|
||||
```
|
||||
4. After this is done, open up your WSJF tab and adjust your settings:
|
||||
![Mapping fields for calculation](marketplace/Settings.png)
|
||||
Microsoft DevLabs is an outlet for experiments from Microsoft, experiments that represent some of the latest ideas around developer tools. Solutions in this
|
||||
category are designed for broad usage, and you are encouraged to use and provide feedback on them; however, these extensions are not supported nor are any commitments made as to their longevity.
|