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.