What's a better word for an optional requirement in software engineering? The phrase is contradictory. I've used "Non-Core Requirements" in previous projects.

  • 9
    I'd guess he means that something can't both be required (as in 'requirement') and optional (as in 'not required')
    – scrwtp
    Mar 25, 2012 at 13:32
  • 2
    This really belongs over on English. And I'd just call them "options."
    – Blrfl
    Mar 25, 2012 at 13:40
  • 14
    @Blrfl It doesn't belong on English. In the English language, the phrase "optional requirements" is contradictory. However, it has a widely accepted meaning in software development, and there are alternative ways of phrasing this concept within the context of a software project. It doesn't make sense to have it anywhere but here.
    – Thomas Owens
    Mar 25, 2012 at 13:55
  • 3
    @ThomasOwens: I disagree. Any field where jobs have requirements could run into this problem, which would make this a project management question. It's also an oxymoron, which makes it good fodder for English, and the first topic in the first FAQ there says word choice is on-topic. But suit yourself.
    – Blrfl
    Mar 25, 2012 at 16:15
  • 5
    "Things that won't get built" is what it means on many projects.
    – user4051
    Mar 25, 2012 at 20:59

14 Answers 14


The term "out of scope requirement" can possibly be used. This means that the requirement has been captured within your process and is trackable, but it has been determined that the requirement is something that falls beyond the current scope of the system, due to a number of reasons, such as budget, schedule, time, or feasibility.

However, the phrase "optional requirement" is commonly used to denote something that is in scope, but not necessarily required by the system. It is a measure of the priority of the requirement. In my experiences, requirements are often prioritized as mandatory, desirable, or optional (although there are also other schemes). In order for a project to be considered complete and fully functional, all of the mandatory requirements must be satisfied. Given sufficient resources, desirable requirements would be implemented next. Finally, anything considered optional would be included.

I believe the confusion comes from the term "requirement". In the English language, a requirement is "a thing that is needed" or "a mandatory, compulsory, or necessary condition". However, in software engineering, the term requirement is simply a documented characteristic of a software system. The concept of optional and mandatory describe the priority of the documented characteristic of the software system.

  • 1
    A related term is 'change case', which is a requirement that is expected at some point in the future, but isn't in scope right now. By capturing change cases you can try and avoid doing something in the current design that makes the change cases difficult. When doing this you need to keep an eye out for YAGNI though.
    – Kris C
    Mar 25, 2012 at 19:02
  • IMHO, 'optional requirement' implies optional in the present-tense and requirement in the future tense which could also read optional potential requirement. Either way, I agree that out-of-scope is more appropriate in a business case where customer expectations need to be managed. Mar 25, 2012 at 23:47

We refer to them as "nice to have" features as opposed to requirements.

  • 2
    From a requirements engineering perspective, the "nice to have features" still need to be captured as a requirement (in a specification, as a user story, as acceptance tests - however your process dictates that requirements are captured) and tracked throughout the life of the project.
    – Thomas Owens
    Mar 25, 2012 at 13:53

For software requirements documentation, wording Optional Requirements is perfectly OK, as long as you use this term in conformance with RFC 2119 Key words to Indicate Requirement Levels - ie to indicate items that are truly optional.

When your specification text implies verb instead of adjective, use "MAY" instead of "OPTIONAL".

