EU MDR (2017/745) Compliance Automation for Technical Documentation & Traceability
Automate EU MDR technical documentation and GSPR traceability for medical...
You’ve seen it happen. Three months into a project, the team is building something that doesn’t quite match what the business asked for. Meetings multiply. Scope creeps. Budgets balloon. Somewhere along the way, the requirements document became less of a guide and more of an artifact nobody trusts.
Here’s the uncomfortable truth: most requirements problems aren’t technical—they’re human. Requirements engineering involves engineering knowledge, skill in dealing with people, and experience in assessing business realities like competition and political pressures. Get the human side wrong, and no amount of technical brilliance will save the project.
The good news? Many of the traps that ensnare the unwary can be avoided by applying simple guidelines. Projects that start out well, with clear and accurate knowledge of the goals and needs of their users, have the best possible chance of success.
This guide walks you through the practical techniques to get it right the first time.
Before we dive into structure, syntax, and checklists, let’s anchor on the one principle that matters most:
Understand and agree upon what users want before attempting to create solutions.
Finding out what is needed instead of rushing into presumed solutions is the key to every aspect of system development. Most technical problems can be solved—given determination, patience, a skilled team, and a well-defined problem to solve.
That last part is what gets missed. Teams jump to solutions before they’ve genuinely understood the problem. Don’t be that team.
Let’s start with the basics. A requirement must be a complete sentence. Not a single word. Not a phrase. Not a collection of acronyms and abbreviations.
For a requirement to be understood, it must be a complete, correct sentence with two essential parts:
Subject + Predicate = Requirement
Here’s an example:
The reader shall be able to understand the requirement.
The subject is “the reader.” The predicate is “understand the requirement.” The phrase shall be able to joins them together to form a complete requirement.
Consistent use of the verb to be solidifies the link between subject and predicate. But in requirements language, shall carries enormous weight. It signals that this sentence is a requirement that must be followed or adhered to.
Other “shall” words include will and must—both signify a mandatory condition. For example:
The reader must comply with this documentation convention.
Less restrictive words denote non-mandatory or optional requirements. Should, may, or phrases like if it is desired that indicate something desirable but not mandatory:
The document should take no longer than one hour to read.
Notice the difference. “Shall” is non-negotiable. “Should” is preferred but not required. Mixing these up creates confusion downstream when QA tries to verify compliance.
Each user requirement should have four key components:
Consider this example:
The order entry clerk shall be able to complete ten customer orders in less than an hour.
Break it down:
This requirement is clearly measurable. You know exactly who it serves. You know what success looks like. You can write a test against it. Every single requirement should follow this pattern.
Before locking in any requirement, run it through these questions:
Other criteria worth striving for:
You’ll find that quite soon, you do this automatically whenever you see a requirement. It becomes second nature.
These guidelines apply to any requirement you write. Use the example of an aircraft system to keep things consistent:
When you see AND or OR, you almost always have multiple requirements hiding in one. Split them.
This kind of escape clause makes testing nearly impossible. Stick to definite statements.
No need for circumlocution. Plain, direct language wins.
Especially if your audience is international, plain language matters. There is no need to use words like reconfigured when changed will do.
Start every requirement with a clear subject:
Don’t describe the implementation. Describe the outcome:
Now testers know exactly what to check. No ambiguity.
This is where many teams stumble. User requirements and system requirements differ in what they define and how they define it.
| User Requirements | Systemanforderungen |
|---|---|
| Description of the problem | Abstract solution |
| In user language | In developer language |
| Organized by goals | Organized by functions in a hierarchy |
| Subject: a type of user | Subject: the system or subsystem |
| Defines what the user gets | Defines what the system does |
| Owned by users | Owned by developers |
A user is someone involved in using the system when it is actually working. Using is not restricted to mean only operating a system. Anyone involved in maintaining, interacting with, the approval cycle, or even checking safety are all users—but a safety inspector is certainly not a system operator.
Examples of users include:
The main task of a user requirement is to help users express their needs in writing. For an engineer with a technical or software bias, getting into your users’ way of thinking is difficult. Technical people typically come from a range of professions, but they usually have their own language and concepts.
Requirements are hard to formulate exactly, and you may need several revisions to get them just right. Start with a draft and sharpen the wording later. Initially, just aim to get the basic intention down on paper.
System requirements look at the solution and commit to specific technologies while still leaving space for designers to work. They define the system without going into the detail of design.
Just as you make each user requirement begin with a kind of user who wanted that particular result, you make each system requirement refer to a specific function:
The order entry system shall provide the ship date of ordered items.
It is then easy for the order entry designers to select only their requirements to work on, not distracted by requirements of other subsystems.
After all that, let’s look at what to avoid.
Avoidance of ambiguity is one of the subtlest and most difficult issues in writing requirements. Try to write as clearly and explicitly as possible.
Dangerous ambiguities can be caused by the word or, and also by many more subtle errors:
The same subsystem shall also be able to generate a visible or audible caution/warning signal for the attention of the co-pilot or navigator.
Which subsystem? Is the signal to be visible, audible, or both? Is it both caution and warning, just caution, or just warning? Is it for both the co-pilot and the navigator, or just one of them?
You can see how this single sentence creates a dozen different interpretations. Multiply that by hundreds of requirements and you’ve got chaos.
Many words used informally to indicate system quality are too vague for use in requirements:
Requirements using these terms are unverifiable because there is no definite test to show whether the system has the indicated property.
What does “as soon as possible” mean? 1 second? 30 seconds? Specify it.
Suggestions that are not explicitly stated as requirements are invariably ignored by developers.
Watch out for: may, might, should, ought, could, perhaps, probably.
If it’s important, state it as a requirement. If it’s not important, leave it out.
Engineering is a real-world activity. No system or component is perfect. Wishful thinking means asking for the impossible.
Watch out for terms like:
These aren’t requirements—they’re wishes. And wishes can’t be tested.
Requirements specify the design envelope. If you supply too much detail, you start to design the system. Going too far is tempting for designers, especially when they come to their favorite bits.
Danger signs include names of components, materials, software objects/procedures, and database fields.
That’s a design specification, not a requirement. Specifying design rather than actual need increases the cost of systems by placing needless constraints on development and manufacture. Often knowing why is much better than knowing what.
A medium-sized project typically demands hundreds of requirements. Readers can only understand these fully when the requirements document is organized logically. The best structure for user requirements follows the natural patterns of use, structured like a scenario or use case.
Everyday language is the only medium that users and developers share. Everyone can immediately understand requirements written this way—therefore you might think writing in plain language would be the ideal way to define user needs. But simple text isn’t good at showing how different user needs fit together. After all, you want to make a system, not a mass of unrelated functions.
The structure must give readers insight into the text. A good structure shows the requirements at different levels of detail and allows readers to focus on one section at a time.
You probably need three levels of headings to organize the requirements. Try not to use many more than that. Your structure should explain itself.
For an aircraft, that structure might look like:
Notice how main headings break down into their own lists of activities. Significant exceptions are listed where they would be detected. Related activities are grouped logically. This is a structure users can navigate.
Once your requirements library grows beyond a handful, managing them in static documents becomes nearly impossible. You need:
This is exactly where Modern Requirements earns its place in the toolkit. Built natively into Azure DevOps, it transforms requirements management from a documentation chore into a living, traceable system. Teams can capture requirements with rich attributes, link them to test cases and work items, run review cycles, and maintain a single source of truth that scales from 50 requirements to 50,000.
The principles in this guide—complete sentences, clear subjects, verifiable criteria, proper structure, change tracking—are exactly what Modern Requirements is engineered to enforce and accelerate.
If you take nothing else from this guide, take this checklist:
Writing better requirements isn’t about following a template. It’s about communication. Requirements are the vital communication line between users and developers. System engineering is a human issue, which works only when everyone involved cooperates to solve problems.
Projects succeed when they stay focused on results, so that whatever is developed aims only to satisfy the need and deliver only what users want. This is only possible when users’ needs are clearly defined, and their problem is fully described in writing.
So start now. Keep it small. Correct it at once. The discipline pays for itself many times over.
✅ Definieren, verwalten und verfolgen Sie Anforderungen innerhalb von Azure DevOps
✅ Arbeiten Sie nahtlos mit regulierten Teams zusammen
✅ Starten Sie KOSTENLOS – keine Kreditkarte erforderlich
Automate EU MDR technical documentation and GSPR traceability for medical...
Learn how banks, insurers, and fintechs build audit-ready DevSecOps that...
Explore how GitHub and Azure DevOps work together in a...
End-to-end requirements management in Azure DevOps.
AI-powered assistance for DevOps workflows.
Autonomous AI agents for DevOps execution.
Real-time data sync across tools and systems.
Designed to work natively within Azure DevOps, Modern Requirements extends the platform with powerful capabilities that help teams capture, manage, and validate requirements more effectively.