ABSTRACT

Imagine woodcutters in a forest. They work hard and cut

tree after tree to build a street. It is a huge physical effort

and their foreman drives them hard to stay on schedule. He

wants to cut a certain amount of trees per day and provides

the workers with all they need to achieve this objective.

Suddenly the client who ordered the street to be build

comes back and shouts: “Wrong direction.” Despite all

the operational efficiency of the foreman and his team,

they did not manage to deliver the intended customer

experience. Sounds familiar? Indeed, this is what we

observe with many software products. Complex features

must be developed at a low cost, but once they hit the

market they won’t sell as expected. Or customers’ demand

many changes during the development process, thus redu-

cing margins dramatically from initial targets. Software

requirements engineering (RE) is the systematic approach

to providing direction before and during software develop-

ment. It provides the means to deliver the right products or

solutions at the right time for the right markets.