Since it is small and easy to read, RFC text is fully quoted below:

    Network Working Group                                         S. Bradner
    Request for Comments: 2119                            Harvard University
    BCP: 14                                                       March 1997
    Category: Best Current Practice

            Key words for use in RFCs to Indicate Requirement Levels

    Status of this Memo

       This document specifies an Internet Best Current Practices for the
       Internet Community, and requests discussion and suggestions for
       improvements.  Distribution of this memo is unlimited.


       In many standards track documents several words are used to signify
       the requirements in the specification.  These words are often
       capitalized.  This document defines these words as they should be
       interpreted in IETF documents.  Authors who follow these guidelines
       should incorporate this phrase near the beginning of their document:

          The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
          NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
          "OPTIONAL" in this document are to be interpreted as described in
          RFC 2119.

       Note that the force of these words is modified by the requirement
       level of the document in which they are used.

    1. MUST   This word, or the terms "REQUIRED" or "SHALL", mean that the
       definition is an absolute requirement of the specification.

    2. MUST NOT   This phrase, or the phrase "SHALL NOT", mean that the
       definition is an absolute prohibition of the specification.

    3. SHOULD   This word, or the adjective "RECOMMENDED", mean that there
       may exist valid reasons in particular circumstances to ignore a
       particular item, but the full implications must be understood and
       carefully weighed before choosing a different course.

    4. SHOULD NOT   This phrase, or the phrase "NOT RECOMMENDED" mean that
       there may exist valid reasons in particular circumstances when the
       particular behavior is acceptable or even useful, but the full
       implications should be understood and the case carefully weighed
       before implementing any behavior described with this label.

    5. MAY   This word, or the adjective "OPTIONAL", mean that an item is
       truly optional.  One vendor may choose to include the item because a
       particular marketplace requires it or because the vendor feels that
       it enhances the product while another vendor may omit the same item.
       An implementation which does not include a particular option MUST be
       prepared to interoperate with another implementation which does
       include the option, though perhaps with reduced functionality. In the
       same vein an implementation which does include a particular option
       MUST be prepared to interoperate with another implementation which
       does not include the option (except, of course, for the feature the
       option provides.)

    6. Guidance in the use of these Imperatives

       Imperatives of the type defined in this memo must be used with care
       and sparingly.  In particular, they MUST only be used where it is
       actually required for interoperation or to limit behavior which has
       potential for causing harm (e.g., limiting retransmissions)  For
       example, they must not be used to try to impose a particular method
       on implementors where the method is not required for interoperability.

    7. Security Considerations

       These terms are frequently used to specify behavior with security
       implications.  The effects on security of not implementing a MUST or
       SHOULD, or doing something the specification says MUST NOT or SHOULD
       NOT be done may be very subtle. Document authors should take the time
       to elaborate the security implications of not following
       recommendations or requirements as most implementors will not have
       had the benefit of the experience and discussion that produced the

    8. Acknowledgments

       The definitions of these terms are an amalgam of definitions taken
       from a number of RFCs.  In addition, suggestions have been
       incorporated from a number of people including Robert Ullmann, Thomas
       Narten, Neal McBurnett, and Robert Elz.

It wouldn't hurt if your documentation refers to RFC as the source of definitions:

This document uses definitions based upon those specified in RFC 2119.

  • I didn't even know this was an RFC. I'm not surprised that something like this exists, though, as an IEEE standard, ISO standard, RFC, or some other similar, published document.
    – Thomas Owens
    Mar 26, 2012 at 22:32
  • This document seems a bit too specific to be broadly applied as guidelines for software requirements. It's not titled "Key Words for Requirements," it's titled "Key Words for Requirements in RFC's," and in Directive 6 it intentionally limits its own scope. Mar 26, 2012 at 22:58
  • 1
    @RobertHarvey well my point was to address the question idea that one should look for better word to replace established professional term with well defined and documented semantics only because they believe it's not a perfect English. As for it being too specific or not, that would be quite a different question don't you think? I for one can imagine plenty cases where I would prefer MoSCoW style categorizing.
    – gnat
    Mar 27, 2012 at 6:20
  • @gnat, He doensn't need a verb. This post has not answered What's a better word for "optional requirements"?
    – Pacerier
    Sep 19, 2015 at 8:13

I appreciate it's not an answer to your question, but in my world, it's still a requirement, even if for whatever reason you're not going to fulfil it.

