Requirements Documentation – Is the Assumptions Section Dangerous?

documentationRequirementsrequirements managementsystems-analysis

I am currently a reviewer on a Best Practices document for Developers or Business Analysts in writing a Functional Requirements document. This document is not necessarily a template for functional requirements documents, but a guide to what elements are necessary, optional, and dangerous to include a Functional Requirements document.

The author of the document states that:

Functional Requirements documents should NEVER have an Assumptions section! Do not assume anything about what people know about this application or any external issues surrounding it.

I am not sure that I agree with this sentiment but don't really have the words to refute it either. In a perfect world the analyst will have time to properly analyze every stakeholder input and every possible external issue but inevitably due to time constraints and other issues some assumptions need to be made.

Is this a bad idea because it is too easy for the intellectually lazy to declare assumptions rather than requirements? If not then why do you think Assumptions are a good idea?

EDIT: To clarify, I am not asking about the Assumptions section of technical documentation but of an Assumptions section in a requirements document written by a non-technical business analyst.

Best Answer

Adhering to the recommended guidance to exclude assumptions from a functional requirement document depend on a few things.

First, how strict is the culture and the project?

Sometimes recommended practices are treated as defacto required practices. It is 'good practice' to ensure how strongly such things are merely recommended, and which are in practice, required. Endeavour to have some idea what any consequences might consist of if you do or do not adhere to the 'guidance'. That is my disclaimer.

Second, what is the rationale behind the guidance?

So what might be the rationale for steering functional requirements document preparers and contributors away from including a section devoted to assumptions?

In my experience, people and projects view functional requirements differently at times. In some cases, functional requirements (what happens and sequencing or when something happens) are clearly distinct from system or service requirements (where or how something happens). Finding the distinction when the system or environment is central to the effort (device or service interfaces or device drivers, for example) may prove to be more effort than it's worth, and so in those cases I would state that as my first assumption and then move forward.

In the case of the functional requirements document, the rationale for not including an assumptions section may be presumed that if a section for assumptions feels required, then perhaps the requirements are not functional. In other words, if you feel that there are relevant assumptions that should be documented pertaining to the included requirements; the requirement may be too specific to an implementation or a particular service, and perhaps do not belong in that particular document. On the other hand, maybe the requirements do belong but just rewritten in a different manner as to not be so specific that a particular implementation and related assumptions would then cease to apply. It is probably intended that the guidance is not a prohibition, but rather as a sanity check or an orange flag to the document preparers and contributors.

If I were to approach a functional requirements document in the strictest sense, system and service requirements would not appear there. If those types of requirements are not included within the functional spec, it is lot less likely that you would need to make or declare any sort of global assumptions (often pertaining to the environment or user). If you find that global assumptions start applying to the requirements being included, it may indicate the requirements are not written as functional requirements, or that the environment or user are central to the effort.

Related Topic