You are on page 1of 13

21 Top Engineering Tips

FOR WRITING AN EXCEPTIONALLY CLEAR REQUIREMENTS DOCUMENT


INTRODUCTION

Because nobody likes building or using a poor requirements document.

Over the past year, our team has probed dozens of engineers and their
requirements documents to create the ultimate list of tips on how to write
requirements documents that are a dream to work with.

It has become clear that enormous numbers of engineering design errors


originate in the requirements document. And agreement on requirements
engineering best practices is fiercely debated. Everyone has their own
opinions, which differ widely. Weve distilled the information from our
research and interviews into this one insight-packed guide that we hope
will settle some debates.

Were also constantly looking for new information about requirements


engineering, and wed love to hear your praise or criticisms of any of the
following tips mentioned!

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 dont, 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 brief providing a stable platform for consistent require-
explanation of the version (change) management sys- ments development, employee education and
tem used to control changes made to the document. communication with customers.

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 as comprehensive as possible. It also helps you eas-
bottom, organize your requirements in a hierarchical ily find the areas you need to modify in the baseline
structure. Hierarchical structures can include manager specification when adding functionality to an exist-
supplier, functionsub-function, missionpart, 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 functional
Phase De-orbitting, Cruise Control, Docking
hierarchy is often used, with very broad functional
missions at the top breaking down into sub-func-
This method of organization helps you focus on tions, and those sub-functions breaking down into
each specific domain that needs to be addressed, successive tiers of sub-functions.
and thus author requirements documents that are

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

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

