Sunteți pe pagina 1din 13

21 Top Engineering Tips

FOR WRITING AN EXCEPTIONALLY CLEAR REQUIREMENTS DOCUMENT


TABLE OF CONTENTS INTRODUCTION

1. Use a (Good) Requirements Document Template 5 Because nobody likes building or using a poor requirements document.
2. Organize in a Hierarchical Structure 5

3. Use Identifiers to Your Advantage 6 Over the past year, our team has probed dozens of engineers and their
4. Standardize Your Requirements Document Language 7 requirements documents to create the ultimate list of tips on how to write
5. Be Consistent with Imperatives 8 requirements documents that are a dream to work with.
6. Make Sure Each Requirement is Testable 8

7. Write Functional Requirements to be Implementation-Neutral 9 It has become clear that enormous numbers of engineering design errors
8. Rationale Statements are Always Appreciated 10 originate in the requirements document. And agreement on requirements
9. Remember that Directives are there to Help You 11 engineering best practices is fiercely debated. Everyone has their own opin-
10. Follow Requirement Formatting Best Practices 12 ions, which differ widely. We’ve distilled the information from our research
11. Use Your EARS to Write Concise Requirements 13 and interviews into this one insight-packed guide that we hope will settle
12. Go Beyond Expected Events and Behaviour 14 some debates.
13. Don’t Use Weak Words 15

14. Avoid Passive Voice 16 We’re also constantly looking for new information about requirements
15. Use Negative Requirements Sparingly 17 engineering, and we’d love to hear your praise or criticisms of any of the
16. Define Compatibility 17 following tips mentioned!
17. Avoid Using Slash (/) Symbols 18

18. Don’t Fall into the Requirements Document Vagueness Trap 18

19. Write Requirements Documents from the Perspective of a Client or Manager 19

20. Evaluate the Requirements Document with a Diverse Team 19

21. Don’t Hand Off the Requirements Document for Verification Before Completing a Quality Check 20

qracorp.com 3
1. USE A (GOOD) REQUIREMENTS DOCUMENT TEMPLATE

Every requirements engineer we interviewed uses a Standardized sections – or “boilerplate” as they are
template when starting a new requirements docu- often called – promote and facilitate consistency
ment. If you don’t, you should. And if you do, you across projects. This is a major benefit of templates.
should make sure your template is a good one. These sections tend to remain little changed from
project to project, and from team to team within
A requirements document template should have at a company – evolving only slowly over time with
minimum a cover page, section headings, essential changes in methodology and lessons learned – thus
guidelines for the content in each section and a providing a stable platform for consistent require-
brief explanation of the version (change) manage- ments development, employee education and
ment system used to control changes made to the communication with customers.
document.

Your template should also include standardized


sections covering topics like verb (imperative)
application, formatting and traceability standards,
and other guidelines your organization follows
in documenting requirements and managing its
requirements documentation.

2. ORGANIZE IN A HIERARCHICAL STRUCTURE

To deliver a document that is easy to use from top to comprehensive as possible. It also helps you easily
bottom, organize your requirements in a hierarchical find the areas you need to modify in the baseline
structure. Hierarchical structures can include man- specification when adding functionality to an exist-
ager–supplier, function–sub-function, mission–part, etc. ing system. Last, but not least, it allows requirements
users to quickly drill down to the exact functional
A common 3 tier hierarchy system for a Mission-level area they are looking for.
requirements document might look something like this:
Many organizations will begin their requirements
Level Example documents at the subsystem or component level
depending on the nature of their business. A hierarchical
Mission On-orbit, Highway, Moor structure should still be used.
System Spacecraft ops, Truck ops, Vessel ops
In component specifications, for example, a func-
Phase De-orbitting, Cruise Control, Docking
tional hierarchy is often used, with very broad
functional missions at the top breaking down into
This method of organization helps you focus on sub-functions, and those sub-functions breaking
each specific domain that needs to be addressed, down into successive tiers of sub-functions.
and thus author requirements documents that are as

qracorp.com 4 qracorp.com 5
3. USE IDENTIFIERS TO YOUR ADVANTAGE 4. STANDARDIZE YOUR REQUIREMENTS DOCUMENT LANGUAGE

