Difference between revisions of "Expressing Requirements"

From QIBA Wiki
Jump to navigation Jump to search
(Created page with " Writing clear specification text isn't easy. Keep the following guidelines in mind when drafting the Profile. Look at these again when '''Review Process|reviewing the Pro...")
 
Line 4: Line 4:
 
Look at these again when '''[[Review Process|reviewing the Profile]]''' for publication at any '''[[QIBA Profile Stages|Stage]]'''.
 
Look at these again when '''[[Review Process|reviewing the Profile]]''' for publication at any '''[[QIBA Profile Stages|Stage]]'''.
  
:# Put requirements in the Specification tables
+
:# Put requirements in the Checklist/Specification tables
 
:#* The Discussion section is for additional information but can be skipped by folks who just want the requirements; hiding additional requirements in Discussion would be sneaky.
 
:#* The Discussion section is for additional information but can be skipped by folks who just want the requirements; hiding additional requirements in Discussion would be sneaky.
 +
:#* It's OK to group requirements in Checklists (by Actor), or in Specification tables (by Activity). Copy/re-sort them carefully before you publish so they're not different. 
 
:# Start each table requirement with the word "Shall"
 
:# Start each table requirement with the word "Shall"
 
:#* It promotes direct wording and makes it clear this is a requirement.
 
:#* It promotes direct wording and makes it clear this is a requirement.
Line 14: Line 15:
 
:#* Shall is for requirements.  If it's an activity requirement, put it in a table. If it's not an activity requirement, don't use shall.
 
:#* Shall is for requirements.  If it's an activity requirement, put it in a table. If it's not an activity requirement, don't use shall.
 
:# Use active voice
 
:# Use active voice
:#* "Physicist Shall record the date/time of QC procedures." rather than "The date/time of QC procedures shall be recorded."  
+
:#* "| Physicist | Shall record the date/time of QC procedures." rather than "The date/time of QC procedures shall be recorded."  
:#* Passive voice makes it less clear who has responsibility for the requirement being met.
+
:#* Passive voice makes it less clear who has responsibility for the requirement being met and what they have to do.
 
:# State requirements bluntly
 
:# State requirements bluntly
 
:#* Conformance is clearer/simpler/cheaper if it is binary; you either do or do not ("there is no try" 05.04).
 
:#* Conformance is clearer/simpler/cheaper if it is binary; you either do or do not ("there is no try" 05.04).

Revision as of 18:19, 6 October 2021

Writing clear specification text isn't easy. Keep the following guidelines in mind when drafting the Profile.

Look at these again when reviewing the Profile for publication at any Stage.

  1. Put requirements in the Checklist/Specification tables
    • The Discussion section is for additional information but can be skipped by folks who just want the requirements; hiding additional requirements in Discussion would be sneaky.
    • It's OK to group requirements in Checklists (by Actor), or in Specification tables (by Activity). Copy/re-sort them carefully before you publish so they're not different.
  2. Start each table requirement with the word "Shall"
    • It promotes direct wording and makes it clear this is a requirement.
    • Searching a document for Shall steps you through all the atomic requirements.
    • Sentences with "must, has to, needs to" are not requirements so don't confuse readers by using those words.
    • Sentences with "should, could, might, etc." are also not requirements but may be useful to provide informative recommendations.
  3. Don't use "shall" outside of tables or procedures.
    • Shall is for requirements. If it's an activity requirement, put it in a table. If it's not an activity requirement, don't use shall.
  4. Use active voice
    • "| Physicist | Shall record the date/time of QC procedures." rather than "The date/time of QC procedures shall be recorded."
    • Passive voice makes it less clear who has responsibility for the requirement being met and what they have to do.
  5. State requirements bluntly
    • Conformance is clearer/simpler/cheaper if it is binary; you either do or do not ("there is no try" 05.04).
    • Leaving ambiguity and wiggle room just makes conformance checking more confusing.
    • Don't feel bad about systems/sites that fail conformance. They're no worse off than when they started; they may still be useful, they just cannot rely on achieving the claim.
  6. List a single actor for each requirement
    • It needs to be clear who is responsible for the requirement being met. You don't want the requirement unmet because two people both thought the other was taking care of it
    • The Profile doesn't care HOW the actor gets it done, and if they explicitly delegate it or hire someone that's fine, but if the requirement is not met, it needs to be clear which Actor is responsible.
    • The Profile doesn't care if one human takes on multiple roles. In a given hospital the same person may take the role of both Radiologist and Image Analyst.
    • Some profiles add notes in the discussion to clarify these details.
  7. For each requirement, consider how you would assess conformance
    • If assessing conformance is obvious and will be done consistently, that's fine.
    • If it requires a specific procedure, add the procedure to section 4 and reference it.
    • If it's unassessable in practical terms, then it's not a useful requirement so drop it.
  8. If it doesn't contribute to achieving the Claim, don't make it a requirement
    • Profiles are about what you need to do to achieve the performance claims, not general best practices.
    • Make the irreducible basic elements as simple and as few as possible but not simpler/fewer. (Einstein)
  9. Requirements that confirm assumptions underlying the claim, do contribute to achieving the claim
    • Understand the assumptions (including the statistical ones) that underlie the claim.
    • Consider requirements that help sites confirm those assumptions hold locally.
  10. If you would not fail someone for not conforming to the requirement, then drop the requirement.
    • It doesn't have to go away completely. You can keep it as a suggestion in the Discussion if it's helpful.
  11. Dropping requirements is fine but make sure you revise your claimed performance accordingly.
    • If dropping it leaves a source of variability in play, then your test data and the performance estimates should incorporate that variability.
    • If the Claim cannot be achieved with the stated requirements, you need to tighten the requirements or loosen the claim
  12. Don't repeat requirements in the Claim section
    • The claim is already contingent on conforming to the requirements; restating requirements in the caveats of the claim is redundant.
  13. State a requirement once.
    • Stating it twice means you have to remember to revise the text in two places each time you change it.
    • Worse, using different wording introduces conflicting loopholes and interpretations.
    • Checklists are a special case; it's recommended to create them at the end of editing by copying and regrouping the requirement tables.
    • Don't reword requirements when cloning them into checklists; if you prefer different wording, change the requirement table first.
  14. Exception: Symmetric do-then-check requirements
    • It is sometimes useful to do something, then later to check the result.
    • This is not technically a duplication since they can be for different actors, and the "do" requirement assesses the actions, while the "check" requirement assesses the result.
    • E.g. In the acquisition activity, "Technologist - shall instruct the patient to lie still and breathe as instructed" and in the QA activity, "Radiologist - shall confirm the absence of patient motion artifacts"
    • An advantage is that it often makes sense to describe the required result in detail but not be too prescriptive on the method.
  15. Avoid synonyms.
    • If it's the same thing, use the same word.
    • Don't refer to the workstation, the Image Analysis Tool, the measurement software, and the Analyzer if it's all the same thing. Pick one.
    • It makes it easier to search
    • If you use different words, you make people think there is a subtle but meaningful difference and they may invent one.
  16. If you figure something out that's not here, tell the Process Committee
    • These are just some guidelines we've figured out so far. Rome wasn't built in a day. Actually they've never stopped building it. So we start living in it and improve it as we go.