liveBook · Manning

MoSCoW technique

As explained in "Looks Good to Me"

A MoSCoW comment is a code-review comment classified using must-have, should-have, could-have, or will-not-have priority categories.

MoSCoW categories classify code-review comments by priority so authors can distinguish required changes from optional improvements and personal preferences. Each comment begins with M:, S:, C:, or W:. section 6.1.2

Use the categories as follows:

  • Must: address the change before approval; it cannot be ignored. section 6.1.2
  • Should: propose an obvious improvement; the author needs a reason to ignore it, and the reviewer should agree. section 6.1.2
  • Could: suggest an improvement beyond the original task; the author may ignore it without explanation. section 6.1.2
  • Would: express personal preference or offer an educational suggestion, especially for a junior developer. section 6.1.2

Formatted review comments

M: This should import 'ts/components', not 'ts/comps'. S: 'item' is a vague name. Change to 'saleItem'? C: A 'top 10 products by region' report would be helpful! W: I wouldn’t have used a loop here. section 6.1.2

Table 6.2 MoSCoW categories and their uses
MoSCoW Category
Use for
Must:
• Changes that have to be addressed to be approved. These can’t be ignored.
Should:
• Suggestions that are an obvious and clear improvement. As an author receiving a Should comment, you have to give a reason to ignore it, and the reviewer has to agree. Third parties can be brought in when there’s no consensus on what to do.
Could:
• Improvements or niceties that the reviewer thinks will improve the overall codebase in some way but are likely going above and beyond what the original task requires
• Ignorable by the author; no reason needed by the author to ignore
Would:
• Those “I wouldn’t have done it this way” comments that are 100% personal preference
• Guiding suggestions for junior developers with the intent to educate

Compare the category definitions and the level of obligation attached to each priority. section 6.1.2

How "Looks Good to Me" covers it

How deep it goes
Defines four categories and formatting, then notes that blurred boundaries can create arguments about labels instead of suggestions.
Examples
Uses import correction, variable renaming, regional product reporting, and loop preference as formatted review comments.
What it assumes
Assumes a code-review setting and introduces the priority categories and their obligations directly.
What you can do after
Apply it via MoSCoW prefixes to make code-review obligations and optional suggestions explicit.
How it connects
Connects code review comments with project management prioritization, comment signals, and Conventional Comments.

Also explained in

Compare how 2 books explain MoSCoW technique →

This explainer was generated by Manning's knowledge graph from the text of "Looks Good to Me". The section links point to the parts of the book it draws on.