Time to Read 10 min
Requirements are the basis of every development, but documenting them is often considered unnecessary or too tedious. This leads to implicit requirements or unclear goals: everyone makes assumptions about what the user wants: „I know what needs to be developed.”
Poor or missing requirements are the most common cause of problems in projects and increase risk significantly. For example, functional safety standards therefore require engineers to formulate requirements. Solcept also recommends this for standard projects.
How can requirements be created and used in a meaningful way (requirements management)? What communication is needed regarding requirements? What are the requirements for requirements?
We attempt to answer these questions here:
Product managers gather market requirements (e.g., applicable standards) via their interface with sales and position their product in the market. They draw up a product release plan by grouping and prioritizing requirements (see also the SMART attribute „Relevant”). To do this, they use, for example, the MosCoW scheme (Must-have, should-have, Could-have, and Won't-have) or even more sophisticated tools such as the Requirements Prioritization Matrix.
To define a product release, product managers need information from the development department, e.g., on the feasibility of requirements or the development effort involved. In discussions between product management and the development department, the priority of requirements should also be clarified with regard to the creation of the requirements specification.
At the latest in the requirements specification, there should no longer be any “nice-to-have” requirements. Every requirement takes time to implement and verify (see also the SMART attribute “Time-bound”), increases complexity, and costs money. Clear requirement priorities also reduce the risk of a late market launch.
The functional specification is written by the development department or the development service provider and is usually more detailed than the requirements specification. The authors of this document ensure that all requirements are SMART, see below. Since the functional specification is binding for product implementation, it must be reviewed and approved by product management.
Everyone has heard that requirements should be SMART (Specific, Measurable, Achievable, Relevant, and Time-bound). But what do these attributes mean?
How often do you see requirements like this in specifications: „The input voltage range must be greater than that of product xy.” Even if the input voltage range of this product were defined, this requirement would remain unspecific because no explicit information (value and unit, interface definition) about the range is provided. Comparative words such as „greater,” „faster,” and „better” generally have no place in requirements.
The specification is also made more specific by dividing it into functional and non-functional requirements.
Much of what concerns measurability has already been covered in the section above. If a requirement is not measurable, it cannot be verified and therefore it cannot be ensured that the requirement has been implemented.
Requirements must be realistic, i.e., achievable. This attribute is usually considered in conjunction with the last attribute (time-bound). Requirements whose implementation goes beyond the state of the art require a (very) large development effort.
Requirements must be important, i.e., they must pay off (business value). Often, requirements are prioritized here, e.g., “must” or “nice-to-have,” or even finer distinctions are made. In a requirements specification, however, there should no longer be any “nice-to-have” requirements, because every requirement takes time to implement and verify (see also the Time-Bound attribute), increases complexity, and costs money.
Solcept has three priorities in its requirement templates: safety, must, nice-to-have. All “nice-to-have” requirements are eliminated together with the customer before the first baseline of the requirements specification, so that only “safety” and ‘must’ remain for implementation. The “safety” attribute is based on a concept of efficiency: not all requirements for a product are safety-relevant. However, safety-relevant requirements usually require increased documentation effort (e.g., specification and architecture descriptions down to the lowest level). This effort should only be made for safety-relevant requirements. Our requirements management tool helps us to ensure the required level of documentation for all safety requirements (traceability analysis with appropriate filtering).
As mentioned above, this attribute should be viewed in the context of the importance and achievability of requirements. The focus here is on the planned time of market entry.
It makes sense to distinguish between functional and non-functional requirements:
Functional requirements require a different form of description than non-functional requirements. It is advantageous to use a semi-formal notation in table form, which summarizes the following information:
Non-functional requirements are often also in table form and require the following information:
It is important that functional requirements do not contain explicit non-functional requirements, but that these are only referenced via a parameter (avoiding multiple definitions of a requirement). A modern requirements tool allows the two requirements to be linked for traceability or change impact analysis.
„The first draft of everything is shit.” – Ernest Hemingway
Do not let writer's block stop you, and do not disguise your inability to get started with perfectionism. To discuss and work out requirements efficiently, you need to write down what you know.
No one writes perfect requirements in just one draft. Clear and unambiguous requirements are more likely to be achieved in many small steps:
But be aware: Optimization should aim for a global optimum and not oscillate between local optima (e.g. rewriting the requirement each time it is discussed with another person according to personal format preferences).
„Change management is requirements management for adults” – almost Tom DeMarco
The further the project progresses, the higher the inherent risks and costs of change. On the other hand, change is essential to achieve good quality. As explained above, excellence is achieved in many small steps.
Here are some tips for a lean change management process:
“Do not move the information to the authority, move the authority to the information.” – L. David Marquet
Requirements management is neither black magic nor a role definition. Transferring all relevant information to a few requirements managers is inefficient and carries the risk of critical topics being lost during the transfer.
Instead, set up a simple process and tool that welcomes every stakeholder as a contributor (author, reviewer, tester, approver or auditor). Ensure that the person with the most information (developer, tester, product manager, service representative, etc.) is directly involved in the process and is given the control and authority to write and review the relevant requirements directly.
Even in a system with low complexity, defining requirements and ensuring their traceability requires in-depth expertise in many areas. Therefore, this cannot be handled by a single specialist, but requires teamwork.
„The V-model is the worst form of organization—except for all the others” – almost Winston S. Churchill
The V-model helps to structure information and represent relationships (via traceability) in two dimensions:
This is particularly helpful in
A common misconception is that the V-model represents a timeline. A project is not simply completed by going through the model once or twice. The work requires inherent feedback loops in all directions and will also be done from the bottom up. This is fine as long as the information is consistent from top to bottom and left to right at the end.
Consider, for example, hardware imperfections that are corrected in the software. These are details from the low-level hardware design that are usually not defined until late in the project. Nevertheless, they belong into the hardware-software interface specification at the system level to ensure that the software engineer can find the information.
Another example is the top-level specification. At the end of the first phase of system design, it is usually not possible to specify every detail completely. Instead, an assumption can be made to enable development, or at least the unknowns (TBD's) should be identified. These can then be tracked and resolved as sufficient information is gained during development.
„Good communication is the bridge between confusion and clarity” – Nat Turner
Clean requirements management sounds like a lot of work, but ambiguities and vagueness can lead to inefficiency and much more work, such as:
A requirement is something that everyone involved must have the same understanding of, so that the individually developed parts work together and the end product offers the desired functionality. Ultimately, requirements management is just a structured and formalized method for communicating and for connecting all stakeholders.
Keep the following in mind:
Language skills and communication abilities are behind good requirements. Solcept AG has trained its employees accordingly and can provide them with excellent support in this area. Let us advise you!
Samuel Leemann
Do you have additional questions? Do you have a different opinion? If so, email me or comment your thoughts below!
is MSc EE ETHZ, hardware-, system- and safety-specialist and co-owner at Solcept. His previous professional activities were in the commercial field and in the development of medical and communication technology. Principles that guide him in development work are simplicity and safety. Samuel is an everyday cyclist, enjoys hiking and keeps fit with yoga.
is an electrical engineer and systems engineer, hardware, systems and safety specialist. He is committed to processes and efficient functional safety. He keeps fit by mountain biking.
Projects? Ideas? Questions? Let's do a free initial workshop!
No Comments