<Q/Is requirements engineering flat nonsense ?
In engineering, a requirement is a singular documented need of what a particular product or service should be or do. It is most commonly used in a formal sense in systems engineering or software engineering
Given that John Anderson believed that “requirement” is often used in faulty reasoning,
would it be fair to assume that some types of systems engineering and software engineering are essentially flat nonsense ?
“Anderson, John (1893-1962)”, p.35, Oxford Companion to Philosophy, Oxford University Press, 1995:
“Anderon is always hunting down ‘relativistic confusion’. He finds it, for example, in the obligatory. This is generated when a relation with one term suppressed – a requirer – is seen as a quality – requirement – of an action. The demolishing questions are: Who does the requiring ? and What is his policy ?”
A/ by Tom D/:
This reminds me of a little joke from the construction industry revolving around the Critical Path method of managing projects.
* "Critical Path Management is a method by which you lose your shirt while maintaining perfect control at every step".
In other words, you are managing all the variables under your power, giving you the illusion of control, but ultimately that is not sufficient to guarantee success.
Requirements engineering is an even more complex process, which the engineers have even less control over. Unless the project is completely "cut and dried" or otherwise similar to past projects.
Within my domain, software engineering, we are often dealing with users who have poor abilities to analyze and express their own needs. Frequently they do not understand the ultimate purpose of the actions they undertake on a daily basis.
They further are unable to imagine how things might be different, and are generally understand what they *really* needed only after they get something different.
Sometimes the management personnel can imagine how a new system could function, but they are generally not familiar enough with the details of the tasks to succeed at specifying the requirements.
Most often, the projects which succeed do so mostly through luck. The project managers who worked on these projects generally attribute their success to their superior skill at requirements gathering and other skills, thus perpetuating the myth that luck is not the predominant factor.
These project managers complement their success by making sure that the blame falls on others when their projects fail.>
Anticipating Changes
During the design phase, requirements traceability allows you to keep track of what happens when changes are implemented before a system has been completely redesigned. Project managers must be able to anticipate what should take place in order for a company to successfully adjust to the change. Having effective traceability measures in place gives you a better understanding of what kinds of changes are needed. In addition, tracing requirements through the different stages shows whether a requirement has been successfully addressed or if a requirement needs to be retested.
Streamlining the Testing Phase
Traceability assists a project team in determining in what areas the requirements must be tested. Testing every requirement would be a time-consuming and expensive process, making this particular approach impractical. Testing is usually based on the risk that a problem will occur, as well as the impact on the organization if a particular problem occurs. In most cases, high-priority requirements are those traced to test cases or trials.
Guaranteeing Project Success
Requirements traceability helps avoid implementing unnecessary requirements; aids in guaranteeing project completion; helps control costs; and prevents project delays. Overall, traceability works to avert a poor project outcome. Throughout a project’s development process, traceability assures that there will be adequate resources of time, manpower and money available to code, test and verify project requirements.

