A four-bucket prioritisation technique for sorting requirements into Must Have, Should Have, Could Have, and Won't Have within a fixed delivery window.
Which requirements are non-negotiable for this delivery window, and which can wait?
must_count / total_countMoSCoW is a prioritisation technique that sorts work into four buckets: Must Have, Should Have, Could Have, and Won't Have. Its one jobJobUserJob To Be Done: what the user is trying to accomplishView reference → is to force a team to agree, before committing to a delivery window, which requirements are genuinely non-negotiable and which can wait.
Dai Clegg developed MoSCoW while at Oracle in the early 1990s, creating it to support rapid application development work where fixed timeboxes meant you could not do everything and choices had to be made explicitly. He formalised it within DSDM (Dynamic Systems Development Method), a framework for time-boxed delivery that was codified by the DSDM Consortium in the mid-1990s. The Agile Business Consortium, which now stewards DSDM, maintains MoSCoW as a core technique in the framework handbook.
The method has since escaped its DSDM home and spread into product management, programme delivery, and sprint planning in organisations that have never used DSDM at all. In most modern usage it operates as a standalone prioritisation exercise applied to product backlogs, featureFeatureProduct SpecificationA product capability or featureView reference → lists, or scope negotiations. The four letters spell MSCW, with the lowercase Os added purely to make the word pronounceable.
The team assembles a list of requirements and assigns each one to exactly one bucket:
A concrete example. A payments team building a new checkout flow designates three items as Must Have: card tokenisation, 3DS authentication, and an order-confirmation email. Smooth address autocomplete is Should Have. Saved card management is Could Have. A full loyalty-points dashboardDashboardData & AnalyticsAn analytics dashboardView reference → is Won't Have this time. The team can now timebox their sprint confident that the non-negotiable items take absolute precedence and that any overrun comes from Could Have items first.
The exercise works best when the whole delivery team participates, not just product management. Engineers often know which items are deceptively expensive and can argue a Could Have down to Won't Have before planning starts.
MoSCoW is well suited to any situation where scope must be agreed across multiple stakeholdersStakeholderTeam & OrganisationA person with influence over the productView reference →, the delivery window is fixed, and trade-offs are inevitable. Kick-off workshops, sprint planning, release scoping, and scope-cut negotiations with clients are all natural homes for it.
It earns its keep less well when applied to a backlog of hundreds of items by a single person working alone: without the social friction of a group agreeing each assignment, every item drifts toward Must Have and the exercise loses its purpose. The technique also says nothing about sequencing within a bucket, so teams often needNeedUserA user need, pain, desire, or constraintView reference → to follow it with a ranking method once the buckets are set. A common failure mode is treating Should Have as a polite name for Must Have: when the Must Have bucket fills up, scope creep moves in disguised as a downgrade. Discipline requires holding Must Have to no more than roughly sixty percent of available capacity so the team has genuine room to absorb the unexpected.
MoSCoW is a table framework in the prioritisation category. All four buckets map onto the same entity type in the Unified Product Graph, because what varies between them is not the kind of thing but the priority attached to it:
featureFeatureProduct SpecificationA product capability or featureView reference → entities.The Unified Product Graph models the distinction through the feature's priority property and its relationships; every item stays a FeatureProduct SpecificationA product capability or featureView reference → and the priority field carries the MoSCoW band. A featureFeatureProduct SpecificationA product capability or featureView reference → node carries a priority field and connects to the goals, epicsEpicProduct SpecificationA large body of work that can be broken into storiesView reference →, and releases it relates to. Sorting features by that priority field reproduces the MoSCoW table directly. The advantage is that a feature classified as Won't Have this time is not discarded: it remains in the graph, linked to the work it would deliver, and can be promoted to Should Have in the next planning cycle without being recreated from scratch.feature