It may come as a surprise, but many requirements Therefore, each requirement should be marked with Like most spoken languages, English is full of words deemed appropriate, notification of the change shall
documents lack a comprehensive requirement a PUI that allows users to easily reference both the that have multiple definitions and which evoke sub- be sent to the appropriate review and change control
identification system. requirement and its position in the overall document. tle shades of meaning. This is a great thing when it authority.
Let’s look at an example. NASA’s ISS Crew comes to self-expression, but can lead to confusion
Requirement identifiers are often a requirement Transportation and Services Requirements Document and disagreement when it comes to specifying and Each requirement in CCT-REQ-1130 is annotated by
themselves. Systems purchased under contract contains the following requirement 3.5.2.5: interpreting requirements. its section number. At the end of each requirement
between a customer and a supplier – as in the case text is a requirement ID of the format R.CTS. This
of most government-purchased systems, for exam- 3.5.2.5 Spacecraft Ventilation for Emergency Landings A good tactic for reducing ill-definition and corresponds to the absolute ID in NASA’s require-
ple – are normally developed in accordance with The spacecraft shall provide cabin ventilation equiv- misinterpretation of requirements is to standardize ments database. It can be used to cross reference
an industry accepted standard, like IEEE/EIA 12207, alent to 4 cabin air exchanges per crewmember per the language you are going to use to express them. requirements in this document to spreadsheet
as a stipulation of the contract. Such standards hour while crew is present after an emergency land- A good way to do this is with a dedicated section exports of the database. See Section 1.3 in the event
typically require that each requirement in every ing. [R.CTS.364] Rationale: A remote landing could toward the beginning of your requirements docu- of conflict between this document and spreadsheet
requirement document be tagged with a project subject the spacecraft and crew to harsh environ- ment (part of your template). This section will define exports.
unique identifier (PUI). mental conditions ranging from high atmospheric exactly how certain terms will be used within the
temperatures to rough seas. If the crew must remain document itself, and how they should be interpreted Strictly defining your terms and adhering strictly
And for good reason. in the vehicle, this ventilation will equalize cabin tem- when found in non-requirements documents refer- to your definitions will not only reduce conflict and
perature, mitigate CO2 buildup, and replenish O2. The enced by the document. confusion in interpreting your requirements – with
Tagging each requirement with a PUI improves and duration of this service and the variability of ventila- practice, using standardized language will also save
simplifies traceability between high-level and low- tion rates with landing environments are developed The following segment is a good example of you time in writing requirements.
level requirements, and between requirements and in conjunction with the crew survivability strategy in language standardization from NASA’s ISS Crew
verification tests. Brief identifiers make it easy to requirement 3.5.2.4. Transportation and Services Requirement Document:
build traceability tables that clearly link each require-
ment to its ancestors in higher level documents, and The PUI for this requirement – 3.5.2.5 – indicates the When used within the context of a requirement
to the specific tests intended to verify it. Traceability exact position in the document in which this require- under a contract, statements in this document con-
tables simplify the process of demonstrating to the ment is stated, according to the following section/ taining shall are used for binding requirements that
customer and internal stakeholders that the system subsection/paragraph hierarchy: must be verified and have an accompanying method
has been developed to, and proven to comply with, of verification; will is used as a statement of fact,
the agreed top-level requirements. 3: ISS Crew Transportation and Service Requirements declaration of purpose, or expected occurrence; and
should denotes an attribute or best practice which
What’s more, linking these unique identifiers to 5: Entry/Landing Requirements must be addressed by the system design. When
the hierarchical structure of your requirements used within the context of a reference document
document – in other words, basing your PUIs on the 2: Contingency under an agreement, the verbs shall, will, and should
paragraph numbers of the document – makes it easy are only intended as informational and are not bind-
for users to find referenced requirements within the 5: Spacecraft ventilation for emergency landings ing.In some cases, the values of quantities included
document itself. in this document have not been confirmed and are
Also note that this identification system allows NASA designated as: “To Be Confirmed” (TBC) – still under
Requirements documents that do not employ such to also link requirements to related requirements evaluation, and “To Be Determined” (TBD) or “To
an identifier system are not only difficult to read and – in this case requirement 3.5.2.4: Crew Survival Be Supplied” (TBS) – known, but not yet available.
reference, they make traceability a nightmare. after Emergency Landing – by referencing them in A “To Be Resolved” (TBR) is used when there is a
rationale statements (see Tip #8, on the next page). disagreement on the requirement between technical
teams. When a change in a noted characteristic is

7
qracorp.com 6 qracorp.com
5. BE CONSISTENT WITH IMPERATIVES 7. WRITE FUNCTIONAL REQUIREMENTS TO BE IMPLEMENTATION-NEUTRAL

One of requirements engineering’s greatest debates to express constraints without resorting to passive What does “implementation-neutral” mean? It
is on the use of imperatives, words like shall, must, voice (see Tip #14), and to easily distinguish between means that functional requirements should not
will, should, etc… functional requirements (expressed with “shall”) restrict design engineers to a particular implementa-
and non-functional requirements (expressed with tion. In other words, functional requirements should
Although there were some dissenters amongst the “must”). be free of design details.
requirements engineers we interviewed, the con-
sensus was to crown “shall” as a binding provision. Once you have agreement on how each imperative Writing functional requirements in an implementation
Non-binding provisions are indicated by the word term will be used within your organization, docu- neutral manner has a number of benefits:
“should” or “may.” And a declaration of purpose ment that agreed usage within your requirements
is indicated by the word “will.” document template. • Allows design engineers to design the system in
the most efficient manner available.
Also, many requirements engineers like to use the In general the rules for using imperatives are simple. • Allows implementation to be modified without
word “must” to express constraints and certain Use exactly one provision or declaration of purpose affecting (rewriting) the requirement, as long as
quality and performance requirements (non-func- (such as shall) for each requirement, and use it the requirement can still be fulfilled by the new
tional requirements). The use of “must” allows them consistently across all requirements. implementation.
• Greatly reduces the possibility of conflict
between (and rewriting of) requirements due to
6. MAKE SURE EACH REQUIREMENT IS TESTABLE incompatibility of implementation details.
• A good way to avoid dictating implementation
is to write your functional requirements strictly
in terms of the external interface or externally
“Each requirement shall be assigned a project-unique Writing your requirement with a specific test scenario observable behaviour of the system being speci-
identifier to support testing and traceability and shall in mind will help ensure that both design and test fied. That means functional requirements should
be stated in such a way that an objective test can be engineers understand exactly what they have to do. specify the required external output behaviour
defined for it.” of the system for a stated set or sequence of
Of course, the nature of the test scenario – the man- inputs applied to its external interfaces.
Software Requirements Specification (SRS) Data ner in which the requirement will be verified – will
Item Description (DID), MIL-STD-498. influence how narrowly the requirement has to be In other words, state what the system must do,
defined. Higher level requirements are often tested by not how it must do it.
Since appearing in the referenced standard over inspection or through user testing (flight testing, test
20 years ago, that requirement has appeared in a driving, etc.) and thus may be quite broad in scope. Constraints on manner of implementation should not
number of subsequent standards and in scores of Lower level requirements that will be verified through appear in functional requirements. They should
requirements documents and templates. Yet, it’s software testing or system integration testing must be spelled out in very specific non-functional
surprising how many requirements – written under normally be specified to a finer degree of detail. requirements at the outset of the program.
those same standards – fail to meet the second half of
that requirement. A good practice for insuring requirement testability,
for example, is to specify a reaction time window
Every time you write a new requirement, you must for any output event the software must produce in
ask yourself, response to a given input condition, as in the follow-
ing example:
“How will successful implementation of this
requirement be verified?” 3.8.5.3.1: The Engine Monitor shall set <Overtemp
Alert> to TRUE within 0.5 seconds when <Engine
Temp> equals or exceeds 215° F.

qracorp.com 8 qracorp.com 9
8. RATIONALE STATEMENTS ARE ALWAYS APPRECIATED 9. REMEMBER THAT DIRECTIVES ARE THERE TO HELP YOU

Rationale statements are another great tool for reducing It also states a caveat (does not preclude multiple One of the most underused tactics in requirements Table 3.2.5.4-1: Emergency Lighting Intensity Levels
ambiguity in your requirements document. They crew stations) to preempt misinterpretation of the writing is the use of directives.
allow you to simplify your requirements statement requirement’s boundaries. Area(1) or Task(1) Lux(2) Ft. C(2)
while providing users with additional information. Directives are words or phrases that point to addi-
Passageway 10 1
When a requirement’s rationale is visibly and clearly tional information which is external to the require-
A short and concise sentence is usually all that is stated, its defects and shortcomings can be more ment, but which clarifies the requirement. Directives Emergency Task 32 3
needed to convey a single requirement – but it’s often easily spotted, and the rationale behind the require- typically employ phrases like “as shown in” and “in
not enough to justify a requirement. Separating your ment will not be forgotten. Rationale statements also accordance with,” and they often point to tables, Notes:
requirements from their explanations and justifica- reduce the risk of rework, as the reasoning behind the illustrations or diagrams. They may also reference
1. Levels are measured at the task object or 789 mm (30 in.)
tions enables faster comprehension, and makes your decision is fully documented and thus less likely to be other requirements or information located else- above floor, as applicable.
reasoning more evident. re-rationalized… as so often happens! where in the document. 2. All levels are minimum.

The following requirement from NASA’s ISS Crew When creating a rationale statement, begin by asking The following requirement from NASA’s ISS Crew In this example, the directive is the phrase “in
Transportation and Services Requirement Document yourself the following questions: Transportation and Services Requirement Document accordance with Table 3.2.5.4-1.” Note that while the
is a great example of a rationale statement’s utility. is a great example of use of a directive: table is separate from the requirement statement, it
• What is an aspect of this requirement that could
provides information which clarifies the requirement
3.8.5.1.5 Operable by Single Crewmember be a source of contention? 3.2.5.4 Emergency Lighting and thus is an integral part of the requirement.
The spacecraft shall be operable by a single crew- • How am I choosing to address that aspect in the The CTS shall provide automatically activated
member for operations that require crew control. requirement? emergency lighting for crew egress and opera- It is vitally important to separate the supporting
[R.CTS.135] • What is the evidence to support my decision? tional recovery in accordance with Table 3.2.5.4-1. information referenced by the directive from the
• What other requirements might have some effect [R.CTS.044] requirement statement. Trying to weave complex
Rationale: The vehicle must be designed so that on the interpretation and implementation of
supporting data into a requirement statement can
mission events can be completed by a single crew- the requirement and thus should be referenced Rationale: Emergency lighting is a part of the overall make the statement overly complex and unclear to
member. In addition, vehicle design for single in the rationale? lighting system for all vehicles. It allows for crew the reader. Document users should never have to dig
crewmember operations drives operations simplic- egress and operational recovery in the event of in a haystack to find a clear and specific requirement.
ity and contributes to operations affordability. This a general power failure. Efficient transit includes
requirement results from lessons learned from the appropriate orientation with respect to doorways
Shuttle cockpit, which had critical switches that are and hatches, as well as obstacle avoidance along
out of the operator’s reach zone and software that the egress path. The emergency lighting system may
requires more than one crewmember to perform a include unpowered illumination sources that provide
nominal operation. This requirement does not pre- markers or orientation cues for crew egress. Design
clude provision of multiple crew stations for backup guidance for emergency lighting can be found in
and crew resource management (CRM) operations. NASA/SP-2010-3407, Human Integration Design
Handbook (HIDH).
The requirement itself is very short and straight-
forward. The rationale statement supplements it by
stating some of the factors (simplicity and afford-
ability) that drove the inclusion of the requirement,
and the history behind those driving factors (lessons
learned from operation of the earlier Shuttle cockpit).

qracorp.com 10 qracorp.com 11
10. FOLLOW REQUIREMENT FORMATTING BEST PRACTICES 11. USE YOUR EARS TO WRITE CONCISE REQUIREMENTS

A key attribute of clear, effective requirements is that An example of this format in action is the following: We admit it. This is actually a continuation of the is written in the ubiquitous format, but is, in fact,
they are concise. A good technique for authoring previous tip. But we want to give credit where credit driven by an unwanted behaviour. Rewriting the
concise requirements is to use accepted requirement 3.1.5.3 ISS Fly-around is due. requirement in the unwanted behaviour format
sentence formats wherever possible. The spacecraft shall perform one complete fly-around makes the trigger-response nature of the require-
at a range of less than 250 meters, as measured from EARS: The Easy Approach to Requirements Syntax ment more clear:
Engineers who want to write crystal clear requirements spacecraft center of mass to ISS center of mass, after developed by Mavin et al. provides a number
would be wise to learn a few basic requirement sen- undocking from the ISS. of proven patterns for writing specific types of If the engine temperature sensor indicates an over-
tence structures they can apply consistently. A very requirements. (See Table 1) temp condition, then the system shall illuminate the
basic format to start off with is: Unique ID: 3.1.5.3 engine overtemp symbol within 0.2 seconds.
Here are some examples of the various requirement
types listed, written using the corresponding syntax Be sure to check all “ubiquitous” requirements –
Unique ID: Object + Provision/Imperative (shall) + Object: The spacecraft
pattern. especially if they’re functional requirements – for
Action + Condition + [optional] Declaration Of Purpose
/Expected Occurrence (will) Provision: shall hidden triggers. Most true ubiquitous requirements
Ubiquitous
are non-functional.
Action: perform one complete fly-around at a range The FCC shall control communication on the
Avionics Bus in accordance with MIL-STD-1553B
of less than 250 meters, as measured from and Table 3.1 of the program ICD.
Table 1
spacecraft center of mass to ISS center
Event-Driven
of mass When the power button is depressed while the Requirement Type Syntax Pattern
system is off, the system shall initiate its start-up
sequence. Ubiquitous The <system name>
Condition: after undocking from the ISS
shall <system response>
Unwanted Behaviour
If the battery charge level falls below 20%
Keep requirements tight. Keep them consistent. And
remaining, then the system shall go into Power Event-Driven WHEN <trigger> <optional pre-
remember: you have rationale (Tip #8) and directives Saver mode.
condition> the <system name>
(Tip #9) at your disposal to keep them uncluttered. shall <system response>
State-Driven
While in the Power Saver mode, the system shall
limit screen brightness to a maximum of 60%.
Unwanted IF <unwanted condition or
Optional Feature event>, THEN the <system
Where the car is furnished with the GPS naviga-
name> shall <system response>
tion system, the car shall enable the driver to mute
the navigation instructions via the steering wheel
controls. State-Driven WHILE <system state>, the
<system name> shall <system
response>
A word about ubiquitous requirements
Optional Feature WHERE <feature is included>,
the <system name> shall <sys-
Many requirements that may seem ubiquitous
tem response>
are really driven by some trigger or condition.
For example, the requirement: Complex (combinations of the above patterns)

The system shall monitor the engine temperature


sensor and illuminate the engine overtemp symbol Notes:

within 0.2 seconds of an overtemp indication. In this table from slide 26, the word “system” refers to the
system being specified, which may be a subsystem or component
of a larger system.

qracorp.com 12 qracorp.com 13
12. GO BEYOND EXPECTED EVENTS AND BEHAVIOUR 13. DON’T USE WEAK WORDS

During a test flight over the Mojave Desert on Oct. 31, An example of a trigger condition and a corresponding Weak words – also called subjective, vague or Good requirements are free of weak, subjective
2014, an unanticipated cockpit switch action by the trigger could be: ambiguous words – are adjectives, adverbs and words such as:
co-pilot prompted the air brakes of Virgin Galactic’s verbs that don’t have a concrete or quantita-
VSS Enterprise experimental spacecraft to deploy at Trigger Condition: Spacecraft true airspeed between tive meaning. Such words are thus subject to • efficient • user-friendly
1.4 times the speed of sound. This unfortunate and x and y. interpretation by the reader of your requirements • powerful • few
preventable event resulted in the catastrophic, in-flight document. • fast • most
breakup of the vehicle, the death of the co-pilot and Trigger: Air brakes shall not deploy. • easy • quickly
severe injury to the pilot. Examine the following requirement: • effective • timely
If this were the only exception scenario identified, the • reliable • strengthen
Mistakes and oversights happen, but they can be requirement for deployment of the airbrake might have Operation and location of all hands-on throttle • compatible • enhance
greatly reduced by going beyond expected behaviour been corrected with the simple inclusion of the phrase: controls shall be intuitive for both crew members. • normal
and anticipating exception scenarios. Exception scenar-
ios are conditions in which a given requirement should “…except when the spacecraft true airspeed is between What does “intuitive” mean in this case? It could Define your requirements in precise, measureable
not apply or should be altered in some way. x and y.” mean something entirely different to the client or terms. Don’t specify that a system or feature will
manager than it does to the design engineers. And be intuitive, reliable or compatible; define what will
In Virgin Galactic’s case, having an exception scenario On the other hand, if multiple exception scenarios were what may be deemed “intuitive” by one user, could make it intuitive, reliable or compatible.
for at least each phase of flight with corresponding trig- identified, it might be better to create a bulleted list of “require some getting used to” for another.
gers could have eliminated the system flaw that caused exceptions, in order to make the requirement easier
the airbrake to deploy at the wrong moment. to read.

qracorp.com 14 qracorp.com 15
14. AVOID PASSIVE VOICE 15. USE NEGATIVE REQUIREMENTS SPARINGLY

Many adjectives that are also past participles of verbs This requirement could have been made more easily While it is sometimes appropriate to state what a • Use negative specification primarily for emphasis,
– words like enhanced, strengthened and ruggedized recognizable as a constraint if it had been re-phrased system shall not do, bear in mind that a system shall in prohibition of potentially hazardous actions.
– are notorious weak words, because they sound like using the word “must” as follows: not do far more than what it shall do. Then state the safety case in the rationale for the
engineering terms, but are weak in specificity. Here’s an requirement.
example: The spacecraft must protect the crew from an impact Stating requirements using “shall not” often causes • Don’t use negative specification for requirements
force of 400kg. reviewers to call into question other things the sys- that can be restated in the positive. Substitute
The spacecraft shall be enhanced to protect the crew tem shall not do, since “shall not” turns inaction or a shall enable for shall not prohibit, shall prohibit in
from an impact force of 400kg. – OR – lack of response into a requirement. Such confusion place of shall not allow, and so on.
can generally be avoided by heeding the following • Avoid double negatives completely. Use shall
What does enhanced mean in this case? Shall the The spacecraft cabin must withstand an impact force of rules of thumb. allow instead of shall not prevent, for example.
spacecraft’s fuselage be reinforced? Shall it have abort 400kg in order to protect the crew from injury.
functionality? Shall it perform some manoeuvre to pro-
tect the crew? The word “enhanced” is ambiguous. Of course, the addition of a rationale statement (see 16. DEFINE COMPATIBILITY
Tip #8) would help to clarify this requirement further,
The problem here, however, is not so much the use but as you can see, just changing from shall+passive
of a weak word as it is the use of passive voice (indi- to must+active makes it clear that this requirement is
Requirements documents often don’t give compatibility In other words, don’t leave it up to the hardware and
cated by a form of the verb “to be”). The phrase “shall a constraint and also makes it more implementation-
issues the emphasis they deserve. It is common to software engineers to determine what will make the
be enhanced” seems to imply that this is a functional neutral (see Tip #7).
find requirements such as: system they’re designing “compatible” with a given
requirement, something that needs to be done. But in
device (and expect the test engineers to make the
fact, it is not something that needs to be done by the
The in-vehicle infotainment system shall be same determination). It’s up to you, the requirements
system, but to the system. Thus it is not a functional
compatible with the following devices… engineer, to define what it means to be compatible
requirement of the system, but a quality requirement
with the device in question.
– a constraint placed upon the implementation
But what, exactly, does “compatible” mean in this
of the system.
case? Does it mean the infotainment system shall
be able to play music stored on connected devices?
Shall it allow the driver to make hands-free phone
calls from such devices? Is the vehicle required to
have both wireless and wired connections?

If the system being designed must be compatible


with other systems or components, explicitly state
the specific compatibility requirements.

qracorp.com 16
qracorp.com 17
17. AVOID USING SLASH (/) SYMBOLS 19. WRITE REQUIREMENTS DOCUMENTS FROM THE PERSPECTIVE
OF A CLIENT OR MANAGER

What does a “/” really mean? Does it mean and, or, one you really have two requirements which should be state
Requirements are intended to be the control For an avionics component, for example, you and
of, or a combination thereof (and/or)? These symbols separately:
system that keeps your development aligned with the rest of your requirements development team
can make all the difference between a clearly defined
your customer’s or manager’s expectations. would want to ask yourselves questions like:
requirement and one that is impossible to interpret. In X.X.X.1: The vehicle shall enable the driver to manually
general, it is best to avoid using slash (/) symbols in disengage the automatic cruise control function with
This might sound obvious, but many engineers are • Which other components will this component
stating requirements. one hand via controls on the steering wheel.
so focused on authoring requirements with a certain interface with?
concept in mind, they forget to adequately consider • Will this component interface with third-party
An example of ambiguity arising from the use of “/” is: X.X.X.2: The vehicle shall enable the driver to manually
the product from the perspective of the customer suppliers’ systems?
disengage the automatic steering assist function with
or manager who needs to make sure the system can • Which maintenance crews will come into contact
The vehicle shall enable the driver to manually disen- one hand via controls on the steering wheel.
be easily and cost-effectively used and maintained. with this?
gage the automatic cruise/steering system with one
• Do the pilots need to interact with it?
hand via controls on the steering wheel. Slash symbols should act as red flags, signalling the
Such a perspective can’t be narrow. It comes from
need to watch out for ambiguities. If, as in the preceding
a thorough analysis of the needs of all potential Identify your stakeholders early, consider their use
In this example, it is unclear if the design engineers example, a subsystem is named with a slash because it’s
stakeholders who will interact with the system. levels, and write from their perspective.
should provide for the cruise control and the automatic multifunctional, ask yourself if referring to its discrete
The list of these stakeholders may well go beyond
steering assist to be disengaged at the same time with functions or components – rather than the subsystem
what had been initially considered and should take
a single one-handed action, or separately, via two one- by name – might make your requirement more clear.
into consideration all relevant domain experts,
handed actions. Probably, it’s the latter, in which case
and even users!

18. DON’T FALL INTO THE REQUIREMENTS DOCUMENT VAGUENESS TRAP 20. EVALUATE THE REQUIREMENTS DOCUMENT WITH A DIVERSE TEAM

Requirements specify the expected behaviour and All eventually suffer, however, when the implementation
Besides writing requirements from the perspective of of a formal change management system. Such a system
essential properties of a system. So, given that the verb misses the mark and extensive rework is required.
a client or manager, another requirements quality best greatly increases the probability that the requirements
specify, the noun specification and the adjective spe-
practice is to evaluate requirements with a diverse team. will meet the needs of all stakeholders.
cific all share the same root, it stands to reason that Here are four simple pointers for avoiding vagueness:
requirements should be specific, rather than vague.
This team should consist of any designers and devel- Tip 20a: Make note of which users were heavily consid-
Does it not? • Use active voice (shall + present tense verb) and
opers who will be using the requirements to create the ered for each requirement, so you can have that user
avoid passive voice (shall be + past participle) wher-
system, the testers who will verify compliance with the provide focused feedback only on the requirements
Yet, vagueness is epidemic in requirements ever possible (see Tip # 14).
requirements, engineers who design, maintain or man- that are relevant to them.
specifications. • Do not use unspecific adjectives (weak words) such
age other systems that will support or interact with the
as easy, straightforward, or intuitive (see Tip #13).
new system, end-user representatives and, of course,
One of the big reasons for this is that both authors • Define precisely what the system needs to do (in
the client team.
and customers often allow vagueness to slip into their functional requirements) or to be (in non-functional
requirements. Customers may like a vague requirement, requirements) in such terms that compliance can be
Many companies require just such an evaluation – and
reasoning that if its scope is unbounded, they can refine readily observed, tested or otherwise verified (see
a formal sign-off of the requirements document – by
it later when they have a better idea of what they want. Tip #6).
all affected internal organizations, before development
Authors and engineers may not mind, since a slack • Don’t be swayed by those who want to keep
can begin. Any subsequent additions or changes to the
requirement may appear to give them more “freedom” requirements vague. Keep in mind the costs of
document undergo a similar evaluation as part
in their implementation. scrap and re-work while defining requirements.

qracorp.com 18 qracorp.com 19
21. DON’T HAND OFF THE REQUIREMENTS DOCUMENT FOR VERIFICATION ABOUT QVscribe
BEFORE COMPLETING A QUALITY CHECK

Most professionals wouldn’t dream of handing in a Most errors in systems and project development Author Requirements
report without proofing it for spelling and grammar stem from poorly written, ambiguous, and inconsis- that are a Dream to Work With
errors. Yet, many requirements documents make it tent requirements. QVscribe helps managers, ana-
to the verification stage without undergoing any lysts, and engineers increase the clarity, consistency,
prior quality checks for completeness, consistency, and quality of their requirements documentation – Seamless Integration with the
and clarity. all within the requirements authoring & management Tools you Already Use
tools they already use.
Having a quality assurance checklist while analyzing Automate Your Requirements
requirements document significantly streamlines Quality Check Learn more at qracorp.com/qvscribe Cut Through the Noise
the process of conforming to best practices. That’s
why we’ve included just such a checklist in this
Try QVscribe at qracorp.com/qvscribe
guide – based on the previous 20 tips!
Get Back to Engineering

What’s even better than a checklist? The automated


quality analysis of QVscribe! Similar to spellcheck -
it’s conveniently fast & easy to use.

qracorp.com 20 qracorp.com 21
REQUIREMENTS DOCUMENT QUALITY CHECKLIST 10. Is the requirement stated clearly and 15. Does the requirement state what the
concisely? system shall do, rather than what it shall
not do?
• Is it formatted according to our agreed
best practices? • If “shall not” has been used, is the use
Checks of the Document Structure of the negative justified (for safety, etc.),
11. Are the requirement’s preconditions and have double negatives been
and triggers clearly defined within the avoided?
1. Is the template for the document up to 6. Can an objective test be written for
requirement?
date? the requirement?
16. Where “compatibility” is required, has
• Do the boilerplate sections reflect our • Are both a test method and a test 12. Have exception scenarios been the nature of that compatibility been fully
current procedures and best practices? case evident in the wording of the explored for this requirement? defined?
• Is there a section that defines how requirement?
• Are all necessary reaction windows • Have the corresponding exception 17. Does the requirement contain any
imperatives and other standardized
or other tolerances stated in the conditions been properly and clearly slashes (/) or other symbols that might
language shall be used and interpreted?
• Are there any sections that need to be requirement? stated within the requirement or cause misinterpretation?
revised? referenced via directive?
7. If the requirement is functional, is it • Could the requirement be split or other-
2. Does the document follow our agreed implementation-neutral? 13. Is the requirement stated in precise, wise restated to remove any ambiguity?
hierarchical structure? measurable terms?
• Does the requirement clearly state what 18. Is the requirement specific, rather than
the system must do and not how the • Is it free of weak words vague?
3. Are requirements identifiers linked to (like the following)
system must do it?
the document structure? • efficient • Does it give the implementation team
• Is the requirement stated strictly in
• Does the structure help users find terms of its external interfaces, or • powerful a clear, precise target to shoot for?
requirements easily? behaviours that can be readily • fast
observed? • easy
• effective Final Quality Checks
8. Has the rationale for the requirement • reliable
Checks of Each Written Requirement been clearly stated? • compatible
• normal 19. Has each requirement been evaluated
• Are there any associated requirements
• userfriendly and vetted by all stakeholders who are
4. Is the requirement tagged with a that might affect interpretation of this
• before impacted by it?
Project Unique Identifier? requirement and should therefore be
• after
referenced in the rationale statement? • Which design and implementation
• If no rationale statement has been • quickly
5. Has the proper imperative been used groups are affected?
for the requirement? included, is the rationale obvious in • timely
• strengthen • Which test and integration groups
the requirement statement or from
• Has the imperative (shall or must) been • enhance are affected?
associated directives or references?
used once and only once? • Are any third-party equipment
• Has the imperative been used according 14. Has the requirement been stated organizations affected?
9. Does the requirement include
to our standardization rules? in active voice? • Which maintenance and support
a directive?
• Are all other standardized words used organizations are affected?
according to our standardization rules? • If so, does the reference clarify the • Has passive voice (shall be) been • Do safety specialists, human factors
requirement, and is it easy to locate? avoided? specialists or users need to evaluate it?
• If not, could the requirement be • If the requirement is non-functional,
simplified or clarified through use has it been stated using the 20. Are all the impacted stakeholders on
of a directive? imperative must? the circulation list for final review of the
requirements document?
• Have we provided each of them a list of
the requirements they need to review?
To learn more about QVscribe, visit qracorp.com/qvscribe

qracorp.com

version 1

S-ar putea să vă placă și