Multidimensional Prioritization

In my previous post titled Issue Prioritization, I presented a scheme for measuring prioritization values that overcomes many of the drawbacks of more traditional prioritization schemes. The gist of the proposal is to use a logarithmic scale (comparable to the Richter scale for earthquakes) to represent priority values. The main benefits of this approach include a wider dynamic range of values that better represents real world priorities, finer resolution between values to provide a more continuous range, and numerically higher priority values corresponding to truly higher priorities.

The proposed scheme thus far addresses three of the four criteria outlined in the Issue Prioritization post that were necessary to avoid the problems associated with traditional prioritization schemes. This post will focus on addressing the final criterion of setting prioritization values based on solely objective factors. The mechanism for setting the prioritization value must be purely logical, and operate on a complete set of relevant input factors that can be objectively assessed. Also, recall from earlier that the goal of prioritization is to ensure that everyone is focused on work that will maximize their possible contributions. Another way to state this is:

The goal of prioritization is to maximize the return on investment.

When it comes to software development work, the overwhelming majority of investment is in the form of employee compensation, so we can equate investment with time spent on a task. To determine the return received by completion of the task, it is necessary to assess the added value produced. In this way, the return on investment (ROI) can be computed roughly as (added value / amount invested). Since the prioritization goal is to maximize the ROI, issues should thus be ranked in order of their return on investment. As such, it is clear then that the prioritization value should be in direct proportion to the ROI for an issue.

As mentioned, computing the ROI for an issue is simply a matter of taking the ratio of “added value” and “amount invested” for the issue. While “amount invested” is fairly straightforward to estimate or measure based on the time needed to complete the task, determining “added value” will take some more analysis.

Determining Added Value

Added value represents a change that positively impacts the software organization, either through increasing revenues or by decreasing operational costs. Increased revenues are typically obtained through changes to a software product that make a meaningful positive impact to the consumers. For instance, both a bug fix and a new feature provide a benefit to the user of the application. In one case, it may be the removal of an annoyance, while in the other it is the addition of a new capability. Both changes increase the perceived value of the product, which should result in an increase in sales.

Decreased operational costs are normally achieved through changes that reduce future or ongoing effort. For example, a software engineer may refactor a particularly troublesome code module for the sole purpose of reducing the maintenance requirements of the module. Such changes do not even have to affect a software product. Changes to internal processes, or the creation of internal tools and automation can profoundly decrease operational costs.

Use Case Scenarios

Whether a change results in increasing revenue, decreasing operational costs, or both, the challenge still remains on how to objectively quantify the value added by the change. The best way to do this is by examining the use case scenarios where the change will have an effect. Multiple use case scenarios may need to be evaluated for a given changed in order to arrive at a complete assessment of the value added.

Each use case scenario should involve one type of participant. This may be an end-user, an intermediary (such as an OEM or VAR), or an employee of the software company. A monetary rate should then be assigned to the time of that participant. For employees, the rate can be derived from typical wage data. For end-users and intermediaries, a standardized rate can be decided upon. Generally, the rate used for non-employees should be on the order of 10% that used for employees. The reason for this is that employee time is a direct expense and the full cost of their time will be borne by the company. Time for non-employees is indirect, and only a small portion of it will impact company revenues.

Assessing the Impact of a Change

The first step is to determine the impact of a given change. Given that many types of changes are ones that will save time in some fashion, the monetary rate for the use case participant along with an estimate of the time saved by the change for each occurrence of the use case scenario can be used to quantify the incremental value added. So if a given change saves the participant 5 minutes and their monetary rate is $60/hr, then the value added is $5/use case occurrence. Rather than estimate value added in actual dollars, the following scale should be used to quantify impact:

Value

Description

0

0.01 cents or less per occurrence

1

0.1 cents per occurrence

2

1 cent per occurrence

3

10 cents per occurrence

4

1 dollar per occurrence

5

10 dollars per occurrence

6

100 dollars per occurrence

7

1,000 dollars per occurrence

8

10,000 dollars per occurrence

9

100,000 dollars per occurrence

10

1,000,000 dollars per occurrence

Assessing the Use Case Frequency

Next, an estimate should be made of the frequency of occurrence of the use case scenario for a given participant. This should factor in such things as:

  • How often a typical participant might engage in an activity where the use case scenario may occur
  • How often the use case scenario might occur during the given activity

The frequency should then be quantified on a scale of 0…10 like the following:

Value

Description

0

One occurrence every thousand years

1

One occurrence every hundred years

2

One occurrence every ten years

3

One occurrence a year

4

10 occurrences per year (every 1.2 months)

5

100 occurrences per year (twice per week)

6

1,000 occurrences per year (3 times per day)

7

