Prioritizing Software Enhancements by Business Value

Five years ago I made this graphic for my boss. He was wondering how to prioritize development projects, and considering venturing into new lines of business.

I had recently been working with several business consultants and noticed how often they used quadrants. At the same time, I had been reviewing a paper a colleague was presenting at PNSQC wherein he describes a way to prioritize and organize software enhancements.

I took the two ideas and put them together in an Excel spreadsheet (because your boss is always more impressed with a spreadsheet, right?).  This was the result.

The bottom line:  To create value in your product, prioritize high-value, low complexity enhancements.  Immediately cancel any complex, but low value enhancements. For high-value enhancements that seem complex, try to decompose them into simpler chunks.

As far as customer growth, the paths of lowest risk are either selling existing business functions to new customers, or develop new business for existing customers. The riskiest path is to develop new business for new customers.

This philosophy has worked well for me, and I still use it for prioritizing enhancements. I forgot about the graphic, but finding it among some files impressed me enough that I wanted to share it.