WSJF not tested

This commit is contained in:
Mike Phares 2024-11-08 15:48:11 -07:00
parent 9c5651a862
commit 3fa7998ff6

View File

@ -1,7 +1,7 @@
var _apiUrl = null; var _apiUrl = null;
function compareFunction(a, b) { function compareFunction(a, b) {
return b.WeightedShortestJobFirst - a.WeightedShortestJobFirst || b.ParentId - a.ParentId || a.Id - b.Id; return b.WeightedShortestJobFirst - a.WeightedShortestJobFirst || b.CoDRank - b.CoDRank || b.ParentId - a.ParentId || a.Id - b.Id;
} }
function compareEffortFunction(a, b) { function compareEffortFunction(a, b) {
@ -110,76 +110,86 @@ function updateRecordCoD(workItem) {
function getFibonacci(length) { function getFibonacci(length) {
var results = []; var results = [];
var i; for (var i = 0; i < length; i++) {
var fib = [0, 1]; results.push(21);
for (i = 2; i <= length + 1; i++) {
fib[i] = fib[i - 2] + fib[i - 1];
results.push(fib[i]);
} }
var index = 0;
var fibonacci = [3, 5, 8, 13, 20];
var factor = (length / fibonacci.length).toFixed();
for (var j = 0; j < fibonacci.length; j++) {
for (var i = 0; i < factor; i++) {
results[index] = fibonacci[j];
index += 1;
}
}
// for (var i = 0; i < results.length; i++) {
// console.log(results[i]);
// }
return results; return results;
} }
function updateCoD(records) { function updateCoD(records) {
var iHigh;
var workItem; var workItem;
var fibonacci = getFibonacci(records.length); var collection = [];
records.sort(compareEffortFunction);
iHigh = 0;
for (var i = 0; i < records.length; i++) { for (var i = 0; i < records.length; i++) {
workItem = records[i]; workItem = records[i];
if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { if (workItem.Priority[0] === '2') {
workItem.EffortRank = 0; workItem.EffortFibonacci = 2;
workItem.BusinessValueFibonacci = 2;
workItem.TimeCriticalityFibonacci = 2;
workItem.RiskReductionMinusOpportunityEnablementFibonacci = 2;
continue;
}
else if (workItem.Priority[0] === '3') {
workItem.EffortFibonacci = 1; workItem.EffortFibonacci = 1;
workItem.BusinessValueFibonacci = 1;
workItem.TimeCriticalityFibonacci = 1;
workItem.RiskReductionMinusOpportunityEnablementFibonacci = 1;
continue;
} }
else { collection.push(workItem);
workItem.EffortRank = (((i + 1) / records.length) * 100).toFixed(); }
workItem.EffortFibonacci = fibonacci[iHigh]; var fibonacci = getFibonacci(collection.length);
iHigh += 1; collection.sort(compareEffortFunction);
} for (var i = 0; i < collection.length; i++) {
workItem = collection[i];
workItem.EffortFibonacci = fibonacci[i];
}
records.sort(compareEffortFunction);
for (var i = 0; i < records.length; i++) {
workItem = records[i];
workItem.EffortRank = (((i + 1) / records.length) * 100).toFixed();
}
collection.sort(compareBusinessValueFunction);
for (var i = 0; i < collection.length; i++) {
workItem = collection[i];
workItem.BusinessValueFibonacci = fibonacci[i];
} }
records.sort(compareBusinessValueFunction); records.sort(compareBusinessValueFunction);
iHigh = 0;
for (var i = 0; i < records.length; i++) { for (var i = 0; i < records.length; i++) {
workItem = records[i]; workItem = records[i];
if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { workItem.BusinessValueRank = (((i + 1) / records.length) * 100).toFixed();
workItem.BusinessValueRank = 0; }
workItem.BusinessValueFibonacci = 1; collection.sort(compareTimeCriticalityFunction);
} for (var i = 0; i < collection.length; i++) {
else { workItem = collection[i];
workItem.BusinessValueRank = (((i + 1) / records.length) * 100).toFixed(); workItem.TimeCriticalityFibonacci = fibonacci[i];
workItem.BusinessValueFibonacci = fibonacci[iHigh];
iHigh += 1;
}
} }
records.sort(compareTimeCriticalityFunction); records.sort(compareTimeCriticalityFunction);
iHigh = 0;
for (var i = 0; i < records.length; i++) { for (var i = 0; i < records.length; i++) {
workItem = records[i]; workItem = records[i];
if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { workItem.TimeCriticalityRank = (((i + 1) / records.length) * 100).toFixed();
workItem.TimeCriticalityRank = 0; }
workItem.TimeCriticalityFibonacci = 1; collection.sort(compareRiskReductionMinusOpportunityEnablementFunction);
} for (var i = 0; i < collection.length; i++) {
else { workItem = collection[i];
workItem.TimeCriticalityRank = (((i + 1) / records.length) * 100).toFixed(); workItem.RiskReductionMinusOpportunityEnablementFibonacci = fibonacci[i];
workItem.TimeCriticalityFibonacci = fibonacci[iHigh];
iHigh += 1;
}
} }
records.sort(compareRiskReductionMinusOpportunityEnablementFunction); records.sort(compareRiskReductionMinusOpportunityEnablementFunction);
iHigh = 0;
for (var i = 0; i < records.length; i++) { for (var i = 0; i < records.length; i++) {
workItem = records[i]; workItem = records[i];
if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { workItem.RiskReductionMinusOpportunityEnablementRank = (((i + 1) / records.length) * 100).toFixed();
workItem.RiskReductionMinusOpportunityEnablementRank = 0;
workItem.RiskReductionMinusOpportunityEnablementFibonacci = 1;
}
else {
workItem.RiskReductionMinusOpportunityEnablementRank = (((i + 1) / records.length) * 100).toFixed();
workItem.RiskReductionMinusOpportunityEnablementFibonacci = fibonacci[iHigh];
iHigh += 1;
}
} }
records.sort(compareCostOfDelay);
for (var i = 0; i < records.length; i++) { for (var i = 0; i < records.length; i++) {
workItem = records[i]; workItem = records[i];
workItem.CoD = workItem.RiskReductionMinusOpportunityEnablementFibonacci + workItem.TimeCriticalityFibonacci + workItem.BusinessValueFibonacci; workItem.CoD = workItem.RiskReductionMinusOpportunityEnablementFibonacci + workItem.TimeCriticalityFibonacci + workItem.BusinessValueFibonacci;
@ -187,14 +197,7 @@ function updateCoD(records) {
records.sort(compareCostOfDelay); records.sort(compareCostOfDelay);
for (var i = 0; i < records.length; i++) { for (var i = 0; i < records.length; i++) {
workItem = records[i]; workItem = records[i];
if (workItem.Priority[0] !== '1' && workItem.Priority[0] !== '4') { workItem.CoDRank = (((i + 1) / records.length) * 100).toFixed();
workItem.CoD = 0.000001;
workItem.CoDRank = 0;
}
else {
workItem.CoDRank = (((i + 1) / records.length) * 100).toFixed();
// workItem.CoD = (workItem.CoD / workItem.CoDFibonacci).toFixed(6);
}
} }
for (var i = 0; i < records.length; i++) { for (var i = 0; i < records.length; i++) {
workItem = records[i]; workItem = records[i];
@ -204,7 +207,7 @@ function updateCoD(records) {
} }
else { else {
workItem.WeightedShortestJobFirstRank = (((i + 1) / records.length) * 100).toFixed(); workItem.WeightedShortestJobFirstRank = (((i + 1) / records.length) * 100).toFixed();
workItem.WeightedShortestJobFirst = (workItem.CoD / workItem.EffortFibonacci).toFixed(6); workItem.WeightedShortestJobFirst = (workItem.CoD / workItem.EffortFibonacci).toFixed(3);
} }
} }
} }
@ -270,11 +273,11 @@ function setRecords(workItems) {
"</td><td>" + record.Tags + "</td><td>" + record.Tags +
"</td><td>" + record.State + "</td><td>" + record.State +
"</td><td>" + record.Priority + "</td><td>" + record.Priority +
"</td><td>" + record.RiskReductionMinusOpportunityEnablement + '-' + record.RiskReductionMinusOpportunityEnablementRank + '% -' + record.RiskReductionMinusOpportunityEnablementFibonacci + "</td><td>" + record.RiskReductionMinusOpportunityEnablementRank + '% - ' + record.RiskReductionMinusOpportunityEnablement + ' - ' + record.RiskReductionMinusOpportunityEnablementFibonacci +
"</td><td>" + record.TimeCriticality + '-' + record.TimeCriticalityRank + '% -' + record.TimeCriticalityFibonacci + "</td><td>" + record.TimeCriticalityRank + '% - ' +record.TimeCriticality + ' - ' + record.TimeCriticalityFibonacci +
"</td><td>" + record.BusinessValue + '-' + record.BusinessValueRank + '% -' + record.BusinessValueFibonacci + "</td><td>" + record.BusinessValueRank + '% - ' +record.BusinessValue + ' - ' + record.BusinessValueFibonacci +
"</td><td>" + record.CoD + '-' + record.CoDRank + '% -' + "</td><td>" + record.CoDRank + '% - ' + record.CoD +
"</td><td>" + record.Effort + '-' + record.EffortRank + '% -' + record.EffortFibonacci + "</td><td>" + record.EffortRank + '% - ' +record.Effort + ' - ' + record.EffortFibonacci +
"</td><td>" + record.WeightedShortestJobFirst + "</td><td>" + record.WeightedShortestJobFirst +
"</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>"; "</td><td><a href='#' class='up'>Up</a></td><td><a href='#' class='down'>Down</a></td></tr>";
} }