One of requirements engineerings greatest debates is constraints without resorting to passive voice (see What does implementation-neutral mean? It means
on the use of imperatives, words like shall, must, will, Tip #12), and to easily distinguish between functional that functional requirements should not restrict
should, etc requirements (expressed with shall) and non-func- design engineers to a particular implementation. In
tional requirements (expressed with must). other words, functional requirements should be free
Although there were some dissenters amongst the of design details.
requirements engineers we interviewed, the con- Once you have agreement on how each imperative
sensus was to crown shall as a binding provision. term will be used within your organization, document Writing functional requirements in an implementation
Non-binding provisions are indicated by the word that agreed usage within your requirements docu- neutral manner has a number of benefits:
should or may. And a declaration of purpose ment template (as illustrated in Tip #4).
is indicated by the world will. Allows design engineers to design the system in
In general the rules for using imperatives are simple. the most efficient manner available.
Also, many requirements engineers like to use the word Use exactly one provision or declaration of purpose Allows implementation to be modified without
must to express constraints and certain quality and (such as shall) for each requirement, and use it consis- affecting (rewriting) the requirement, as long as
performance requirements (non-functional require- tently across all requirements. the requirement can still be fulfilled by the new
ments). The use of must allows them to express implementation.
Greatly reduces the possibility of conflict between
(and rewriting of) requirements due to incompat-
6. MAKE SURE EACH REQUIREMENT IS TESTABLE ibility 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 of
defined for it. the system for a stated set or sequence of inputs
Of course, the nature of the test scenario the man- 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 be
requirements documents and templates. Yet, its sur- software testing or system integration testing must spelled out in very specific non-functional require-
prising how many requirements written under those normally be specified to a finer degree of detail. ments at the outset of the program.
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 for any
Every time you write a new requirement, you must output event the software must produce in response
ask yourself, to a given input condition, as in the following example:

How will successful implementation of this 3.8.5.3.1: The Engine Monitor shall set <Overtemp
requirement be verified? 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 allow crew stations) to preempt misinterpretation of the writing is the use of directives.
you to simplify your requirements statement while requirements boundaries. Area(1) or Task(1) Lux(2) Ft. C(2)
providing users with additional information. Directives are words or phrases that point to addi-
Passageway 10 1
When a requirements 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 its 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 elsewhere above floor, as applicable.
reasoning more evident. re-rationalized as so often happens! in the document. 2. All levels are minimum.

The following requirement from NASAs ISS Crew When creating a rationale statement, begin by asking The following requirement from NASAs 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 statements 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 emer-
member for operations that require crew control. requirement? gency lighting for crew egress and operational recov- It is vitally important to separate the supporting
[R.CTS.135] What is the evidence to support my decision? ery in accordance with Table 3.2.5.4-1. [R.CTS.044] information referenced by the directive from the
What other requirements might have some effect requirement statement. Trying to weave complex
Rationale: The vehicle must be designed so that mission on the interpretation and implementation of the Rationale: Emergency lighting is a part of the over- supporting data into a requirement statement can
events can be completed by a single crewmember. In requirement and thus should be referenced in all lighting system for all vehicles. It allows for crew make the statement overly complex and unclear to
addition, vehicle design for single crewmember oper- the rationale? egress and operational recovery in the event of a gen- the reader. Document users should never have to dig
ations drives operations simplicity and contributes to eral power failure. Efficient transit includes appropri- in a haystack to find a clear and specific requirement.
operations affordability. This requirement results from ate orientation with respect to doorways and hatches,
lessons learned from the Shuttle cockpit, which had as well as obstacle avoidance along the egress path.
critical switches that are out of the operators reach The emergency lighting system may include unpow-
zone and software that requires more than one crew- ered illumination sources that provide markers or ori-
member to perform a nominal operation. This require- entation cues for crew egress. Design guidance for
ment does not preclude provision of multiple crew emergency lighting can be found in NASA/SP-2010-
stations for backup and crew resource management 3407, Human Integration Design Handbook (HIDH).
(CRM) operations.

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 con- previous tip. But we want to give credit where credit driven by an unwanted behaviour. Rewriting the
cise requirements is to use accepted requirement 3.1.5.3 ISS Fly-around is due. requirement in the unwanted behaviour format makes
sentence formats wherever possible. The spacecraft shall perform one complete fly-around the trigger-response nature of the requirement more
at a range of less than 250 meters, as measured from EARS: The Easy Approach to Requirements Syntax 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 of
would be wise to learn a few basic requirement sentence undocking from the ISS. proven patterns for writing specific types of require- If the engine temperature sensor indicates an over-
structures they can apply consistently. A very basic for- ments. (See Table 1) temp condition, then the system shall illuminate the
mat 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 Be sure to check all ubiquitous requirements
types listed, written using the corresponding syntax
Unique ID: Object + Provision/Imperative (shall) + Object: The spacecraft especially if theyre functional requirements for hid-
pattern.
Action + Condition + [optional] Declaration Of Purpose den triggers. Most true ubiquitous requirements are
/Expected Occurrence (will) Provision: shall non-functional.
Ubiquitous
The FCC shall control communication on the
Avionics Bus in accordance with MIL-STD-1553B
Action: perform one complete fly-around at a range and Table 3.1 of the program ICD. Table 1
of less than 250 meters, as measured from
Event-Driven
spacecraft center of mass to ISS center When the power button is depressed while the
Requirement Type Syntax Pattern
of mass system is off, the system shall initiate its start-up
sequence.
Ubiquitous The <system name>
Condition: after undocking from the ISS Unwanted Behaviour shall <system response>
If the battery charge level falls below 20% remain-
ing, then the system shall go into Power Saver
Keep requirements tight. Keep them consistent. And mode. Event-Driven WHEN <trigger> <optional pre-

remember: you have rationale (Tip #7) and directives condition> the <system name>
State-Driven
(Tip #8) at your disposal to keep them uncluttered. While in the Power Saver mode, the system shall shall <system response>
limit screen brightness to a maximum of 60%.
Unwanted IF <unwanted condition or
Optional Feature
Where the car is furnished with the GPS naviga- event>, THEN the <system
tion system, the car shall enable the driver to mute name> shall <system response>
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>,
Many requirements that may seem ubiquitous are the <system name> shall <sys-
really driven by some trigger or condition. For tem response>
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. DONT 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 ambig- Good requirements are free of weak, subjective
2014, an unanticipated cockpit switch action by the trigger could be: uous words are adjectives, adverbs and verbs that words such as:
co-pilot prompted the air brakes of Virgin Galactics dont have a concrete or quantitative meaning. Such
VSS Enterprise experimental spacecraft to deploy at 1.4 Trigger Condition: Spacecraft true airspeed between words are thus subject to interpretation by the efficient user-friendly
times the speed of sound. This unfortunate and prevent- x and y. reader of your requirements document. powerful few
able event resulted in the catastrophic, in-flight breakup fast most
of the vehicle, the death of the co-pilot and severe injury Trigger: Air brakes shall not deploy. Examine the following requirement: easy quickly
to the pilot. effective timely
If this were the only exception scenario identified, the Operation and location of all hands-on throttle reliable strengthen
Mistakes and oversights happen, but they can be greatly requirement for deployment of the airbrake might have controls shall be intuitive for both crew members. compatible enhance
reduced by going beyond expected behaviour and been corrected with the simple inclusion of the phrase: normal
anticipating exception scenarios. Exception scenarios What does intuitive mean in this case? It could
are conditions in which a given requirement should not except when the spacecraft true airspeed is between mean something entirely different to the client or Define your requirements in precise, measureable
apply or should be altered in some way. x and y. manager than it does to the design engineers. And terms. Dont specify that a system or feature will
what may be deemed intuitive by one user, could be intuitive, reliable or compatible; define what will
In Virgin Galactics case, having an exception scenario On the other hand, if multiple exception scenarios were require some getting used to for another. 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
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 sys- Use negative specification primarily for emphasis,
words like enhanced, strengthened and ruggedized recognizable as a constraint if it had been re-phrased tem shall not do, bear in mind that a system shall not in prohibition of potentially hazardous actions.
are notorious weak words, because they sound like using the word must as follows: 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. Heres an requirement.
example: The spacecraft must protect the crew from an impact Stating requirements using shall not often causes Dont 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 space- The spacecraft cabin must withstand an impact force of rules of thumb. allow instead of shall not prevent, for example.
crafts fuselage be reinforced? Shall it have abort func- 400kg in order to protect the crew from injury.
tionality? Shall it perform some manoeuvre to protect
the crew? The word enhanced is ambiguous. Of course, the addition of a rationale statement (see 16. DEFINE COMPATIBILITY
Tip #9) would help to clarify this requirement further,
The problem here, however, is not so much the use of a but as you can see, just changing from shall+passive
weak word as it is the use of passive voice (indicated by a to must+active makes it clear that this requirement is a
Requirements documents often dont give compatibility In other words, dont leave it up to the hardware and
form of the verb to be). The phrase shall be enhanced constraint and also makes it more implementation-neu-
issues the emphasis they deserve. It is common to software engineers to determine what will make the
seems to imply that this is a functional requirement, tral (see Tip #8).
find requirements such as: system theyre designing compatible with a given
something that needs to be done. But in fact, it is not
device (and expect the test engineers to make the
something that needs to be done by the system, but to
The in-vehicle infotainment system shall be same determination). Its up to you, the requirements
the system. Thus it is not a functional requirement of the
compatible with the following devices engineer, to define what it means to be compatible
system, but a quality requirement a constraint placed
with the device in question.
upon the implementation of the system.
But what, exactly, does compatible mean in this
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 actions. Probably, its the latter, in which case you really
Requirements are intended to be the control For an avionics component, for example, you and the
of, or a combination thereof (and/or)? These symbols have two requirements which should be state separately:
system that keeps your development aligned with your rest of your requirements development team would
can make all the difference between a clearly defined
customers or managers expectations. 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 stat- disengage the automatic cruise control function with
This might sound obvious, but many engineers are Which other components will this component
ing 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 or suppliers systems?
disengage the automatic steering assist function with
manager who needs to make sure the system can be Which maintenance crews will come into contact
The vehicle shall enable the driver to manually disengage one hand via controls on the steering wheel.
easily and cost-effectively used and maintained. with this?
the automatic cruise/steering system with one hand via
Do the pilots need to interact with it?
controls on the steering wheel. Slash symbols should act as red flags, signalling the
Such a perspective cant be narrow. It comes from a
need to watch out for ambiguities. If, as in the preced-
thorough analysis of the needs of all potential stake- Identify your stakeholders early, consider their use
In this example, it is unclear if the design engineers should ing example, a subsystem is named with a slash because
holders who will interact with the system. The list of levels, and write from their perspective.
provide for the cruise control and the automatic steering its multifunctional, ask yourself if referring to its discrete
these stakeholders may well go beyond what had
assist to be disengaged at the same time with a single functions or components rather than the subsystem by
been initially considered and should take into consid-
one-handed action, or separately, via two one-handed name might make your requirement more clear.
eration all relevant domain experts, and even users!

18. DONT 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 specific practice is to evaluate requirements with a diverse team. will meet the needs of all stakeholders.
all share the same root, it stands to reason that require- Here are four simple pointers for avoiding vagueness:
ments should be specific, rather than vague. Does it not? This team should consist of any designers and devel- Tip 20a: Make note of which users were heavily consid-
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
Yet, vagueness is epidemic in requirements specifications. avoid passive voice (shall be + past participle) wher- system, the testers who will verify compliance with the provide focused feedback only on the requirements that
ever possible (see Tip # 13). requirements, engineers who design, maintain or man- are relevant to them.
One of the big reasons for this is that both authors Do not use unspecific adjectives (weak words) such age other systems that will support or interact with the
and customers often allow vagueness to slip into their as easy, straightforward, or intuitive (see Tip #12). new system, end-user representatives and, of course, the
requirements. Customers may like a vague requirement, Define precisely what the system needs to do (in client team.
reasoning that if its scope is unbounded, they can refine functional requirements) or to be (in non-functional
it later when they have a better idea of what they want. requirements) in such terms that compliance can be Many companies require just such an evaluation and
Authors and engineers may not mind, since a slack readily observed, tested or otherwise verified (see a formal sign-off of the requirements document by
requirement may appear to give them more freedom Tip #7). all affected internal organizations, before development
in their implementation. Dont be swayed by those who want to keep require- can begin. Any subsequent additions or changes to the
ments vague. Keep in mind the costs of scrap and document undergo a similar evaluation as part
re-work while defining requirements.

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

Most professionals wouldnt 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 to tent requirements. QVscribe helps managers, ana-
the verification stage without undergoing any prior lysts, and engineers increase the clarity, consistency,
quality checks for completeness, consistency, and and quality of their requirements documentation all Seamless Integration with the
clarity. 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 the Quality Check Learn more at qracorp.com/qvscribe Cut Through the Noise
process of conforming to best practices. Thats why
weve included just such a checklist in this guide
Try QVscribe at qracorp.com/qvscribe
based on the previous 20 tips! Get Back to Engineering

Whats even better than a checklist? The automated


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

qracorp.com 22 qracorp.com 23
To learn more about QVscribe, visit qracorp.com/qvscribe

qracorp.com

You might also like