I like the MoSCoW approach (Must Have, Should have, Could have, Won't have this time) to categorising requirements with users, along with other factors (in my regulated world, requirements can be critical or non-critical, and many an argument flares up over optional but critical requirements.)


A better word for an optional requirement is "Recommendation"


How about identifying it as an optional feature or optional tasks. These will only be done if at a certain point in the project it has been determined that there is time and money available to complete these features.

They could also be triggered if an external event occurs. If the customers makes the switch to Windows 8, the following tasks will need to be in done...

The description of the feature should include a deadline for determining if they will be done.


Requirements are categorized into 4 area in Software Engineering:

  1. Business Requirements: Focuses on overall business goals and objectives of the system
  2. User Requirements: Focuses on user's objectives and what users have to do to use the system to achieve business objectives
  3. Functional Requirements: What functionality and tasks the system has to perform to achieve business objectives
  4. Non-functional Requirements: What requirements are there other than functional ones. This includes environment, constraints, interface, maintenance issues, etc.

Now requirements can be Optional or Mandatory, depending upon the above 4 categories, I have outlined above. Optional requirements can also fall into the scope of the system under consideration or out of it's scope as well. Optional requirements are good means to avoid Scope Creep and defining your scope in precise terms.

Optional Requirements will always be a part of Software Engineering as they help us identify the scope and are a good means to avoid Scope Creep. You can never say that they contradict the engineering practices of SDLC. However, requirements have to prioritized and well defined.

  • 1
    The question asks for a different term for "optional requirements" not for a categorization of requirements.
    – yannis
    Mar 25, 2012 at 13:42
  • 1
    If he knew the categorization, he would never have said that Optional Requirements are contradictory in Software Engineering. :)
    – Maxood
    Mar 25, 2012 at 13:48
  • 1
    good descriptions, but I'm still a bit peeved at the phrase - either something is required or it isn't. I think we've made "requirement" into a separate entity meaning "formal client need"... Mar 25, 2012 at 13:53
  • @Maxood Hmmm? The term is contradictory, not the concept, the question discusses the term. Do you have any reference that the term is part of any formal (or widely accepted) requirements model? I know it's common, but throwing stuff like "Optional Requirements will always be a part of Software Engineering" without a single reference isn't really my cup of tea.
    – yannis
    Mar 25, 2012 at 14:39
  • @ Yannis Rizos When i said "Optional Requirements will always be a part of Software Engineering", I meant that in conceptual context. As engineering is about working out an effective solution within budget while balancing conflicting requirements. Also the asker never mentions Optional Requirement as a term here in the question and neither did I.
    – Maxood
    Mar 25, 2012 at 15:00

In the Volere template the term "Waiting room" is used.

...This template is intended for use as the foundation for your requirements specifications. The template provides for each of the requirements types appropriate for today's business, scientific and software systems. It provides a checklist, structure and traceability for your requirements... The template is tool independent, and has been successfully used with Yonix, Requisite, DOORS, Caliber RM, IRqA and other popular tools...

The Volere techniques are described in the book Mastering the Requirements Process by Suzanne Robertson and James Robertson...


In my business (spacecraft), they are called either "goals", indicating that they are documented and effort will be expended to meet them, but the system will still be considered successful if they are not met; "desirements" (not a real word, but there you are), indicating that someone wants them and they are trying to attain the status of goals but aren't accepted or documented yet; or "creeping requirements" which is a more derogatory version of desirements indicating things that are trying to take up resources but that aren't worth it in a project trying to achieve "good enough" where they will compromise or threaten achieving the real requirements.


If your requirements are prioritized, you might consider them to be low priority requirements.

  • I think "zero priority" might be closer to "optional".
    – Pacerier
    Sep 19, 2015 at 8:14

I am quite surprised no one has mentioned that those are called "objectives". Every company I have worked for has called them that. They are denoted by use of the words "will" or "should" instead of "shall". Sometimes they are included in Braces when talking about numbers. e.g. The system shall operate continuously without need of operator attention for 100 {250} hours. Meaning that the requirement that must be met is 100 hours, but the objective is 250 hours.

As a side note, very seldom does anyone ever actually design to meet the objective requirement, unless there is some sort of incentive involved.


The term "Desirement" is sometimes used for optional requirements. However, it may not be appropriate for a formal document.


I am surprised that all the responses are concerned with tracking requirements in project development. Despite being a developer I have never worried overmuch about this terminology in that context. When i first read the question I assumed it related to user product specification, not product development. For example, an encyclopaedia might list a color printer as an optional requirement. Its required if you want the full benefit of the app but optional if you want to view the screen. But what if you had for example a monochrome printer? How to make clear whether your app works with the obvuous restriction that some photos might not look so good? Or wont print at all?as another example, how should i check a printer review to check whether ink is a requirement or an optional requirement requirement in a multi-function printer? In other words can i still scan? Some hints on terminology and what to search for would be welcome both as a product developer/seller and as a consumer.

  • Uhm, so What's a better word for "optional requirements"?
    – Pacerier
    Sep 19, 2015 at 8:15

I would call them "optional features", not optional requirements. Requirements sound like something that you have to have, while features sound like an add-on to the original product.

Not the answer you're looking for? Browse other questions tagged or ask your own question.