MoSCoW method: Difference between revisions
remove signature in article |
BRUP: minor format change |
||
Line 15: | Line 15: | ||
Added by Steve Ash |
Added by Steve Ash |
||
Couple of points: |
Couple of points: |
||
# MoSCoW was first coined/developed by Dai Clegg of Oracle UK (see http://www.amazon.ca/Case-Method-Fast-Track-RAD-Approach/dp/020162432X and http://www.wrsystems.com/whitepapers/managedes2k.pdf). He gave DSDM the IPR when DSDM needed a suitable RAD prioritisation technique. |
|||
# It is not only functional requirements thast are MoSCoWed - it is all requirements |
|||
==Explanation== |
==Explanation== |
Revision as of 08:11, 17 September 2007
For other uses, see Moscow (disambiguation).
MoSCoW is a method used in business and particularly in software development to get an understanding with the customer on the importance they place on the delivery of each functional requirement. It originated as part of the Dynamic Systems Development Method. Sometimes called a MoSCoW list or a MOSCOW Analysis. MoSCoW stands for:
- M - MUST have this.
- S - SHOULD have this if at all possible.
- C - COULD have this if it does not affect anything else.
- W - WON'T have this time but WOULD like in the future.
The o's in MoSCoW are added to make the word pronounceable, and are often left lower case to indicate that they don't stand for anything.
Comment
Added by Steve Ash Couple of points:
- MoSCoW was first coined/developed by Dai Clegg of Oracle UK (see http://www.amazon.ca/Case-Method-Fast-Track-RAD-Approach/dp/020162432X and http://www.wrsystems.com/whitepapers/managedes2k.pdf). He gave DSDM the IPR when DSDM needed a suitable RAD prioritisation technique.
- It is not only functional requirements thast are MoSCoWed - it is all requirements
Explanation
The plain English meaning of the MoSCoW words has value in getting customers to understand what they are doing during prioritisation in a way that other ways of attaching priority, like high, medium and low, do not.
Must Have
Anything labeled as "MUST" has to be included in the project delivery timebox in order for it to be a success. If even one "MUST" item is not included, the project delivery is considered a failure. "MUST" is also an acronym for the Minimum Usable SubseT.
Should Have
While not critical to the success of the project delivery, "SHOULD" items are nearly as important and should be included if it is at all possible. "SHOULD" items are often as important as MUST items, however "SHOULD" items have workarounds allowing another way of satisfying the requirement.
Could Have
"COULD" items are less critical and often seen as "nice to have". A few easily built Coulds in a delivery can increase customer satisfaction for little development cost.
Won't Have (this time around)
"WON'T" items are either the least-critical or lowest-payback items. As a result, "WON'T" items are not planned into the schedule for the current project iteration. "WON'T" items are either dropped or reconsidered for reprioritization in later project increments. This, however doesn't make them any less important. Sometimes this is described simply as "Would like to have" in the future. This however leaves some ambiguity in the minds of the users as to its priority compared to the other marks.
All requirements are important, but they are prioritized to deliver the greatest and most immediate business benefits early. Developers will initially try to deliver in all the M, S and C categories but the S and Cs will be the first to go if the delivery timescale looks threatened.
Criticism
Some feel that classifying a requirement as "nice to have" makes it no longer a requirement, but more of a nicety. Therefore it no longer fits the definition of a "requirement" and thus has no place in a "Requirements" Document.
Response #1 Since the priority of requirements is fuzzy (and even varies over time) it is quite appropriate to consider "nice to have" items to still be "requirements". A "nice to have" item is generally one that has some return/payback but isn't part of the "minimum usable subset" required to deliver the product.
Response #2 Stakeholders in a new computer system will often come up with a wish list of every thing they can think might possibly be of use. To implement the whole wishlist would be wasteful in time and money. MoSCoW is a way to work with that list so that a compromise is reached between what is most useful and can be built in a short timescale of 3 to 6 months and what can be put off to a future development cycle.
Response #3 Iterative development can also lead to re-prioritisation which can sometimes convert nice-to-have-s into should-haves.
Response #4 The only way to determine whether "nice to have" items have a place in a requirements document is to define the purpose of that document, and not be fooled by the common English definition of a requirement as "something required or obligatory" (quoted from Wiktionary:requirement).