Giter Club home page Giter Club logo

azuredevops-wsjf-extension's Introduction

WSJF enables a calculated field for computing and storing WSJF on your work items.

WSJF displaying on the work item form

The Scaled Agile Framework defines WSJF (Weighted Shortest Job First) 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 - Risk Reduction | Opportunity Enablement Value)/Job Size

Four values are used to calculate WSJF:

  • Business Value
  • Risk Reduction | Opportunity Enablement Value
  • Time Criticality
  • Job Size

Requirements

The extension has been tested and verified on Node v12.0.0 and above.

Building the extention

From the project root, run the following terminal commands:

npm install         # Install node dependencies
npm run build       # Compile the source code
npm run package     # Package the extension .vsix

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 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

NOTE: If you're using TFS onprem, you need to use witadmin to Create a custom decimal field

  1. 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

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

Recalculate WSJF context menu item

  • Update WSJF for all selected work items on the backlog or query grid. Recalculate WSJF on the backlog

Settings hub

  • Specify which fields are used for WSJF, Business Value, Risk Reduction | Opportunity Enablement Value, Time Criticality, and Effort . Mapping fields for calculation

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):
  <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> 
  1. Under your <Form> and <WebLayout> tags, choose where you would like the WSJF calculation to go and add:
<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>
  1. After this is done, open up your WSJF tab and adjust your settings: Mapping fields for calculation

azuredevops-wsjf-extension's People

Contributors

alexander-hjelm avatar aminti avatar madkoo avatar microsoft-github-policy-service[bot] avatar molausson avatar n360speed avatar steve-orbussoftware avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azuredevops-wsjf-extension's Issues

Extension causes constant callbacks when typing in fields in a PBI

