All businesses have limited resources and must choose carefully which projects and initiatives to pursue in order to deliver the maximum return to shareholders. There is another name for carefully choosing what to do: prioritization. All businesses need to prioritize to be successful and they must prioritize at all levels. The highest level prioritization will include choosing the strategy of the organization, much lower levels include prioritizing what aspects of a particular features to implement.
In this article we’re going to look at a method we can use to prioritize. We’ll also provide an example of how priorities might be set at a project level, what this might mean at the level of a particular asset’s backlog, and what that might mean in terms of actually implementing items on the backlog. Before we look at the example, there are a couple of terms we need to understand:
1. MoSCoW Prioritization
The letters in MoSCoW represent Must, Should, Could, Won’t, plus two additional o’s (the o’s are fillers and do not represent anything). This means the following in terms of prioritization:
- M: We MUST have this
- S: We SHOULD have this if in any way possible
- C: We COULD have this if it doesn’t affect anything else
- W: We WON’T have this now, as we understand M, S, C take priority, but would like to have it later.
2. Clear Goals/Benefits
Without clear goals which everyone in the team is aware of, how can we prioritize? Without clear goals how do we know if a requirement is a must have or a won’t have? If the goal of our project is to build a bigger boat and everyone is aware of this, then it makes it much easier to weigh the requirement to “increase hull volume” against the requirement to “increase engine efficiency”. It’s also good practice to prioritize goals using MoSCoW as we’ll see in the example later.
Let’s go through an example to see how prioritization applies at different levels. Imagine we’re working for a large bookstore in the centre of town. The majority of customers are business people who pop into the store during their lunch break to purchase a book. Some customer research has revealed that because the bookstore is so large and customers don’t have much time, a lot of customers are leaving the store without making a purchase because they can’t find what they’re looking for in the time they have available. Because of this a project has been setup to extend the interactive kiosks already in the store, to show customers the location of books within the store. This project might have the following goals:
- Increase revenue by allowing customers to quickly find what they’re looking for. As a side effect of this, customer satisfaction will be increased
- Further drive revenue, by offering an upsell to a 2nd related book, offering 20% off the purchase price of the second book
- Offer internet location search so office workers can find the location of a book before getting to the store
Now that we’ve defined the goals, the next step is to prioritize them using MoSCoW. Working with the business this might result in the following prioritization:
- M: Increase revenue via search
- S: Further drive revenue by offering upsell
- W: Offer Internet search
Now that we’ve prioritize our goals, this could result in the following items on the backlog:
- Search for Book (M)
- Upsell to 2nd book (S)
- Offer Internet search (W)
Let’s examine our MUST have backlog item, Search for Book. If you think about it there are obviously a number of ways to search for a book, some of which are listed below:
- Search by Name
- Search by ISBN
- Perform fuzzy search
- Browse by Genre
- Browse by location in store
If the team is using Agile then they won’t perform this decomposition of the Search for Book backlog item until the last possible moment. I think it’s clear that even though Search for Book is a must have, not all of the methods of searching are must have. In fact, by understanding our goals we may reach the following conclusion:
- Search by Name (M)
- Perform fuzzy search (M)
- Search by ISBN (S)
- Browse by Genre (W)
- Browse by location in store (W)
In effect the process I’m highlighting in the example above is:
- Set prioritized goals
- Create a list of prioritized work items
- Break down these work items in priority order and prioritize at this lower level
- Repeat from step 2
By following this process you ensure that all work carried out on the project is meeting a high-level goal (at all levels), and that no unnecessary work is performed (at all levels). At the same time you don’t have to break down the work until the latest sensible moment.
One final point to consider is that, like it or not, whether something is a could / must / should / or won’thave can change according to business pressure. If we’re working on a product but our deadline is approaching then it can make sense to lower the priority of the non-must have’s to won’t have’s – the deadline taking priority and the product being ready for market as the must-haves are done. It can also often make sense to re-evaluate what we previously though of as must have items.
Prioritization is clearly needed to ensure that business goals are met and that waste is minimal. The process outlined above uses a combination of goal setting and MoSCoW prioritization to enable you to prioritize at all levels, from the program level, through the project level, and down to the smallest work element.