The MoSCoW method (also known as MoSCoW prioritization or MoSCoW analysis) is a prioritization technique to reach a common understanding with stakeholders on the importance they place on the delivery of each requirement. The term MoSCoW itself is an acronym derived from the first letter of each of four prioritization categories as shown in the Figure below:
Must (Mo) – The requirements that are critical and must be applied to a product as a matter of priority. Even if one of them is not taken into account, the release is considered to be unfulfilled.
Should (S) – Requirements important but not critical for the release. Such requirements are not very sensitive to time.
Could (Co) – Desirable but not mandatory requirements for your release. These are usually low-cost improvements for the product.
Would (W) – These are considered the least critical or may not correspond to the product strategy at all. They can be ignored and be revised for future releases.
The interstitial characters “o” added to make the word “MoSCoW” pronounceable. While the characters “o” are usually in lower-case to indicate that they do not stand for anything, through the all-capitals MOSCOW is also used.
MoSCoW is often used with timeboxing, where a deadline is fixed so that the focus must be on the most important requirements, and as such is a technique commonly used in agile software development approaches such as Scrum and DSDM.
Take a human body as a hypothetic example:
- Must– a heart is “must”. Without it, there is no live organism. What is a must in your application?
- Should– a hand is “should”. Without it is hard. But you can survive even without hand. Well, in most cases.
- Could– hair is “could”. It is fine to have them, you even look nicer, but you will survive without them
- Won’t – unnecessary waste. Btw, is there anything “won’t” in a body? (Probably, it might be your appendix?)
Prioritizing Product Backlog Using the MoSCoW Method
The Product Owner is responsible for getting the Product Backlog ready and prioritizing the items in the Product Backlog. Prioritization is one of the most important aspects of any form of development work because choosing the right thing to do allows you to maximize the value delivered in a Sprint. The Product Backlog items should be ordered in such a way that the requirements with maximum business value would be completed first and empowers a team to move in a uniform direction towards a common goal.
When performing the prioritization of your product backlog items at the sprint planning session, here is a list of criteria to be considered for your decisions.
- High customer value
- High benefit to the business
- Easy to be implemented
- High Risk
- High cost if not implemented as soon as possible
- Dependencies between items
- Contribute most to the next Sprint goal?