When one attempts to point a User Story, one needs to take into account the 3 major factors pertaining to the delivery and completion of that User Story: Viz. Complexity, Effort, Uncertainty, in order to arrive at the points for it.
Factors for Estimating a User Story |
One way of doing so would be to point each of the 3 factors above separately, using the usual Fibonacci sequence to assign an independent value to each factor.
<script>
function GetSelectedValue() {
var complexity = $('#sel-options-complexity').val();
var effort = $('#sel-options-effort').val();
var uncertainty = $('#sel-options-uncertainty').val();
var score = Math.cbrt(complexity * effort * uncertainty);
score = fitToFibonacciNumber(score);
document.getElementById("combined-points").innerHTML = score;
}
function fitToFibonacciNumber(value) {
if (value >= 1 && value < 2) return 1;
if (value >= 2 && value < 3) return 2;
if (value >= 3 && value < 5) return 3;
if (value >= 5 && value < 8) return 5;
if (value >= 8 && value < 13) return 8;
if (value >= 13 && value < 21) return 13;
if (value >= 21 && value < 34) return 21;
if (value >= 34) return Math.trunc(value);
}
</script>
The method GetSelectedValue() would be invoked every time the user selects a value from any of the dropdowns. The result is then displayed on the UI (not shown here).
In principle, any other non-linear function could be used, such as logarithm, or even the Sigmoid function. One has to experiment with a stable Agile team over time to determine suitable alternatives to the geometric mean, utilized here.
In this treatment, the 3 factors Complexity, Effort, Uncertainty have been treated with equal weights. However, there could be situations in which the Agile team is tackling User Stories that are more uncertain (ambiguous) or are working with lower-than-needed staffing levels or are dealing with very complex User Stories. Under such circumstances, it might make sense to assign a different weight to each factor and then calibrate the weights over several Sprints with the Agile team.
No comments:
Post a Comment