MoSCoW Method
   HOME

TheInfoList



OR:

The MoSCoW method is a prioritization technique used in management,
business analysis Business analysis is a professional discipline of identifying business needs and determining solutions to business problems. Solutions often include a software-systems development component, but may also consist of process improvements, organiza ...
,
project management Project management is the process of leading the work of a team to achieve all project goals within the given constraints. This information is usually described in project documentation, created at the beginning of the development process. Th ...
, and
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
to reach a common understanding with stakeholders on the importance they place on the delivery of each
requirement In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, includ ...
; it is also known as ''MoSCoW prioritization'' or ''MoSCoW analysis''. The term ''MOSCOW'' itself is an
acronym An acronym is a word or name formed from the initial components of a longer name or phrase. Acronyms are usually formed from the initial letters of words, as in ''NATO'' (''North Atlantic Treaty Organization''), but sometimes use syllables, as ...
derived from the first letter of each of four prioritization categories: M - ''Must have'', S - ''Should have'', C - ''Could have'', W - ''Won't have''. The interstitial ''O''s are added to make the word pronounceable. While the ''O''s are usually in lower-case to indicate that they do not stand for anything, the all-capitals ''MOSCOW'' is also used.


Background

This prioritization method was developed by Dai Clegg in 1994 for use in
rapid application development Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
(RAD). It was first used extensively with the
dynamic systems development method Dynamic systems development method (DSDM) is an agile project delivery framework, initially used as a software development method. First released in 1994, DSDM originally sought to provide some discipline to the rapid application development (R ...
(DSDM) from 2002. MoSCoW is often used with
timeboxing In agile principles, timeboxing allocates a fixed and maximum unit of time to an activity, called a timebox, within which planned activity takes place. It is used by agile principles-based project management approaches and for personal time man ...
, where a deadline is fixed so that the focus must be on the most important requirements, and is commonly used in
agile software development In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ad ...
approaches such as
Scrum Scrum may refer to: Sport * Scrum (rugby), a method of restarting play in rugby union and rugby league ** Scrum (rugby union), scrum in rugby union * Scrum, an offensive melee formation in Japanese game Bo-taoshi Media and popular culture * M ...
,
rapid application development Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
(RAD), and DSDM.


Prioritization of requirements

All requirements are important, however to deliver the greatest and most immediate business benefits early the requirements must be prioritized. Developers will initially try to deliver all the ''Must have'', ''Should have'' and ''Could have'' requirements but the ''Should'' and ''Could'' requirements will be the first to be removed if the delivery timescale looks threatened. The plain English meaning of the prioritization categories has value in getting customers to better understand the impact of setting a priority, compared to alternatives like ''High'', ''Medium'' and ''Low''. The categories are typically understood as: ; Must have : Requirements labelled as ''Must have'' are critical to the current delivery timebox in order for it to be a success. If even one ''Must have'' requirement is not included, the project delivery should be considered a failure (note: requirements can be downgraded from ''Must have'', by agreement with all relevant stakeholders; for example, when new requirements are deemed more important). ''MUST'' can also be considered an
acronym An acronym is a word or name formed from the initial components of a longer name or phrase. Acronyms are usually formed from the initial letters of words, as in ''NATO'' (''North Atlantic Treaty Organization''), but sometimes use syllables, as ...
for the Minimum Usable Subset. ; Should have : Requirements labelled as ''Should have'' are important but not necessary for delivery in the current delivery timebox. While ''Should have'' requirements can be as important as ''Must have'', they are often not as time-critical or there may be another way to satisfy the requirement so that it can be held back until a future delivery timebox. ; Could have : Requirements labelled as ''Could have'' are desirable but not necessary and could improve the user experience or customer satisfaction for a little development cost. These will typically be included if time and resources permit. ; Won't have (this time) : Requirements labelled as ''Won't have'', have been agreed by stakeholders as the least-critical, lowest-payback items, or not appropriate at that time. As a result, ''Won't have'' requirements are not planned into the schedule for the next delivery timebox. ''Won't have'' requirements are either dropped or reconsidered for inclusion in a later timebox. (Note: occasionally the term ''Would like to have'' is used; however, that usage is incorrect, as this last priority is clearly stating something is outside the scope of delivery). (The BCS in edition 3 & 4 of the Business Analysis Book describe 'W' as 'Want to have but not this time around')


Variants

Sometimes W is used to mean ''wish'' (or ''would''), i.e. still possible but unlikely to be included (and less likely than ''could''). This is then distinguished from X for ''excluded'' for items which are explicitly not included.


Use in new product development

In
new product development In business and engineering, new product development (NPD) covers the complete process of bringing a new product (business), product to market, renewing an existing product or introducing a product in a new market. A central aspect of NPD is prod ...
, particularly those following agile software development approaches, there is always more to do than there is time or funding to permit (hence the need for prioritization). For example, should a team have too many potential epics (i.e., high-level stories) for the next release of their product, they could use the ''MoSCoW method'' to select which epics are ''Must have'', which ''Should have'', and so on; the
minimum viable product A minimum viable product (MVP) is a version of a product with just enough features to be usable by early customers who can then provide feedback for future product development. A focus on releasing an MVP means that developers potentially avoid ...
(or MVP) would be all those epics marked as ''Must have''. Oftentimes, a team will find that, even after identifying their MVP, they have too much work for their expected capacity. In such cases, the team could then use the ''MoSCoW method'' to select which features (or stories, if that is the subset of epics in their organisation) are ''Must have'', ''Should have'', and so on; the minimum marketable features (or MMF) would be all those marked as ''Must have''. If there is sufficient capacity after selecting the MVP or MMF, the team could then plan to include ''Should have'' and even ''Could have'' items too.


Criticism

Criticism of the MoSCoW method includes: * Does not help decide between multiple requirements within the same priority. * Lack of rationale around how to rank competing requirements: why something is ''must'' rather than ''should''. * Ambiguity over timing, especially on the ''Won't have'' category: whether it is not in this release or not ever. * Potential for political focus on building new features over technical improvements (such as refactoring).


Other methods

Other methods used for product prioritization include: * RICE scoring model * PriX method prioritization method * Story mapping prioritization method * Value vs. effort prioritization method * Kano model prioritization method * Opportunity scoring prioritization method * The product tree prioritization method * Cost of delay prioritization method * Buy a feature prioritization method


References


External links


RFC 2119 (Requirement Levels)
This RFC defines requirement levels to be used in formal documentation. It is commonly used in contracts and other legal documentation. Noted here as the wording is similar but not necessarily the meaning.
Buffered MoSCoW Rules
This essay proposes the use of a modified set of MoSCoW rules that accomplish the objectives of prioritizing deliverables and providing a degree of assurance as a function of the uncertainty of the underlying estimates.
MoSCoW Prioritisation
Steps and tips for prioritisation following the DSDM MoSCoW rules. {{DEFAULTSORT:MoSCoW Method Software project management Dynamic systems development method Computer jargon