MoSCoW is a prioritization technique commonly used in Scrum. Prioritization is your ability to see which tasks and objectives are more important at the current moment. While determining your priorities, try to focus on what is more important at the expense of lower value activities.
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 have — Requirements labeled as “MUST” have to be included in the current delivery time box in order for it to be a success. If even one “MUST” requirement is not included, the project delivery should be considered a failure.
- Should have — “SHOULD” requirements are also critical to the success of the project, but are not necessary for delivery in the current delivery time box.
- Could have — Requirements labeled as “COULD” are less critical and often seen as nice to have.
- ◾ Won’t have — “WON’T” requirements are either the least-critical, lowest-payback items, or not appropriate at that time.
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.
MoSCoW Example
Take a human body as an hypothetic example:
- Must– a heart is “must”. Without it, there is no live organism. What is 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 definitely 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 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.
Prioritization Criteria
When performing the prioritization of your product backlog items at the Sprint planning session, here is a list 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 implement as soon as possible
- Dependencies between items
- Contribute most to the next Sprint goal?
Recommended Agile and Scrum Articles