141

I've been tasked with developing requirements and specifications for a project our group is starting.

I realized that I don't know the difference; a Google search just confused me more -- it seems some people say that specifications are requirements, but at a lower level.

13 Answers13

145

The sound-bite answer is that requirements are what your program should do, the specifications are how you plan to do it.

Another way to look at it is that the requirements represent the application from the perspective of the user, or the business as a whole. The specification represents the application from the perspective of the technical team. Specifications and requirements roughly communicate the same information, but to two completely different audiences.

Bryan Oakley
  • 25,479
42

Requirements document what is needed - they shouldn't specify the how, but the what.

Specifications document how to achieve the requirements - they should specify the how.

In many places these documents are not separate and are used interchangeably.

Oded
  • 53,734
26

I am a systems engineer in the aerospace field, where both terms are used extensively. The distinction is clear and not as complex as the others are making it.

A specification is a document that specifies a system or product, e.g. a prime-item development specification for an F-14. There are lots of sections/content in a spec: requirements, definitions, reference documents, glossary, verification information, etc.

A requirement is a single statement of something the product or system must do. A spec may have hundreds of requirements in it. Old school methodology says the requirement statement must use the word "shall", to separate requirements from statements of facts, or definitions. (Not sure if the new-fangled agile kids keep to all this or not; the fastidiousness has it's use but is a little fussy at times.)

So a spec is a document full of requirements, plus some other supporting and ancillary information.

Adam Wuerl
  • 358
  • 2
  • 5
13

Requirements:

Determine the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders.

Specifications:

They provide a precise idea of the problem to be solved so that they can efficiently design the system and estimate the cost of design alternatives. They provide guidance to testers for verification (qualification) of each technical requirement.

The quote is from "Systems Engineering Fundamentals*".

Requirements are based on stakeholders needs, specifications are more an inside detailed and technical document. They are different, but they talk about the same thing.

* Defense Acquisition University Press, 2001. PDF version of the text.

talabes
  • 566
  • 3
  • 11
6

Requirements are the users' description of what the finished product, in their eyes, should do.

Specification is the technical description of the solution in general, covering the requirements and much more - e.g. cost, technicalities, problems, etc.

Therefore, one of the main points is that the Requirements must come first before a Specification can be written.

(Notice the terminology - product and solution - the same thing but from different perspectives...)

Arj
  • 539
4

Perhaps the confusion is that I have heard specifications refer to Business Requirement Specification documents or IEEE standard SRS (Software Requirement Specification) documents.

IEEE standard SRS Template Example

I have also heard the term specifications refer more informally to Technical Specifications which explain design decisions and an implementation plan.

EDIT: I just noticed the link is incorrect... I will post a correct link shortly.

maple_shaft
  • 26,570
4

Requirement - what the system or subsystem should (must) do.

Specification - What the component, subsystem or system IS.

This is critical in the medical device manufacturing industry since you must conduct Verification against your requirements (Inputs) to demonstrate that you have valid specifications (Outputs). Typical pitfalls in this industry is that companies (1) forget to define requirements (because they don't understand the difference between requirement versus spec); (2) Conduct Verification against only specifications and (3) Do not assure that Requirements are being translated accurately in to subassembly and component specifications.

Once this is all done, you are then required to Validate the User requirements for the product have been met.

4

A specification is a requirement that passed feasibility and is ready to be implemented. It is a requirement that has evolved to the design phase.

In other words:

  • A requirement is behavior (or non-behavior) "as planned" or "as wished"
  • A specification is behavior (or non-behavior) "to be built" or "as built"

Example:

  • requirement: 1. user presses OK button 2. system prints invoice
  • specification: 1. user presses OK button 2. system prints invoice

As you can see, the content of both can be the same. The difference is that requirement is an analysis artifact. The specification is a design artifact.

In a final as-built documentation, you will typically find the word "specification", instead of "requirement", since the requirements have been converted to specifications.

Remark: example above contains design elements, because of design constraint.

0

Requirements are what the application DOES

Specifcations are HOW the application does what it does.

They must be orthogonal !

Product managers write the requirements, head engineers write the specs.

0

One way, maybe not the right way, to look at it:

Requirements are things (capabilities, features, behaviours, etc) that yield value to the user. Not concerned with internals; only the box's inputs and outputs (and maybe size, shape, and colour) are important here.

Specifications are things (capabilities, features, behaviours, etc) that enable that value for the user. Here the box internals are important, because along with the external interfaces and characteristics mentioned above they define the entire system.

berad
  • 11
  • 1
0

In a previous company creating commercial products we had the following distinction:

Requirements are what the system must do. They can be lower level, detailed requirements, and they can be functional or non functional.

Specifications are those things the system as-built actually does. E.g. you could have a requirement that states the system shall have behaviour X at –10°C. The actual specification of the system may be that the system does X at –5°C; this would be in the sheet sent to potential customers when they want to buy the system.

NB in this case the specification does not equal the requirement.

ardila
  • 103
RoyD
  • 1
0

In my research, I have found Specifications to be used for patents and House Construction (as part of a contract).

The definition of a requirement from Webster's Unabridged Dictionary (3rd New Int'l Ed.) is:

a) something that is wanted or needed: Necessity b) something called for or demanded: a requisite or essential condition: a required quality, course, or kind of training

I think the above shows them to be clearly different. I guess you could call spec's lower level requirements, but I think it is a perversion of the term requirement imho.

LeWoody
  • 252
-1

Think, you are going to build a high rise building on a land.

Now you need to consider the Requirements before you start, such as:

  1. Architecture or Design Engineer
  2. Soil Test Engineer
  3. Wind Pressure Test Team
  4. Demolisher
  5. Digger
  6. Man Power
  7. Water Supply
  8. Workers living/rest area
  9. Enough Fund
  10. Project Management
  11. Quality Management
  12. Security and Safety Control

Etc.

Now the above contents are part of Requirements to build a high rise building. From the above team, you get the technical outcome, which they hold as part of profession.

This is exactly, what is happening in software industry, a group of professional people involved to provide knowledge to build the technical specification, such as someone works on UI design, OO design, database design, graphic design, test case design, coding, integration, deployment team etc.

The above para will be part of handbook, that you can call Technical Specification.