10,000 occurrences per year (once every 48 minutes)

8

100,000 occurrences per year (once every 5 minutes)

9

1,000,000 occurrences per year (once every 30 seconds)

10

10,000,000 occurrences per year (once every 3 seconds)

Assessing the Scope

The next step is to determine the scope of distinct participants that will be affected by the use case. For instance, if the software product is used by 1 million end users, and the use case scenario participant is an end-user, then the scope of participants affected will be 1 million. Note that not every end user will actually be affected, since some may not even use the product regularly. However, such considerations should be factored into the frequency value instead of here. The scope should be quantified on a scale of 0…10 like the following:

Value

Description

0

1 participant

1

10 participants

2

100 participants

3

1,000 participants

4

10,000 participants

5

100,000 participants

6

1,000,000 participants

7

10,000,000 participants

8

100,000,000 participants

9

1,000,000,000 participants

10

10,000,000,000 participants

Representing the Added Value Factors

The three factors defined above (impact, frequency and scope) can now be used to form a multi-dimensional prioritization value. Each factor represents an axis in a multi-dimensional coordinate system as shown here.

3D Priority

The added value for the change is represented by the volume of the box in the diagram, where each dimension of the box is determined by the respective value of each of the three factors. Note that the factor value used is the full range value (1…10 billion for the scope factor) rather than the scaled valued (0…10). As an example, a given change is expected to have an Impact value of $0.10 per occurrence, a Frequency value of daily occurrence, and a Scope value of 1 million. The following chart shows these values along with the combined result (Added Value = Impact x Frequency x Scope).

Impact

Frequency

Scope

Added Value

Full Range

$0.10

365 (Daily)

1,000,000

$3,650,000

Scaled

3

5.5

6

14.5

The above chart also shows the scaled values for each of the factors. Note that the scaled added value is equivalent to the sum of scaled factor values. This is because the scaled values are base-10 logarithms of the full range values, and adding logarithmic values is equivalent to multiplying the full range values.

Assessing the Investment

To arrive at the final prioritization value, it is necessary to divide the Added Value by the Investment (or cost to implement the change). As with the Impact, Frequency and Scope factors, the Investment factor will be represented on a scale of 0…10 as follows:

Value

Description

0

1 cent

1

10 cents

2

1 dollar

3

10 dollars

4

100 dollars

5

1,000 dollars

6

10,000 dollars

7

100,000 dollars

8

1,000,000 dollars

9

10,000,000 dollars

10

100,000,000 dollars

Continuing the example from above, let’s assume that the implementation cost of the associated change is $10,000. The following chart shows the calculated return (Added Value) on investment (Implementation Cost):

Added Value

Implementation Cost

ROI

Full Range

$3,650,000

$10,000

365

Scaled

14.5

6

8.5

One caveat of this that you might have noticed is that this has the potential of expanding the scaled range for the ROI to -10…30, since three added value factors each of the range 0…10 are being summed and the investment factor is being subtracted. In practice though, the priority values will form a normal distribution curve with a mean at 10 and a standard deviation of about 4. Given this, nearly all ROI values will fall within the range of -2…22. This is still a significantly larger dynamic range that the proposed range of 0…10 for the final prioritization value. I will defer the discussion of how to compress the range to a later post.

Adjusting the Scales

In order for the scaled ROI value to be truly meaningful, some adjustments would need to be made to the scales for the other factors. If we standardize on one dollar equaling a scaled value of 0, then the Impact factor scale would change to the range of -4…6, while the Investment factor scale would change to -2…8. Likewise, standardizing on a frequency of once per year equaling a scaled value of 0, the frequency factor scale would change to -3…7. This would shift the range for the resulting ROI to -13…27. Using the data from the example above, the scaled values would change as follows:

Original Scaled

New Scaled

Impact

3

-1

Frequency

5.5

2.5

Scope

6

6

Investment (subtracted)

6

5

ROI

9.5

2.5

Note that the new scaled ROI value is very close to the base-10 logarithm of the full range ROI value (log10(365) = 2.56). This is no accident. The adjusted ranges are set such that the scaled values are equal to the base-10 logarithm of the full range values. This way, when the scaled values are summed, they produce a scaled ROI value that can be used to compute the true full range ROI.

Coming Up

If all of this seems exceedingly complicated when compared with the traditional prioritization schemes, don’t worry. In my next post, I will examine how this process can be simplified into something a bit more reasonable. I will also discuss how the scaled ROI value can be transformed into a prioritization value matching the scheme discussed earlier.

About Daniel Brannon

Daniel Brannon founded OSoSLO in 2009 to provide software tools and services for business and technology professionals.
This entry was posted in Work Management. Bookmark the permalink.

Leave a Reply