Page 20 - Software and Systems Requirements Engineering in Practice
P. 20
Academic Foreword
equirements engineering has proven to be one of the most
difficult and critical activities for the successful development
Rof software and software-intensive systems. The reasons for
that are obvious. If requirements are invalid, then even the most
careful implementation of a system will not result in a product that is
useful. Moreover, if requirements are included in the requirements
specifications that are not actually valid, then the product or system
becomes unnecessarily expensive. This shows that requirements
engineering is important.
In fact, requirements engineering is also difficult. There are many
reasons for this. One is that often software-intensive systems are
innovative in providing new functionality. Then, learning curves
have to be considered. It is often impossible to understand, in advance,
what the requirements actually are. The people involved have quite
different perspectives on their valid requirements. Therefore, it is
difficult to arrive at an agreement. At the same time, important
requirements might be overlooked and only discovered when gaining
first experiences with the produced systems. Moreover, for large,
long-term projects requirements may change due to changes in the
environment, the market, or user needs.
Finally, requirements engineering is often underestimated or even
neglected by project management. The core of requirements
engineering is devoted to understand and work on the problem
statement and not so much the solution. However, management may
think that only when a team of developers starts to work on the
solution will the project begin to show real progress. Therefore, both
for management and even for experienced developers, there is always
a tendency to rush too early into the solution domain. As a result,
solutions are produced that miss requirements or do not explore the
full range of possible solutions.
However, even having accepted that requirements engineering is
difficult, error-prone, costly, but nevertheless important, a lot more
has to be understood to be able to do professional requirements
engineering. For most projects, the overall development process can
be easily standardized after the requirements have been captured.
xix