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?
MoSCoW 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 cyclePlanning CycleProduct SpecificationThe cadence axis of a plan: a dated interval a team plans in, be it a sprint, iteration, quarter, or program increment. cadence_kind classifies its granularity in methodology-neutral terms (period for a coarse container, iteration for an execution box, buffer for cooldown slack) while cadence_label keeps the team's own word for it. Cycles self-nest, so fine iterations sit inside a coarse period to form a granularity ladder. Objectives scope to a cycle and stories schedule into it by deliberate links, not containment: a story keeps its feature or epic parent.View reference → without being recreated from scratch.feature
Fixing scope for a fixed-deadline release
With a launch date locked, a team sorts its backlog into MoSCoW buckets: secure login and order confirmation are Must Haves the release cannot ship without, saved payment methods is a Should Have, a wishlist is a Could Have if time allows, and social sharing is an explicit Won't Have this round. Naming the Won't Have out loud is what protects the deadline, because stakeholders see it was a decision rather than an omission and stop relitigating it mid-sprint.
Settling a stakeholder requirements workshop
Three stakeholders each arrive at a workshop convinced their feature is essential, so the team runs MoSCoW to force the trade-off. Capping Must Haves at what genuinely cannot be cut reveals that only one of the three requests is truly non-negotiable while the other two land in Should and Could, which manages expectations about what ships when without anyone feeling their request was simply ignored.