We have noticed that with this extension enabled, every time we are adding content to a PBI (for example typing in the description field), there is constant chatter back to [(https://.extmgmt.visualstudio.com/_apis/ExtensionManagement/InstalledExtensions/MS-Agile-SAFe/WSJF-extension/Data/Scopes/Default/Current/Collections/%24settings/Documents/storedFields)]

This happens on every keypress. Is anyone else seeing the same behaviour?

Rounding WSJF value

Could you add an option to round the value? Having 15+ decimal places clutters up the board tiles and looks clunky. Being able to implement a rounded output (say 2 decimals or select your own length) would be helpful.

Extension should not change the WSJF value for empty input fields

The extension is problematic because it sets all work items to the "changed" status and the user has to save again.
When the extension is installed, many work items already exist and the input fields for the formula are empty for all of these work items. When a work item is viewed, the extension calculates the WSJF value and writes it to the result field, which was previously empty. This changes the work item and the user sees this status change on the additional asterisk. If the user wants to leave the page, he will be stopped and asked whether he wants to "discard changes" or "save changes".

Suggestion for improvement: the extension should not change the WSJF value for empty input fields

WSJF Not Working on a Custom WIT

Our organization created a new WIT in AzureDevOps. We want to configure it to be used on this custom WIT. However, it is not creating the WSJF value. The extension is working with the Epic WIT. Can it work with custom WITs and if so, how?

WSJF calculation is not properly working

The calculation is not properly working.
As you can see we created all the fields and properly mapped them to the extension. Can you please help resolve the issue?
Thanks in advance,
Olenka.

image

image

image

How is this supposed to be compiled?

Running into an issue where the solution compiles, but the JS for wsjfSettings is not found. There is no scripts/wsjfSettings JS fil in the solution. Is this generated by Gulp or something? Can more specific instructions be given on how to build this solution?

WSJF is not calculated when creating items via "Quick Add" panel

When adding a new item via the "Quick Add" panel

Quick Add panel

the WSJF score is not calculated for the new item. It is calculated when opening and saving the item afterwards (or using the "Recalculate WSJF values" menu).

Expected:
The WSJF Score field should have been updated with the calculated WSJF.

Additional info:

  • All the source fields (like effor and business value) have been populated with default values in the process templates, like <DEFAULT from="value" value="somenumericvalue" />
  • We have tried as a workaround, to set a default WSJF score on the WSJF field. But we can not use a default value like the above for the WSJF score, as the value string is parsed by TFS UI using the user locale. so a string of "0.375" would result in a value of 0.375 (EN) or 375 (DA or DE) depending on the decimal seperator.
  • It would be nice if WSJF would be calculated for a new workitems, regardless of how it was created (WebUI, VS, RestAPI, Excel, MS Project...)
    Maybe it is possible to hook into some "new item" event?

Calculation fails on 0 value for RROE

Currently if the value in RROE is 0 the entire value of WSJF is set to 0 which doesn't jive with the supposed function of Business Value + Time Criticality + RROE.

Unable to set the WSJF field

I added a decimal WSJF field to our epic work item:
image

I then navigated to settings > WSJF, set the WSJF field to WSJF and saved:
image

But upon refreshing, the WSJF field setting was not saved.

WSJF only calculating on some work item types

My client has two work item types in their Process (actually more): Feature and Discussion Item. Both are at the same Backlog level. Both have the exact same fields for Business Value, Time Criticality, RROE, Effort, and WSJF.

WSJF is being calculated for Features but not for Discussion Items. Is this user error or a bug?
Thanks

WSJF is not calculating

Hi, we are trying to use this extension, its used to work before but since some time ago is not working as expected, we didn't get the WSJF calculation

Extension of the WSJF calculation

Hi, is it possible to expand the WSJF calculation by two optional fields above and one optional field below?

a + b + c + d + e
-----------------------
f*g

Extension stopped working, unable to open settings page.

Hello.
We are using this extension with TFS on prem. 2018

Last few days (after last update 17.06) unable to open WSJF settings page, with this message:

WSJF (Weighted Shortest Job First) by Microsoft DevLabs is taking longer than expected to load. Learn More about this extension, including available support options.

Also, all calculations no longer available.

Reinstallation did not help.

Effort using Rollup?

Is it possible to configure the add on to use a roll-up value for "Effort Field" - So far I have managed to make the add on work using "Story Points" where these are directly entered into the relevant field in the feature but cannot get it to pull the roll-up of storypoints from child tickets

WorkItem XML example contains errors

In the example xml code supplied, WSJF Score refname is first defined as WSJF.Score, then referenced in the form XML as WSJF.Value.

This is incorrect on the extensions store page and the github readme

Not able to open the Extension after install it

Hell Team,

We have installed the extension (AzureDevops-WSJF-Extension) on May 6, 2020 and configured the same... but latter on WSJF is not calculated the value as per the expectation, its coming with the value nothing. So we thought os something was missing on configuration, then we try to open the WSJF extension but we are not able to open the same.

Could you please help us with this extension so that we can use this our projects, as WSJF already has been used by many projects but from couples of days its not working. Please help with the same.

Note ; We have uninstalled this extension and installed it again but we are nit able to open this extension ( attached file).

WSJF-Extension Loading Error

WSJF stops calculating when the new Boards hubs get enabled

I just noticed, that when the new Boards hubs get enabled for preview in Azure DevOps Services, the WSJF value no longer updates.
None of these methods work any more:

  • typing values into fields for WSJF to be auto-recalculated
  • clicking the "Recalculate WSJF values" button.

image

When I disabled the Boards feature preview, everything went back to normal.

I know these Boards hubs are still in preview, but just letting you know things may stop working soon for most users.

cannot build extension

When i try to build this i get the error below when i run npm run build

node_modules/typescript/lib/lib.dom.d.ts:12377:11 - error TS2320: Interface 'SVGElement' cannot simultaneously extend types 'Element' and 'SVGElementInstance'.
  Named property 'nodeType' of types 'Element' and 'SVGElementInstance' are not identical.

12377 interface SVGElement extends Element, GlobalEventHandlers, DocumentAndElementEventHandlers, SVGElementInstance, HTMLOrSVGElement, ElementCSSInlineStyle {
                ~~~~~~~~~~

BUG - WSJF stopped working after the update

Since the last update we have been unable to use this addon. It is no longer calculating and when you try to go to the settings screen it will not load. We have let it sit for 10-15 minutes and still just shows:

image

Package failed to Restore

i have using AzureDevOps. I build my Project but some error is there. I attach screen short please find it.
vsts

Field for Cost of Delay

Hello,

It's a very good plugin. Can you add store field for Cost of Delay ?
Sometimes, it's interresting to have this data to take decision.

Thank you.

Arnaud

WSJF field not showing for all

I am an ADO Org owner. I've added this to a Feature work item, and I see the value fine. A co-worker who is a contributor on the project that is using this does not see the value. There was one time for a brief second as the feature was loaded it showed up but quickly disappeared. If she changes the values, the new calculated value still does not show up. Any thoughts on why I can see this and she cannot?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.